Inleiding
Dit document beschrijft de creatie van Gouden ISO (GISO) voor upgrades in routers die Cisco IOS® XR-software uitvoeren in eXR-versies.
Voorwaarden
Vereisten
Cisco raadt kennis van de volgende onderwerpen aan:
- Cisco IOS XR-software
- Installatie- en upgradeprocedures voor Cisco IOS XR-software
- Linux basiscommando's en navigatie van de opdrachtregel
Gebruikte componenten
Dit document is niet beperkt tot specifieke hardwareversies, dit document is van toepassing op alle routers met IOS XR 64 Bit.
De informatie in dit document is gebaseerd op de apparaten in een specifieke laboratoriumomgeving. Alle apparaten die in dit document worden beschreven, hadden een opgeschoonde (standaard)configuratie. Als uw netwerk live is, moet u zorgen dat u de potentiële impact van elke opdracht begrijpt.
Verwante producten
Dit document kan ook worden gebruikt met deze hardwareversies:
- Cisco-routers uit de 9000-reeks
- Cisco-routers uit de 8000-reeks
- Cisco NCS 5700-reeks routers
- Cisco NCS 5500-reeks routers
- NCS 540- & 560-routers
Gouden ISO voor XR-upgrades
Meestal brengt Cisco IOS-XR-software uit als een mini- / basis-ISO die verplichte IOS-XR-pakketten voor een bepaald platform bevat, een reeks optionele pakketten om extra functies en softwarepatches uit te voeren voor eventuele bugfixes in de vorm van Software Maintenance Upgrade (SMU). Optioneel pakket en SMU zijn in RPM-verpakkingsformaat.
De Gouden ISO tool maakt een ISO met de volledige inhoud van de mini/basis ISO samen met optionele pakketten en SMU van de gebruiker keuze. Zodra de Gouden ISO is gemaakt, kan deze worden gebruikt voor het opstarten van de iPXE of worden gebruikt voor SU (systeemupgrade) van de huidige actieve versie naar een nieuwe versie van IOS-XR.
Opmerking: Mini / basis ISO is verplicht voor elke Golden ISO-creatie
gisobuild Python Tool
Deze tool kan native worden uitgevoerd op een Linux-host. Als alternatief kan de tool ook worden uitgevoerd op een Linux-systeem met Docker ingeschakeld en de mogelijkheid om de gepubliceerde 'cisco-xr-gisobuild'-image uit Docker Hub trekken, voor dit voorbeeld wordt voorgesteld om te werken in Debian 11.8
Deze tool heeft de volgende uitvoerbare vereisten:
- Python3 >= 3,6
- toeren/min >= 4,14
- CPIO >= 2,10
- GZIP >= 1,9
- Createrepo_c
- vijlen
- isoinfo
- mkisofs
- muggezifterij
- OpenSSL
- ontpletten
- 7z (optioneel - maar functionaliteit kan worden verminderd zonder)
- iso-lezen (optioneel - maar functionaliteit kan zonder beperkingen worden beperkt)
- zip (optioneel - maar functionaliteit kan worden verminderd zonder)
- unzip (optioneel - maar functionaliteit kan worden verminderd zonder)
Opmerking: op een native Linux-systeem, waaraan niet alle afhankelijkheden zijn voldaan, kunnen de afhankelijkheden van de tool worden geïnstalleerd op ondersteunde distributies door de volgende opdracht uit te voeren (mogelijk via sudo): ./setup/prep_dependency.sh
Het vereist ook de volgende Python (>= 3.6) modules:
- gegevensklasse
- onschadelijk gemaakte XML
- rommel
- verpakking
- toeren/min
- yaml
Om native op een Linux-host te draaien, zijn de volgende distributies getest, specifiek voor dit scenario, Debian.
- Alma Linux 8
- Fedora 34
- Debian 11,2
preparaat
Het is noodzakelijk om eerst te bevestigen welke optionele pakketten nodig zijn en waarom. Het installeren van onnodige of buitensporige pakketten kan problemen met het gebruik van schijfruimte en storingen tijdens de installatie veroorzaken. Bevestig de vereisten voor elk platform en de vereisten voor schijfruimte voordat de GISO wordt gemaakt.
Voor het downloaden van de benodigde software raadpleegt u de officiële software downloadsite: Cisco Software Download
Script kan ons helpen om een groot aantal bestanden te verenigen, bijvoorbeeld iso, bridge fixes, SMU's enzovoort.
Het is nodig om het gisobuild.py-script naar een bepaalde locatie op de server te kopiëren. Het script bevindt zich op de Gisobuild Git Site
GISO-creatie
Hier is een samenvatting van de argumenten die we kunnen gebruiken voor dit script gebruik:
usage: gisobuild.py [-h] [--iso ISO] [--repo REPO [REPO ...]]
[--bridging-fixes BRIDGE_FIXES [BRIDGE_FIXES ...]]
[--xrconfig XRCONFIG] [--ztp-ini ZTP_INI] [--label LABEL]
[--no-label] [--out-directory OUT_DIRECTORY]
[--create-checksum] [--yamlfile CLI_YAML] [--clean]
[--pkglist PKGLIST [PKGLIST ...]] [--script SCRIPT]
[--docker] [--x86-only] [--migration] [--optimize]
[--full-iso]
[--remove-packages REMOVE_PACKAGES [REMOVE_PACKAGES ...]]
[--skip-usb-image] [--copy-dir COPY_DIRECTORY]
[--clear-bridging-fixes] [--verbose-dep-check] [--debug]
[--isoinfo ISOINFO] [--image-script IMAGE_SCRIPT]
[--version]
Voor dit voorbeeld wordt een GISO voor ASR 9901 gemaakt, worden ISIS- en OSPF-pakketten gebruikt voor beknoptheid, mini voor 7.9.21-versie en config-bestand ook toegevoegd aan de GISO.
Zoals te zien is in de volgende opdracht, worden pakketten, mini- en config-bestanden gekopieerd in de map /src, dit om een gewist versie van de scriptopdracht te maken.
root@debian:/gisobuild-master/src# ls
asr9k-9000v-nV-x64-1.0.0.0-r7921.x86_64.rpm
asr9k-mcast-x64-1.0.0.0-r7921.x86_64.rpm
asr9k-bng-ipoe-x64-1.0.0.0-r7921.x86_64.rpm
asr9k-mgbl-x64-1.0.0.0-r7921.x86_64.rpm
asr9k-bng-pppoe-x64-1.0.0.0-r7921.x86_64.rpm
asr9k-mini-x64-7.9.21.iso
asr9k-bng-supp-x64-1.0.0.0-r7921.x86_64.rpm
asr9k-mpls-te-rsvp-x64-1.0.0.0-r7921.x86_64.rpm
asr9k-bng-x64-1.0.0.0-r7921.x86_64.rpm
asr9k-mpls-x64-1.0.0.0-r7921.x86_64.rpm
asr9k-optic-x64-1.0.0.0-r7921.x86_64.rpm
asr9k-eigrp-x64-1.0.0.0-r7921.x86_64.rpm
asr9k-ospf-x64-1.0.0.0-r7921.x86_64.rpm
asr9k-isis-x64-1.0.0.0-r7921.x86_64.rpm
asr9k-services-x64-1.0.0.0-r7921.x86_64.rpm
asr9k-li-x64-1.0.0.0-r7921.x86_64.rpm
asr9k-m2m-x64-1.0.0.0-r7921.x86_64.rpm
lnt
lntmod
output_gisobuild
utils
validate
wrappers
exrmod
running-config-ASR9K
gisobuild.py
--------GISO CREATION--------
root@debian:/gisobuild-master/src# ./gisobuild.py --iso asr9k-mini-x64-7.9.21.iso --pkglist asr9k-isis-x64-1.0.0.0-r7921.x86_64.rpm asr9k-ospf-x64-1.0.0.0-r7921.x86_64.rpm --xrconfig running-config-ASR9K --label firstGiso --skip-usb-image --clean
System requirements check [PASS]
Platform: asr9k Version: 7.9.21
XR-Config file (/gisobuild-master/src/running-config-ASR9K) will be encapsulated in Golden ISO.
Warning: No RPMS or Optional Matching 7.9.21 packages found in repository
Building Golden ISO...
Summary .....
XR Config file:
router.cfg
...Golden ISO creation SUCCESS.
Golden ISO Image Location: /gisobuild-master/src/output_gisobuild/asr9k-golden-x64-7.9.21-firstGiso.iso
Creating USB Boot zip...
Skipping USB Boot Zip creation: Not supported for platform: asr9k
USB BOOT ZIP NEEDED?: Contact asr9k team to add support.
root@debian:/gisobuild-master/src#
Hier is een korte beschrijving van de parameters die zijn gebruikt voor deze GISO-creatie:
--ISO |
Pad naar bestand Mini.iso/Full.iso |
--xrconfig XRCONFIG |
Pad naar XR-configuratiebestand |
--label LABEL, -l LABEL |
Gouden ISO-label |
--opschonen |
Uitvoer dir verwijderen voordat u verdergaat |
--afbeelding overslaan |
Bouw geen USB-image (wordt niet ondersteund voor het ASR9K-platform) |
Verifiëren
Zoals de installatielogboeken vermelden, kunnen we onze GISO-creatie bevestigen door de locatie te bekijken, bijvoorbeeld in dit voorbeeld. Gouden ISO-beeldlocatie: /gisobuild-master/src/output_gisobuild/asr9k-golden-x64-7.9.21-firstGiso.iso
Volgens de volgende image initrd.img
bevat 1,7 GB de installatiepakketten die we hebben meegeleverd.
GISO in Debian GUI