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: Soit stage pour préparer l'image pour un redémarrage manuel (et les paramètres de démarrage), soit upgrade pour préparer et redémarrer l'appareil.
  • UpgradeType: Les types de mise à niveau sont ios-bin-upgrade, cat-software-install ou auto.
  • BackupImage: Vrai ou Faux, sauvegarder l'image existante du commutateur. Seulement pour ios-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 :

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 et catos.
  • 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
À propos du projet

Upgrade a number of different Cisco network devices operating systems

Installer
ansible-galaxy install Im0.cisco_upgrader
Licence
Unknown
Téléchargements
25k
Propriétaire