Mise à jour des équipements¶
La mise à jour des équipements réseau dans Avalon permet de téléverser et d'activer des images NOS (Network Operating System) sur vos équipements de manière centralisée et contrôlée. Avalon gère l'ensemble du processus : vérification de l'espace disque, transfert de l'image, validation du checksum et activation selon les procédures spécifiques à chaque constructeur.
Prérequis¶
Avant de pouvoir mettre à jour un équipement, vous devez avoir téléversé les images NOS dans Avalon et les avoir associées à une device family. Une fois cette association effectuée, l'image devient disponible pour tous les équipements dont le modèle est rattaché à cette device family.
Pour plus de détails sur le téléversement des images, consultez la page Device images.
Méthodes d'accès¶
Avalon offre trois points d'entrée, et ils ne se comportent pas pareil : les deux premiers nomment une image, le troisième énonce une intention.
-
Depuis la carte du site : sélectionnez un ou plusieurs équipements, clic droit, puis un service de la catégorie NosImages. L'image est choisie dans une liste. Voir la page Travailler avec la carte d'un site.
-
Depuis le planificateur (Schedule) : programmez une mise à jour pour une exécution différée. L'image est choisie dans la même liste.
-
Depuis une règle d'ingénierie : la règle ne nomme aucune image. Chaque équipement reçoit l'image cible déclarée sur son propre modèle, dans Inventory puis Device Models. Une seule règle couvre donc un parc mixte, et un modèle sans cible déclarée est simplement écarté au lieu de faire échouer la règle. Voir la page Ingénierie.
Pourquoi la troisième existe
Écrite comme une campagne, une mise à jour nomme une image et doit être relancée pour chaque modèle. Écrite comme une règle, elle dit « chaque équipement tourne sur l'image décidée pour son modèle », et la décision vit dans le catalogue, là où elle se prend une fois. Le seuil d'échec, la date butoir et l'ordre par criticité sont disponibles sur les trois.
Services disponibles¶
uploadnosimage¶
Effectue un upload simple de l'image vers l'équipement sans l'activer. Utile pour pré-positionner une image avant une fenêtre de maintenance.
| Option | Description |
|---|---|
| Image | L'image NOS à transférer |
| auto_cleanup | Nettoie automatiquement le disque si l'espace est insuffisant. Supporté sur les équipements Cisco en INSTALL MODE et en BUNDLE MODE. |
| VRF | La VRF à utiliser pour récupérer l'image en TFTP depuis Avalon |
activatenosimage¶
Active une image qui a été préalablement téléversée par Avalon.
| Option | Description |
|---|---|
| Image | L'image NOS à activer |
| minimize_disruption | Active un processus de mise à jour sans coupure (ex. ISSU chez Cisco) |
| VRF | La VRF à utiliser pour récupérer l'image en TFTP depuis Avalon |
Ce que la liste d'images propose
Depuis la carte et depuis le planificateur, la liste ne propose que la dernière image transférée avec succès par Avalon, et seulement si elle diffère de celle actuellement active. Une image déposée par un autre moyen n'est pas proposée.
Une règle d'ingénierie ne passe pas par cette liste : elle nomme la cible déclarée sur le modèle d'équipement, quel que soit ce qui a déposé le fichier. Avant de redémarrer, Avalon vérifie alors que l'image est sur le disque, qu'elle figure dans son propre catalogue, et que son empreinte correspond. L'un des trois qui échoue arrête l'opération sans toucher à l'équipement.
upgradevice¶
Effectue l'upload et l'activation en une seule opération. C'est le service le plus couramment utilisé pour une mise à jour complète.
| Option | Description |
|---|---|
| Image | L'image NOS à déployer |
| minimize_disruption | Active un processus de mise à jour sans coupure (ex. ISSU chez Cisco) |
| auto_cleanup | Nettoie automatiquement le disque si l'espace est insuffisant. Supporté sur les équipements Cisco en INSTALL MODE et en BUNDLE MODE. |
| VRF | La VRF à utiliser pour récupérer l'image en TFTP depuis Avalon |
Vérifications effectuées sur Cisco IOS et IOS XE¶
Les deux schémas ci-dessous décrivent le déroulé Cisco, et lui seul. Les modes de démarrage install et bundle, le registre de configuration, l'ISSU et la validation d'une installation en deux temps sont des notions Cisco sans équivalent ailleurs : Aruba OS-CX travaille avec deux banques d'images, primaire et secondaire, et suit la procédure décrite dans sa propre section plus bas.
Au sein de Cisco, le déroulé ne dépend pas du point de lancement : la carte, une planification et une règle d'ingénierie empruntent exactement ces étapes. Chaque refus arrive avant toute écriture sur l'équipement.
Phase de transfert¶
De la demande à l'image posée sur le disque. uploadnosimage s'arrête ici ; upgradevice enchaîne
directement sur le schéma suivant.
graph TD
Start[Upload demandé] --> FS{Système de fichiers<br/>lisible ?}
FS -->|Non| Stop[Arrêt<br/>rien n'est écrit sur l'équipement]
FS -->|Oui| Present{Image déjà<br/>sur le disque ?}
Present -->|Oui, empreinte différente| Stop
Present -->|Oui, empreinte conforme| Ready[Image en place<br/>proposée à l'activation]
Present -->|Non| Space{Espace suffisant,<br/>ou auto_cleanup ?}
Space -->|Non| Stop
Space -->|Oui| Register{Registre correct,<br/>là où il est requis ?}
Register -->|Impossible à poser| Stop
Register -->|Oui| Transfer[Transfert en TFTP<br/>progression suivie en direct]
Transfer --> Sum{Empreinte conforme<br/>au catalogue ?}
Sum -->|Non| Stop
Sum -->|Oui| Ready
Phase d'activation¶
De la demande à un équipement qui tourne sur la nouvelle version. activatenosimage démarre ici, sur
une image déjà présente sur le disque.
graph TD
Act[Activation demandée] --> Same{Tourne déjà sur<br/>la version cible ?}
Same -->|Oui| Done[Succès, sans redémarrage]
Same -->|Non| Asked{minimize_disruption<br/>demandé ?}
Asked -->|Oui| Eligible{Modèle, redondance,<br/>chemin de version,<br/>prérequis ?}
Eligible -->|Non| Stop[Arrêt<br/>rien n'est modifié, pas de redémarrage]
Eligible -->|Oui| ISSU[ISSU<br/>environ 1s de perturbation]
Asked -->|Non| Checks{Sur le disque, au catalogue,<br/>empreinte conforme ?}
Checks -->|Non| Stop
Checks -->|Oui| Mode{Mode de démarrage ?}
Mode -->|Bundle| Boot[Nouvelle image en premier<br/>l'actuelle en second comme recours]
Mode -->|Install| Reload[Redémarrage complet]
Boot --> Reload
ISSU --> Verify{Version en cours<br/>conforme à la cible ?}
Reload --> Verify
Verify -->|Non, ou illisible| Failed[Échec<br/>revenu sur la version précédente]
Verify -->|Oui| Commit{Installation en deux temps<br/>à valider ?}
Commit -->|Commit refusé| Failed
Commit -->|Non, ou validé| Saved[Configuration sauvegardée<br/>mise à jour terminée]
Ce que le schéma ne montre pas¶
L'image déjà sur le disque. Rien n'est transféré, et c'est le seul cas que rien d'autre ne vérifie : le fichier a été déposé par une tentative précédente, par une autre exécution ou à la main, et son empreinte est la seule chose qui dise s'il s'agit bien de l'image demandée.
Cela compte quand même comme un upload réussi, et ce n'est pas un détail : la carte et le planificateur proposent à l'activation la dernière image transférée avec succès par Avalon, donc une image trouvée en place et vérifiée devient celle qu'ils proposent. Sans cela, un transfert qui n'avait rien à faire laisserait l'image non sélectionnable et imposerait un retransfert inutile.
Le recours dans l'ordre de démarrage. En mode bundle, l'image actuellement active est inscrite en seconde position, donc un équipement qui ne parvient pas à démarrer sur la nouvelle revient sur celle qu'il exécutait. Avalon rapporte alors un échec : le redémarrage a eu lieu, la mise à jour non.
L'installation en deux temps. Quand l'équipement répond que le paquet est déjà ajouté, l'activation n'est validée qu'après le redémarrage. Sans cette validation il revient de lui-même à sa version précédente au bout d'un délai, sans rien annoncer, donc un commit refusé est un échec même si l'équipement tourne sur la nouvelle version à cet instant.
Qui décide de quoi. En mode install, l'équipement valide le paquet et refuse un paquet incomplet, Avalon n'ajoute rien. En mode bundle, il démarre sur ce qu'on lui désigne sans rien contrôler, et c'est pourquoi les trois vérifications n'existent que sur ce chemin.
Et rien de tout ceci ne s'applique à Aruba. Là-bas, activer veut dire désigner une banque de démarrage, l'équipement porte deux images en permanence, et le retour arrière est l'autre banque plutôt qu'un ordre de démarrage. Voir la section Aruba plus bas.
Aruba OS-CX : le déroulé¶
Rien de ce qui précède ne s'applique ici. Un commutateur CX porte deux banques d'images, primaire et secondaire, et il les garde toujours toutes les deux : activer veut dire désigner celle sur laquelle démarrer, et se remettre d'une mauvaise image veut dire démarrer sur l'autre. Il n'y a pas d'ordre de démarrage à écrire, pas de registre de configuration, pas d'ISSU, et pas de retour arrière à armer, puisque l'autre banque est le retour arrière.
graph TD
Start[Upload demandé] --> Disk{Image déjà<br/>sur une banque ?}
Disk -->|Illisible| Stop[Arrêt<br/>rien n'est écrit sur l'équipement]
Disk -->|Oui| Ready[Rien à transférer]
Disk -->|Non| Bank{Quelle banque<br/>est active ?}
Bank -->|Illisible| Stop
Bank -->|Connue| Target[La cible est l'AUTRE banque<br/>celle qui tourne n'est jamais touchée]
Target --> Copy[Copie dans cette banque<br/>par la VRF choisie]
Copy --> Timeout{Transfert terminé<br/>dans le délai ?}
Timeout -->|Non| Stop
Timeout -->|Oui| Sum{Empreinte de la banque<br/>conforme ?}
Sum -->|Non| Stop
Sum -->|Oui| Ready
graph TD
Act[Activation demandée] --> Which{Quelle banque PORTE<br/>l'image demandée ?}
Which -->|Aucune| Stop[Arrêt<br/>transférez-la d'abord]
Which -->|Celle qui est active| Done[Succès, sans redémarrage<br/>elle tourne déjà dessus]
Which -->|L'autre| Boot[Démarrage sur cette banque]
Boot --> Accepted{Commande<br/>acceptée ?}
Accepted -->|Non| Stop
Accepted -->|Oui| Down{L'équipement est-il<br/>vraiment tombé ?}
Down -->|Jamais tombé| Failed[Échec<br/>la commande est passée mais rien n'a redémarré]
Down -->|Oui| Up{Revenu en ligne,<br/>et joignable en SSH ?}
Up -->|Non| Failed
Up -->|Oui| Verify{Version en cours<br/>conforme à l'image ?}
Verify -->|Non| Failed
Verify -->|Oui| Saved[Mise à jour terminée]
La banque est choisie d'après ce que les banques contiennent, jamais en basculant l'active. Demander l'activation d'une image que l'équipement exécute déjà se termine donc en succès sans redémarrage, et la version lue dans la banque cible est réécrite dans Avalon, ce qui réaligne un inventaire qui avait perdu le fil.
Le VSX est refusé quand les deux châssis ne démarrent pas sur la même banque, et Avalon le vérifie avant de transférer quoi que ce soit : la paire serait sinon laissée dans un état incohérent. La commande d'orchestration VSX elle-même n'est volontairement pas employée ici.
En VSF, la pile synchronise l'image vers ses membres toute seule, et boot system redémarre la pile
entière. Avalon n'attend pas la fin de cette synchronisation, et c'est précisément pourquoi redémarrer un
membre en pleine synchronisation est le seul moyen de l'empêcher de rejoindre la pile.
Pas de retour arrière automatique sur Aruba OS-CX
Contrairement à Cisco en mode bundle, où l'image précédemment active est inscrite en seconde position dans l'ordre de démarrage et où l'équipement y revient de lui-même, AOS-CX n'offre rien d'équivalent. L'autre banque reste intacte, donc l'image précédente est toujours là, mais redémarrer dessus est une opération manuelle qui demande quelqu'un sur site ou une console. Dimensionnez la fenêtre de maintenance en conséquence : un équipement qui ne revient pas ne se rétablira pas tout seul.
Ce qu'Avalon traite, par constructeur et par modèle¶
Deux questions décident de tout : le modèle est-il pris en charge, et quel mode de démarrage
l'équipement exécute-t-il. Le mode n'est pas une propriété du modèle mais de l'équipement : Avalon le
lit dans l'image en cours, packages.conf signifiant le mode install et tout le reste le mode bundle.
Un modèle qui sait faire les deux apparaît donc dans les deux colonnes.
Cisco IOS et IOS XE¶
| Modèle | Pris en charge | Install | Bundle | ISSU | Remarques |
|---|---|---|---|---|---|
| C9400, C9500 | oui | oui | oui | oui | L'ISSU exige un Stackwise Virtual ou un double superviseur |
| C9200, C9300 | oui | oui | oui | non | Les plateformes habituelles en mode install |
| C3850, C3650 (C38) | oui | oui | oui | non | |
| C3560 (C356) | oui | non | oui | non | IOS classique |
| C2960C, C2960X | oui | non | oui | non | IOS classique, aucun contrôle de registre nécessaire |
| C9600 | non | Couvert par les règles de registre et de disques mais absent de la liste des modèles pris en charge : la mise à jour est refusée avant de commencer | |||
| Catalyst 4500, 4500-X (C45) | oui | non | oui | non | Le registre de configuration est lu et posé avant le transfert |
| Cisco IOL | oui | non | oui | non | Plateforme de lab EVE-NG, système de fichiers unix: |
| ISR 4000, ASR 1000, C1100 | non | Absents de la liste : la mise à jour est refusée avant de commencer | |||
| Tout autre Cisco IOS | non | Idem, et le système de fichiers ne peut pas être déterminé non plus |
Piles et redondance
Une paire Stackwise Virtual ou VSS avec double superviseur est refusée, volontairement : la procédure diffère et n'est pas implémentée. Une pile Stackwise simple est prise en charge, et le contrôle d'espace disque comme le nettoyage automatique s'exécutent sur tous les membres.
Aruba OS-CX¶
| Modèle | Pris en charge | Procédure | Remarques |
|---|---|---|---|
| CX autonome | oui | Deux banques d'images, primaire et secondaire | Pas de retour arrière automatique. L'autre banque reste intacte, donc une mauvaise image se récupère en redémarrant dessus, ce qui demande quelqu'un sur site ou une console |
| CX en VSX | oui | Les deux châssis doivent démarrer sur la même banque | Avalon le vérifie avant de transférer quoi que ce soit et refuse sinon |
| CX en VSF | oui |
Autres constructeurs¶
| Constructeur | Transfert et activation d'image |
|---|---|
| Cisco NX-OS | non implémenté, et déclaré comme tel |
| HP Comware, HP ProCurve | non implémenté |
| Huawei VRP | non implémenté |
| Arista EOS | non implémenté |
| Palo Alto PAN-OS, Stormshield | non implémenté, déclaré explicitement sur le pilote |
Ce que « non implémenté » veut dire
Le service n'est pas absent par accident : le pilote déclare la méthode comme indisponible, donc demander une mise à jour sur ces plateformes rend un refus clair au lieu d'échouer à mi-parcours. Le reste de ce qu'Avalon y fait, inventaire, connectivité, sauvegarde de configuration quand elle existe, n'est pas affecté.
Formats d'image acceptés¶
Deux seulement, toute autre extension étant refusée au téléversement : .bin pour Cisco, .swi pour
Aruba OS-CX. Une archive .tar doit être décompressée au préalable, Avalon inscrivant un chemin de
démarrage vers le fichier qu'il a transféré plutôt que de passer par la procédure d'extraction
d'archive de l'équipement.
Procédures spécifiques¶
Cisco¶
Auto Cleanup¶
Le nettoyage automatique du disque (auto_cleanup) est supporté sur les équipements Cisco IOS / IOS XE dans les deux modes de boot :
Install mode :
- Avalon exécute la commande de nettoyage native de la plateforme pour supprimer les paquets inactifs.
Bundle mode :
- Avalon scanne tous les disques de l'équipement, y compris ceux des membres secondaires dans un Stackwise ou un stack.
- Pour chaque disque, la recherche s'effectue à la racine et dans les sous-dossiers.
- Seules deux images sont conservées : l'image en cours d'exécution et l'image cible (celle qui va être téléversée). Tous les autres fichiers
.binsont supprimés.
ISSU (In-Service Software Upgrade)¶
L'ISSU est une méthode de mise à jour qui minimise l'interruption de service. Contrairement à un upgrade standard qui provoque un reload complet (~10 minutes de downtime), l'ISSU exploite la redondance matérielle d'un équipement dual-supervisor pour effectuer la mise à jour "à chaud" avec environ 1 seconde de perturbation du trafic. La durée totale du processus est d'environ 20 minutes.
L'ISSU est déclenché en activant l'option minimize_disruption dans les services upgradevice ou activatenosimage. Si l'équipement remplit tous les critères d'éligibilité, Avalon utilise la procédure ISSU. Sinon l'opération échoue et l'équipement n'est pas touché : aucune bascule silencieuse vers un upgrade standard. Demander minimize_disruption, c'est accepter une seconde de perturbation, pas dix minutes de coupure, donc Avalon refuse plutôt que de substituer une procédure que vous n'avez pas demandée.
Plateformes supportées¶
L'ISSU est actuellement supporté sur Cisco IOS XE uniquement, pour les modèles suivants :
- Catalyst 9500 (C95) : en topologie Stackwise Virtual
- Catalyst 9400 (C94) : en topologie Stackwise Virtual ou en configuration dual-superviseur (SSO sans SVL)
Critères d'éligibilité¶
Toutes les conditions suivantes doivent être réunies pour que l'ISSU puisse s'exécuter :
| Critère | C9500 (Stackwise Virtual) | C9400 (dual-superviseur) |
|---|---|---|
| Modèle | Catalyst 9500 (C95) | Catalyst 9400 (C94) |
| Technologie | Stackwise Virtual | Dual-superviseur (SSO) |
| Version minimale | IOS XE 16.9.2 | IOS XE 16.9.2 |
| Mode de boot | Install mode (packages.conf) |
Install mode (packages.conf) |
| Redondance | SSO (Stateful Switchover) actif | SSO (Stateful Switchover) actif |
| Topologie | 2 switches SVL en état Ready |
Chassis avec 2 superviseurs en état Ready |
| Autoboot | manual_boot = no sur Active ET Standby |
manual_boot = no sur Active ET Standby |
| État ISSU | Enabled, aucune opération en cours |
Enabled, aucune opération en cours |
| Paquets | Tous en état Committed |
Tous en état Committed |
| Espace disque | Espace suffisant sur bootflash: ET stby-bootflash: |
Espace suffisant sur bootflash: ET stby-bootflash: |
Si un critère n'est pas rempli, Avalon nomme lequel dans la transaction et arrête l'opération. Les quatre contrôles, le modèle, la redondance, le chemin de version et les prérequis, aboutissent au même résultat : un échec avant toute écriture. Pour partir quand même, relancez sans minimize_disruption, ce qui est un choix explicite.
Commandes incompatibles¶
Certaines commandes de configuration sont incompatibles avec l'ISSU. Avalon les détecte et les supprime automatiquement de la running-config avant de lancer la procédure. La configuration est ensuite sauvegardée pour que la suppression soit effective.
Commandes identifiées à ce jour (documentation Cisco + retours terrain) :
snmp-server enable traps licenseip http bannersnmp enable traps energywise
Info
Cette liste est susceptible d'évoluer avec les futures versions d'IOS XE.
Chemins d'upgrade valides¶
L'ISSU ne supporte pas les sauts de version arbitraires. Les règles suivantes s'appliquent :
- IOS XE 16.x : upgrade dans le même mineur (ex. 16.9.x vers 16.9.y) ou de 16.9.x vers 16.12.x uniquement
- IOS XE 17.x : upgrade entre versions Extended Maintenance (17.3, 17.6, 17.9, 17.12, 17.15, 17.18) ou dans le même mineur
- Pas de downgrade supporté
- Pas de saut de branche majeure (16.x vers 17.x est interdit via ISSU)
- Version source minimale : 16.9.2. Tout ce qui est antérieur est refusé
IOS XE 26.x et au-delà
Les chemins ci-dessus couvrent 16.x et 17.x. Un équipement sur une branche plus récente, 26.x
notamment, voit l'ISSU refusé avec un message explicite, ISSU validation not defined for version
26.x, et l'opération s'arrête là, sans bascule. La
validation des chemins ISSU de cette branche est en cours : d'ici là, une mise à jour d'un
équipement en 26.x doit être lancée sans minimize_disruption.
Fonctionnement¶
Lorsque l'ISSU est déclenché, Avalon effectue les étapes suivantes :
- Vérifications préalables : Avalon valide tous les critères d'éligibilité listés ci-dessus
- Activation ISSU : Avalon lance la procédure ISSU sur l'équipement
- Monitoring actif : Avalon surveille la progression de l'ISSU en continu (timeout : 40 minutes)
- Switchover : Le supervisor standby est mis à jour en premier, puis prend le rôle d'active. L'ancien supervisor active est ensuite mis à jour et devient standby. La perturbation du trafic est d'environ 1 seconde lors du switchover
- Reconnexion : Après le switchover, Avalon se reconnecte à l'équipement
- Validation post-upgrade : Avalon vérifie que la nouvelle version est bien active et que l'état de l'équipement est propre
- Sauvegarde de la configuration : La running configuration est sauvegardée
ISSU vs Upgrade standard¶
| Aspect | Upgrade standard | ISSU |
|---|---|---|
| Downtime | ~10 min (reload complet) | ~1 seconde |
| Durée totale | ~10-15 min | ~20 min |
| Prérequis matériels | Minimal | Dual supervisor SSO (+ SVL pour C9500) |
| Modèles supportés | C2960X, C38, C45, C92-95 | C94 (SVL ou dual-sup), C95 (SVL) |
| Rollback automatique en cas d'échec | Non | Oui |
Rollback¶
En cas d'échec pendant le processus, Avalon tente automatiquement d'annuler l'opération et de restaurer l'équipement dans un état connu.
Aruba¶
CX en VSX¶
Pour les équipements Aruba CX configurés en VSX (Virtual Switching Extension), des règles spécifiques s'appliquent :
- Toutes les opérations doivent être lancées sur le membre primary
- Il n'est pas possible de lancer un upload ou une activation directement sur le membre secondary
- Avalon pilote la procédure d'upgrade depuis le membre primary et monitore l'état global du processus
- Lorsque le primary redémarre, Avalon perd temporairement la connexion SSH puis monitore le retour du primary pour se reconnecter et vérifier que le processus est complété avec la bonne version
Roadmap
Nous sommes ouverts à l'implémentation de procédures spécifiques pour d'autres constructeurs ou modèles. Contactez-nous pour discuter de vos besoins.