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
: Entwederstage
, um das Image für einen zukünftigen manuellen Neustart (und Boot-Einstellungen) vorzubereiten, oderupgrade
, um das Image vorzubereiten und das Gerät neu zu starten.UpgradeType
: Die Upgrade-Optionen sind entwederios-bin-upgrade
,cat-software-install
oderauto
.BackupImage
: Wahr oder Falsch, um das bestehende Image vom Switch zu sichern. Nur beiios-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:
ios-bin-upgrade
, folgt den Upgrade-Anleitungen auf der Website von 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
, folgt den Upgrade-Anleitungen auf der Website von 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
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
undcatos
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
Upgrade a number of different Cisco network devices operating systems
ansible-galaxy install Im0.cisco_upgrader