Introduction
Ce document décrit la création de Golden ISO (GISO) pour les mises à niveau dans les routeurs qui exécutent le logiciel Cisco IOS® XR dans les versions eXR.
Conditions préalables
Exigences
Cisco vous recommande de prendre connaissance des rubriques suivantes :
- Logiciel Cisco IOS XR
- Installation du logiciel Cisco IOS XR et procédures de mise à niveau
- Commandes de base Linux et navigation dans la ligne de commande
Composants utilisés
Ce document n'est pas limité à des versions matérielles spécifiques, il s'applique à tous les routeurs exécutant IOS XR 64 bits.
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. Si votre réseau est en ligne, assurez-vous de bien comprendre l’incidence possible des commandes.
Produits connexes
Ce document peut également être utilisé avec les versions matérielles suivantes :
- Routeurs Cisco, série 9000
- Routeurs Cisco, série 8000
- Routeurs Cisco NCS 5700
- Routeurs Cisco NCS 5500
- Routeurs NCS 540 et 560
ISO Golden pour mises à niveau XR
En général, Cisco publie le logiciel IOS-XR sous la forme d'un ISO mini/de base qui contient des packages IOS-XR obligatoires pour une plate-forme donnée, un ensemble de packages facultatifs pour exécuter des fonctionnalités supplémentaires et des correctifs logiciels pour tout correctif de bogue sous la forme d'une mise à niveau de maintenance logicielle (SMU). Le package facultatif et le SMU sont au format RPM.
L'outil Golden ISO crée une ISO contenant le contenu complet de l'ISO mini/de base ainsi que les paquets optionnels et la SMU du choix de l'utilisateur. Une fois que l'ISO d'or est créé, il peut être utilisé soit pour le démarrage d'iPXE, soit pour la mise à niveau du système (SU) de la version courante vers une nouvelle version d'IOS-XR.
Remarque : la mini/base ISO est obligatoire pour toute création d'ISO Golden
Outil Python de gisobuild
Cet outil peut être exécuté en mode natif sur un hôte Linux. Alternativement, l'outil peut également être exécuté sur un système Linux avec Docker activé et la possibilité d'extraire l'image publiée « cisco-xr-gisobuild » à partir du Docker Hub, pour cet exemple est suggéré de travailler dans Debian 11.8
Cet outil a les exigences suivantes en matière d'exécutable :
- python3 >= 3,6
- tr/min >= 4,14
- cpio >= 2,10
- gzip >= 1,9
- createrepo_c
- fichier
- infos isostatiques
- mkisofs
- mksquashfs
- ouvert
- dérouleurs
- 7z (facultatif, mais les fonctionnalités peuvent être réduites sans)
- iso-read (Facultatif - mais les fonctionnalités peuvent être réduites sans)
- zip (Facultatif - mais la fonctionnalité peut être réduite sans)
- unzip (Facultatif - mais la fonctionnalité peut être réduite sans)
Remarque : sur un système Linux natif, qui n'a pas toutes les dépendances remplies, les dépendances d'outils peuvent être installées sur les distributions prises en charge en exécutant la commande suivante (éventuellement via sudo) : ./setup/prep_dependency.sh
Il nécessite également les modules Python suivants (>= 3.6) :
- classes de données
- defusedxml
- distillerie
- conditionnement
- tours par minute
- yaml
Pour fonctionner en mode natif sur un hôte Linux, les prochaines distributions ont été testées, spécifiquement pour ce scénario, Debian.
- Alma Linux 8
- Fedora 34
- Debian 11.2
Préparation
Il est impératif de confirmer d'abord quels paquets optionnels sont nécessaires et pourquoi. L'installation de packages inutiles ou excessifs peut entraîner des problèmes d'utilisation de l'espace disque et des pannes pendant l'installation. Confirmer les conditions préalables et les exigences de chaque plate-forme en matière d'espace disque avant la création du fichier GISO.
Pour télécharger le logiciel nécessaire, consultez le site officiel de téléchargement de logiciels : Téléchargement de logiciels Cisco
Script peut nous aider à unifier une grande gamme de fichiers, par exemple, iso, correctifs de pont, SMU, etc.
Est nécessaire pour copier le script gisobuild.py à un emplacement particulier sur le serveur. Le script est situé sur le site Gisobuild Git
Création de GISO
Voici un résumé des arguments que nous pouvons utiliser pour l'utilisation de ce 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]
Pour cet exemple, un GISO pour ASR 9901 est créé, les packages ISIS et OSPF sont utilisés pour la concision, mini pour la version 7.9.21 et le fichier de configuration est également ajouté au GISO.
Comme le montre la commande suivante, les packages, le fichier mini et le fichier de configuration sont copiés dans le répertoire /src, ce qui permet de créer une version effacée de la commande d'exécution de 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#
Voici une brève description des paramètres utilisés pour cette création de GISO :
—ISO ISO |
Chemin vers le fichier Mini.iso/Full.iso |
—xrconfig XRCONFIG |
Chemin d'accès au fichier de configuration XR |
—label LABEL, -l LABEL |
Label ISO doré |
--sain |
Supprimez le répertoire de sortie avant de continuer |
—skip-image |
Ne créez pas l'image USB (non prise en charge pour la plate-forme ASR9K) |
Vérifier
Comme l'indiquent les journaux d'installation, nous pouvons confirmer notre création de GISO en examinant l'emplacement, dans cet exemple. Emplacement de l'image ISO dorée : /gisobuild-master/src/output_gisobuild/asr9k-golden-x64-7.9.21-firstGiso.iso
Comme dans l'image suivante, initrd.img est de 1,7 Go contenant les paquets d'installation que nous avons inclus.
GISO dans l'interface graphique utilisateur Debian