Introduzione
Questo documento descrive la creazione di Golden ISO (GISO) per gli aggiornamenti nei router con software Cisco IOS® XR nelle versioni eXR.
Prerequisiti
Requisiti
Cisco raccomanda la conoscenza dei seguenti argomenti:
- Software Cisco IOS XR
- Procedure di installazione e aggiornamento del software Cisco IOS XR
- Comandi di base di Linux e navigazione della riga di comando
Componenti usati
Il documento può essere consultato per tutte le versioni hardware; è valido per tutti i router che eseguono IOS XR a 64 bit.
Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.
Prodotti correlati
Questo documento può essere utilizzato anche con queste versioni hardware:
- Cisco serie 9000 Router
- Cisco serie 8000 Router
- Cisco NCS serie 5700 Router
- Cisco NCS serie 5500 Router
- NCS 540 e 560 Router
Golden ISO per aggiornamenti XR
In genere, Cisco rilascia il software IOS-XR come ISO mini/base che contiene i pacchetti IOS-XR obbligatori per una determinata piattaforma, un set di pacchetti opzionali per eseguire funzionalità aggiuntive e patch software per qualsiasi correzione di bug sotto forma di Software Maintenance Upgrade (SMU). Pacchetto opzionale e SMU sono in formato RPM.
Lo strumento Golden ISO crea un ISO contenente l'intero contenuto dell'ISO mini/base insieme a pacchetti opzionali e SMU a scelta dell'utente. Una volta creato, il Golden ISO può essere utilizzato sia per l'avvio iPXE sia per l'SU (aggiornamento del sistema) dalla versione corrente a una nuova versione di IOS-XR.
Nota: Mini/base ISO è obbligatorio per qualsiasi creazione di Golden ISO
Strumento Python gisobuild
Questo strumento può essere eseguito in modo nativo su un host Linux. In alternativa, lo strumento può anche essere eseguito su un sistema Linux con Docker abilitato e la capacità di estrarre l'immagine 'cisco-xr-gisobuild' pubblicata da Docker Hub, per questo esempio si consiglia di lavorare in Debian 11.8
Questo strumento ha i requisiti di eseguibilità successivi:
- python3 >= 3,6
- rpm >= 4,14
- cpio >= 2,10
- gzip >= 1,9
- createrepo_c
- file
- isoinfo
- mkisofs
- mksquashfs
- openssl
- unsquashfs
- 7z (opzionale, ma la funzionalità può essere ridotta senza)
- lettura iso (opzionale, ma senza funzionalità ridotte)
- zip (opzionale, ma la funzionalità può essere ridotta senza)
- unzip (opzionale, ma la funzionalità può essere ridotta senza)
Nota: su un sistema Linux nativo, per il quale non sono state soddisfatte tutte le dipendenze, è possibile installare le dipendenze dello strumento nelle distribuzioni supportate eseguendo il comando successivo (possibilmente tramite sudo): ./setup/prep_dependency.sh
Richiede anche i successivi moduli Python (>= 3.6):
- classi di dati
- defusedxml
- distutils
- imballaggio
- rpm
- yaml
Per l'esecuzione nativa su un host Linux, sono state testate le successive distribuzioni, in particolare per questo scenario, Debian.
- Alma Linux 8
- Fedora 34
- Debian 11.2
Preparazione
È essenziale prima confermare quali pacchetti opzionali sono necessari e perché. L'installazione di pacchetti inutili o eccessivi può causare problemi di utilizzo dello spazio su disco e guasti durante l'installazione. Confermare i prerequisiti e i requisiti di ciascuna piattaforma per lo spazio su disco prima di creare la GISO.
Per scaricare il software necessario, consultare il sito ufficiale per il download del software: Cisco Software Download
Gli script possono aiutarci a unificare una vasta gamma di file, ad esempio iso, correzioni di bridge, SMU e così via.
È necessario per copiare lo script gisobuild.py in una posizione specifica sul server. Lo script si trova nel sito Git di gisobuild
Creazione GISO
Di seguito è riportato un riepilogo degli argomenti che è possibile utilizzare per questo utilizzo dello script:
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]
Per questo esempio, viene creato un GISO per ASR 9901, i pacchetti ISIS e OSPF vengono utilizzati per brevità, i pacchetti mini per la versione 7.9.21 e il file di configurazione aggiunto anche al GISO.
Come illustrato nel comando successivo, i pacchetti, i file mini e di configurazione vengono copiati nella directory /src per creare una versione cancellata del comando di esecuzione dello script.
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#
Di seguito è riportata una breve descrizione dei parametri utilizzati per la creazione di questo oggetto GISO:
—iso ISO |
Percorso del file Mini.iso/Full.iso |
—xrconfig XRCONFIG |
Percorso del file di configurazione XR |
—label ETICHETTA, -l ETICHETTA |
Etichetta Golden ISO |
--clean |
Elimina directory di output prima di continuare |
—ignora immagine |
Non creare l'immagine USB (non supportata per la piattaforma ASR9K) |
Verifica
Come accennato nei log di installazione, è possibile confermare la creazione del GISO esaminando il percorso, per questo esempio. Posizione immagine ISO dorata: /gisobuild-master/src/output_gisobuild/asr9k-golden-x64-7.9.21-firstGiso.iso
Come per l'immagine successiva, initrd.img è 1,7 GB contenente i pacchetti di installazione che abbiamo incluso.
GISO nell'interfaccia utente di Debian