Im0.cisco_upgrader
im0.cisco_upgrader
Ten zestaw ról pomaga w wdrażaniu nowych obrazów na różnorodne urządzenia sieciowe Cisco.
Wymagania
- Ansible 2.7+
- Ansible Network Engine
- Odpowiedni router lub przełącznik Cisco do uaktualnienia
- Odpowiednie obrazy ios/catos dla twojego urządzenia
- Zainstalowany moduł
scp
w Pythonie pip
Zmienne roli
Image
: Nazwa pliku obrazu.ImagePath
: Ścieżka do pliku obrazu. Domyślnie:./
.State
: Możesz wybraćstage
, aby przygotować obraz do przyszłego ręcznego restartu (i ustawienia uruchamiania), lubupgrade
, aby przygotować i zrestartować urządzenie.UpgradeType
: Typy uaktualnienia toios-bin-upgrade
,cat-software-install
lubauto
.BackupImage
: Prawda lub fałsz, aby wykonać kopię istniejącego obrazu z przełącznika. Tylko dlaios-bin-upgrade
. Domyślnie:False
.
Ważne uwagi
Ostrzeżenie: Ta rola wprowadza zmiany w twoim urządzeniu sieciowym i ponownie uruchamia urządzenie. Spowoduje to przerwy w działaniu.
Upewnij się, że dokładnie przetestowałeś na urządzeniu laboratoryjnym przed uruchomieniem na urządzeniach produkcyjnych. Używasz na własne ryzyko.
Czasy oczekiwania: Możesz zauważyć, że konieczne jest dostosowanie niektórych zmiennych konfiguracyjnych ansible, a w szczególności:
timeout = 60
[persistent_connection]
command_timeout = 1800
persistent_connect_timeout = 1800
W przeciwnym razie różne zadania, takie jak obliczanie sumy kontrolnej md5, mogą zakończyć się błędem:
Pełny ślad błędu:
OSTRZEŻENIE: Poniższy ślad błędu może *nie być* związany z faktycznym błędem.
Plik "/tmp/ansible_ios_command_payload_VB1GqY/ansible_ios_command_payload.zip/ansible/module_utils/network/ios/ios.py", linia 145, w run_commands
zwróć connection.run_commands(commands=commands, check_rc=check_rc)
Plik "/tmp/ansible_ios_command_payload_VB1GqY/ansible_ios_command_payload.zip/ansible/module_utils/connection.py", linia 182, w __rpc__
raise ConnectionError(to_text(msg, errors='surrogate_then_replace'), code=code)
fatal: [device]: NIE POWIODŁO SIĘ! => {
"changed": false,
"invocation": {
"module_args": {
"auth_pass": null,
"authorize": null,
"commands": [
"verify /md5 flash:c2960-lanbasek9-mz.150-2.SE11.bin"
],
... pominięte ...
}
},
"msg": "wyzwalacz przekroczenia czasu polecenia, wartość czasu to 10 sek.\nZobacz opcje ustawienia czasu w Przewodniku po debugowaniu i rozwiązywaniu problemów w sieci."
}
scp: Obraz jest obecnie przesyłany przy użyciu scp
. scp
jest włączony na urządzeniu, jeśli nie jest już włączony. W przyszłych aktualizacjach może być włączona metoda przesyłania tftp
.
Przełączniki kaskadowe: Uaktualnienie przełączników kaskadowych nie zostało konkretnie przetestowane ani przewidziane.
Suma kontrolna MD5: Zakłada się integralność dostarczonego obrazu binarnego. Należy do twoich obowiązków upewnić się, że używany obraz nie został skompromitowany.
W momencie wykonania lokalna suma kontrolna MD5 jest rejestrowana, a następnie sumy kontrolne md5 po przesłaniu są porównywane, aby upewnić się, że przesył danych zakończył się sukcesem.
Przykład Playbooka
Przygotuj obraz do ręcznego restartu:
- 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
}
Uaktualnij urządzenie i zrestartuj:
- name: Uaktualnij urządzenie
include_role:
name: im0.cisco_upgrader
vars:
Image: 'c2960-lanbasek9-mz.122-55.SE12.bin'
State: 'upgrade'
ImagePath: '/tmp'
UpgradeType: 'ios-bin-upgrade'
Szczegóły UpgradeType
Istnieje wiele metod uaktualniania urządzeń sieciowych Cisco, w zależności od marki i modelu.
Obecnie obsługiwane style uaktualnień:
ios-bin-upgrade
, zgodnie z instrukcjami uaktualnienia z witryny 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
, zgodnie z instrukcjami uaktualnienia z witryny 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
Obecnie nieobsługiwane:
nxos-upgrade
ios-xr-upgrade
Specjalna wzmianka:
auto
, próbuje wybrać odpowiednią metodę uaktualnienia na podstawie przetestowanych/znanych modeli. Obecnie: C881, C2960, C3750
Ograniczenia
Uważaj na następujące ograniczenia jako listę do zrobienia. Obecne ograniczenia to:
- Nie obsługuje ścieżek systemu plików innych niż
flash:
. - Obsługuje tylko uaktualnienia
ios
icatos
. - Obsługuje tylko metodę kopiowania
scp
. - Automatyczne wykrywanie metody uaktualnienia jest obecnie niezaimplementowane.
- Potrzebna jest lepsza kontrola czasów oczekiwania na powrót urządzenia do trybu online. Wprowadzenie nowego parametru do kontrolowania tego.
Licencja
GPLv3
Informacje o autorze
- John Imison
- Matthew Eason
Upgrade a number of different Cisco network devices operating systems
ansible-galaxy install Im0.cisco_upgrader