Im0.cisco_upgrader
im0.cisco_upgrader
Ce rôle aide à déployer de nouvelles images sur une gamme d'appareils réseau Cisco.
Exigences
- Ansible 2.7+
- Ansible Network Engine
- Routeur ou commutateur Cisco approprié à mettre à jour
- Images ios/catos appropriées pour votre appareil
- Module
scp
de Python pip installé
Variables du Rôle
Image
: Le nom de fichier de l'image.ImagePath
: Le chemin vers le nom de fichier de l'image. Par défaut :./
.State
: Soitstage
pour préparer l'image pour un redémarrage manuel (et les paramètres de démarrage), soitupgrade
pour préparer et redémarrer l'appareil.UpgradeType
: Les types de mise à niveau sontios-bin-upgrade
,cat-software-install
ouauto
.BackupImage
: Vrai ou Faux, sauvegarder l'image existante du commutateur. Seulement pourios-bin-upgrade
. Par défaut :False
.
Notes Importantes
Avertissement: Ce rôle apporte des modifications à votre appareil réseau et le redémarre. Cela entraînera une coupure.
Assurez-vous de l'avoir testé sur un appareil de test avant de l'exécuter sur des appareils de production. Utilisez à vos risques et périls.
Temps d'attente: Vous devrez probablement ajuster certaines variables de configuration Ansible, spécifiquement :
timeout = 60
[persistent_connection]
command_timeout = 1800
persistent_connect_timeout = 1800
Sinon, diverses tâches, comme le calcul du checksum md5, peuvent aboutir à un dépassement de temps avec une erreur comme celle-ci :
Le traceback complet est :
AVERTISSEMENT : Le traceback ci-dessous peut *ne pas* être lié à l'échec réel.
Fichier "/tmp/ansible_ios_command_payload_VB1GqY/ansible_ios_command_payload.zip/ansible/module_utils/network/ios/ios.py", ligne 145, dans run_commands
return connection.run_commands(commands=commands, check_rc=check_rc)
Fichier "/tmp/ansible_ios_command_payload_VB1GqY/ansible_ios_command_payload.zip/ansible/module_utils/connection.py", ligne 182, dans __rpc__
raise ConnectionError(to_text(msg, errors='surrogate_then_replace'), code=code)
fatal: [device]: ÉCHEC! => {
"changed": false,
"invocation": {
"module_args": {
"auth_pass": null,
"authorize": null,
"commands": [
"verify /md5 flash:c2960-lanbasek9-mz.150-2.SE11.bin"
],
... omis ...
}
},
"msg": "délai d'expiration du commandement déclenché, la valeur de délai est de 10 secondes.\nVoir les options de paramètres de délai dans le Guide de Débogage et de Dépannage Réseau."
}
scp: L'image est actuellement transférée en utilisant scp
. scp
est activé sur l'appareil s'il n'est pas déjà activé. De futures mises à jour pourraient activer tftp
comme méthode de transfert.
Commutateurs empilés: La mise à jour des commutateurs empilés n'a pas été spécifiquement testée, ni provisionnée.
Checksum MD5: L'intégrité de l'image binaire fournie est supposée. Il vous incombe de vous assurer que l'image que vous utilisez n'est pas compromise.
Au moment de l'exécution, un checksum MD5 local est capturé, puis un checksum MD5 post-transfert est comparé pour garantir que le transfert de données a réussi.
Exemple de Playbook
Préparer une image pour un redémarrage manuel :
- hosts: switches
gather_facts: no
roles:
- { role: im0.cisco_upgrader,
Image: 'c2960-lanbasek9-mz.122-55.SE12.bin',
State: stage,
ImagePath: '/tmp',
UpgradeType: 'ios-bin-upgrade',
BackupImage: True
}
Mettre à niveau l'appareil et recharger :
- name: Mettre à niveau l'appareil
include_role:
name: im0.cisco_upgrader
vars:
Image: 'c2960-lanbasek9-mz.122-55.SE12.bin'
State: 'upgrade'
ImagePath: '/tmp'
UpgradeType: 'ios-bin-upgrade'
Détails sur UpgradeType
Il existe plusieurs méthodes pour mettre à niveau les appareils réseau Cisco, en fonction de la marque et du modèle.
Styles de mise à niveau actuellement pris en charge :
ios-bin-upgrade
, suit les instructions de mise à niveau basées sur le site Web de Cisco : https://www.cisco.com/c/en/us/support/docs/routers/3800-series-integrated-services-routers/49044-sw-upgrade-proc-ram.html / https://www.cisco.com/c/en/us/support/docs/switches/catalyst-2950-series-switches/41542-191.htmlcat-software-install
, suit les instructions de mise à niveau basées sur le site Web de Cisco : https://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst3850/software/release/16-3/release_notes/ol-16-3-3850.html#pgfId-1110759
Actuellement non pris en charge :
nxos-upgrade
ios-xr-upgrade
Mention spéciale :
auto
, tente de sélectionner la méthode de mise à niveau appropriée en fonction des modèles testés/connus. Actuellement : C881, C2960, C3750
Limitations
Considérez les limitations suivantes comme une liste de choses à faire. Les limitations actuelles comprennent :
- Ne prend pas en charge les chemins de système de fichiers autres que
flash:
. - Ne prend en charge que les mises à niveau
ios
etcatos
. - Ne prend en charge que la méthode de copie
scp
. - Détection automatique de la méthode de mise à niveau actuellement non mise en œuvre.
- Besoin d'un meilleur contrôle sur les temps d'attente pour que l'appareil soit de nouveau en ligne. Introduire un nouveau paramètre pour contrôler cela.
Licence
GPLv3
Informations sur l'auteur
- John Imison
- Matthew Eason
Upgrade a number of different Cisco network devices operating systems
ansible-galaxy install Im0.cisco_upgrader