Im0.cisco_upgrader

im0.cisco_upgrader

Diese Rolle hilft bei der Bereitstellung neuer Images auf einer Vielzahl von Cisco-Netzwerkgeräten.

Voraussetzungen

  • Ansible 2.7+
  • Ansible Network Engine
  • Geeigneter Cisco-Router oder -Switch zum Upgrade
  • Passende ios/catos-Images für Ihr Gerät
  • Python pip scp-Modul installiert

Rollenvariablen

  • Image: Der Dateiname des Images.
  • ImagePath: Der Pfad zum Dateinamen des Images. Standard: ./.
  • State: Entweder stage, um das Image für einen zukünftigen manuellen Neustart (und Boot-Einstellungen) vorzubereiten, oder upgrade, um das Image vorzubereiten und das Gerät neu zu starten.
  • UpgradeType: Die Upgrade-Optionen sind entweder ios-bin-upgrade, cat-software-install oder auto.
  • BackupImage: Wahr oder Falsch, um das bestehende Image vom Switch zu sichern. Nur bei ios-bin-upgrade. Standard: False.

Wichtige Hinweise

Warnung: Diese Rolle führt Änderungen an Ihrem Netzwerkgerät durch und lädt das Gerät neu. Dies wird zu einem Ausfall führen.
Stellen Sie sicher, dass Sie gründlich an einem Testgerät geprüft haben, bevor Sie dies auf Produktionsgeräten ausführen. Nutzung auf eigene Gefahr.

Zeitüberschreitungen: Möglicherweise müssen Sie einige Ansible-Konfigurationsvariablen anpassen, insbesondere:

timeout = 60

[persistent_connection]
command_timeout = 1800
persistent_connect_timeout = 1800

Andernfalls kann es zu Zeitüberschreitungen bei verschiedenen Aufgaben, wie z.B. der MD5-Prüfzahlenberechnung, kommen, mit einer Fehlermeldung wie dieser:

Der vollständige Rückverfolgungsbogen lautet:
WARNUNG: Der folgende Rückverfolgungsbogen könnte *nicht* mit dem tatsächlichen Fehler zusammenhängen.
  Datei "/tmp/ansible_ios_command_payload_VB1GqY/ansible_ios_command_payload.zip/ansible/module_utils/network/ios/ios.py", Zeile 145, in run_commands
    return connection.run_commands(commands=commands, check_rc=check_rc)
  Datei "/tmp/ansible_ios_command_payload_VB1GqY/ansible_ios_command_payload.zip/ansible/module_utils/connection.py", Zeile 182, in __rpc__
    raise ConnectionError(to_text(msg, errors='surrogate_then_replace'), code=code)

fatal: [device]: FEHLGESCHLAGEN! => {
    "changed": false,
    "invocation": {
        "module_args": {
            "auth_pass": null,
            "authorize": null,
            "commands": [
                "verify /md5 flash:c2960-lanbasek9-mz.150-2.SE11.bin"
            ],
            ... ausgelassen ...
        }
    },
    "msg": "Befehlszeitlimit überschritten, der Zeitlimitwert beträgt 10 Sekunden.\nSiehe die Optionen zur Zeitlimit-Einstellung im Netzwerk-Debug- und Fehlersuche-Handbuch."
}

scp: Das Image wird derzeit mit scp übertragen. scp ist auf dem Gerät aktiviert, falls es noch nicht aktiviert ist. Zukünftige Updates können tftp als Übertragungsmethode aktivieren.

Stack-Switches: Upgrades von Stack-Switches wurden nicht speziell getestet oder vorgesehen.

MD5-Prüfziffer: Die Integrität des bereitgestellten binären Images wird vorausgesetzt. Es liegt in Ihrer Verantwortung, sicherzustellen, dass das von Ihnen verwendete Image nicht kompromittiert ist.

Zum Zeitpunkt der Ausführung wird eine lokale MD5-Prüfziffer erfasst, und dann wird eine nach der Übertragung durchgeführte MD5-Prüfziffer verglichen, um sicherzustellen, dass die Datenübertragung erfolgreich war.

Beispiel-Playbook

Ein Image für einen manuellen Neustart vorbereiten:

    - 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
            }

Gerät upgraden und neu starten:

- name: Gerät upgraden
  include_role:
    name: im0.cisco_upgrader
  vars:
    Image: 'c2960-lanbasek9-mz.122-55.SE12.bin'
    State: 'upgrade'
    ImagePath: '/tmp'
    UpgradeType: 'ios-bin-upgrade'

Details zum UpgradeType

Es gibt mehrere Methoden zum Upgrade von Cisco-Netzwerkgeräten, abhängig von Typ und Modell.

Derzeit unterstützte Upgrade-Methoden:

Derzeit nicht unterstützt:

  • nxos-upgrade
  • ios-xr-upgrade

Besondere Erwähnung:

  • auto, versucht, die geeignete Upgrade-Methode basierend auf getesteten/bekannten Modellen auszuwählen. Derzeit: C881, C2960, C3750

Einschränkungen

Betrachten Sie die folgenden Einschränkungen als To-Do-Liste. Derzeitige Einschränkungen sind:

  • Unterstützt keine Dateisystem-Pfade außer flash:.
  • Unterstützt nur ios und catos Upgrades.
  • Unterstützt nur die Kopiermethode scp.
  • Automatische Erkennung der Upgrade-Methode ist derzeit nicht implementiert.
  • Benötigt bessere Kontrolle über Wartezeiten, damit das Gerät wieder online kommt. Ein neuer Parameter sollte eingeführt werden, um dies zu steuern.

Lizenz

GPLv3

Autoreninformationen

  • John Imison
  • Matthew Eason
Über das Projekt

Upgrade a number of different Cisco network devices operating systems

Installieren
ansible-galaxy install Im0.cisco_upgrader
GitHub Repository
Lizenz
Unknown
Downloads
25k
Besitzer