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), lub upgrade, aby przygotować i zrestartować urządzenie.
  • UpgradeType: Typy uaktualnienia to ios-bin-upgrade, cat-software-install lub auto.
  • BackupImage: Prawda lub fałsz, aby wykonać kopię istniejącego obrazu z przełącznika. Tylko dla ios-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ń:

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 i catos.
  • 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
O projekcie

Upgrade a number of different Cisco network devices operating systems

Zainstaluj
ansible-galaxy install Im0.cisco_upgrader
Licencja
Unknown
Pobrania
25k
Właściciel