mwallraf.oneos_upgrader

oneos_upgrader

Rola Ansible do aktualizacji urządzeń Ekinops OneAccess działających na oprogramowaniu OneOS. Istnieją dwie główne wersje systemu operacyjnego: OneOS 5 i OneOS 6.

OneOS 5 jest bardzo podobny do Cisco IOS-XE, a obraz oprogramowania powinien być dostępny w pamięci flash, wymagane jest także polecenie boot, aby wskazać, które oprogramowanie powinno zostać załadowane.

OneOS 6 ma główne i zapasowe banki oprogramowania, a każdy bank może mieć załadowane różne oprogramowanie. Musisz wskazać, który bank ma być główny przed ponownym uruchomieniem routera.

Ta rola automatycznie obsługuje obie wersje.

Wymagania

  • ansible.utils
  • mwallraf.ekinops

Błędy

W przypadku wystąpienia błędu proces zostanie przerwany dla danego hosta, co może oznaczać, że raport nie zostanie wygenerowany. Hosty, które uległy awarii, nie będą również wyświetlane w raporcie.

Tagowanie ról

Istnieją 4 tagi, których możesz użyć do określenia trybu roli. Jeśli nie zostaną określone tagi, zostanie przeprowadzona pełna aktualizacja:

  • report: uruchamia tylko wstępne kontrole i generuje raport statusu (domyślnie ten tag zawsze zostanie wykonany)
  • staging: wykonuje wszystkie możliwe zadania przygotowawcze do aktualizacji, ale nie powoduje żadnych przerw, w większości przypadków oznacza to, że po procesie stagingu wystarczy tylko ponowne uruchomienie
  • upload: wykonuje tylko proces przesyłania plików, zostaną przesłane tylko pliki wymagane do aktualizacji
  • upgrade: wykonuje wszystkie niezbędne kroki potrzebne do zakończenia aktualizacji

Domyślne zmienne roli

Poniższe zmienne są domyślnie skonfigurowane, ale mogą być nadpisane w razie potrzeby:

  • auto_configure_pre_requisites: włącza automatyczną konfigurację wstępną (np. włączenie serwera SCP) DOMYŚLNIE = true

Zmienne obliczone

Poniższe zmienne będą obliczane na podstawie podanych zmiennych oraz bieżącej konfiguracji:

  • running_os_is_compliant: wskazuje, czy działający system operacyjny jest już zgodny, czy nie (w porównaniu do wanted_os_version)
  • boot_os_is_compliant: wskazuje, czy system operacyjny do uruchamiania jest już zgodny, czy nie (w porównaniu do wanted_boot_version)
  • scp_is_enabled: wskazuje, czy SCP jest włączony, czy nie

Proces aktualizacji

W zależności od tagów, proces aktualizacji może się różnić. Domyślnie zostanie wykonana pełna aktualizacja.

Tryb raportu

W trybie raportu wykonamy tylko podstawowe kontrole i wygenerujemy raport, który wskaże, czy router powinien zostać zaktualizowany oraz czy jest wystarczająco dużo miejsca na dysku.

Użycie:

ansible-playbook -i hosts playbook.yml --tags report

Zadania playbooka:

  • połączenie i zebranie informacji
  • ustawienie dodatkowych faktów w celu określenia statusu routera i procesu aktualizacji
  • wyświetlenie komunikatu debugującego dla każdego hosta

Szczegóły:

  • zadania:
  • oneos_upgrader: ZBIERANIE FAKTÓW > hostname TAGI: [zawsze]
  • oneos_upgrader: ZBIERANIE FAKTÓW > uzyskanie danych systemowych TAGI: [zawsze]
  • oneos_upgrader: ZBIERANIE FAKTÓW > uzyskanie danych SSH TAGI: [zawsze]
  • oneos_upgrader: USTAW FAKT > uzyskanie statystyk pliku OS TAGI: [zawsze]
  • oneos_upgrader: USTAW FAKT > wanted_os_file_stats TAGI: [zawsze]
  • oneos_upgrader: USTAW FAKT > uzyskanie statystyk pliku rozruchowego TAGI: [zawsze]
  • oneos_upgrader: USTAW FAKT > wanted_boot_file_stats TAGI: [zawsze]
  • oneos_upgrader: USTAW FAKT > uzyskanie statystyk pliku odzyskiwania TAGI: [zawsze]
  • oneos_upgrader: USTAW FAKT > wanted_recovery_file_stats TAGI: [zawsze]
  • oneos_upgrader: ZBIERANIE FAKTÓW > wyświetlenie pamięci TAGI: [zawsze]
  • oneos_upgrader: USTAW FAKT > fact_memory TAGI: [zawsze]
  • oneos_upgrader: GŁÓWNE > uruchomienie zadań związanych z systemem TAGI: [report, staging, upgrade]
  • oneos_upgrader: USTAW FAKT > obliczenie, czy aktualizacje są wymagane TAGI: [zawsze]
  • oneos_upgrader: USTAW FAKT > scp_is_enabled TAGI: [zawsze]
  • oneos_upgrader: USTAW FAKT > sprawdzenie, czy pliki istnieją na dysku lub w banku oprogramowania TAGI: [zawsze]
  • oneos_upgrader: USTAW FAKT > wymagana aktualizacja pliku TAGI: [zawsze]
  • oneos_upgrader: USTAW FAKT > recovery_file_exists_on_disk TAGI: [zawsze]
  • oneos_upgrader: USTAW FAKT > kalkulacja wystarczającej przestrzeni na dysku TAGI: [zawsze]
  • oneos_upgrader: RAPORT > uzyskanie danych hosta TAGI: [report, staging, upgrade]
  • DEBUG > wyjście wszystkich zmiennych TAGI: [zawsze]
  • Szablon pliku do /etc/file.conf TAGI: [zawsze]

Szablon jest przewidziany do generowania raportu CSV, ponieważ ma to być wykonane jako ostatnie zadanie w playbooku.

  post_tasks:
    - name: RAPORT > zapisz do pliku
      ansible.builtin.template:
        src: "roles/oneos_upgrader/templates/report_overview.j2"
        dest: report.txt
      tags:
        - zawsze

Tryb stagingu

W trybie stagingu wykonywane są wszystkie niezbędne kontrole, wszystkie pliki są przesyłane, a aktualizacja jest przygotowywana bez powodowania przerw.

Użycie:

ansible-playbook -i hosts playbook.yml --tags staging

Zadania playbooka:

  • połączenie i zebranie informacji
  • ustawienie dodatkowych faktów w celu określenia statusu routera i procesu aktualizacji
  • jeśli na urządzeniu nie ma miejsca, to stare pliki zostaną usunięte
    • ponowna kalkulacja przestrzeni na dysku
  • jeśli są jakieś zadania konfiguracyjne, to zostaną zrealizowane (np. włączenie SCP)
  • przesyłanie plików, jeśli to konieczne
    • jeśli nie ma miejsca na wszystkie pliki, najpierw zostaną skopiowane pliki rozruchowe
  • bank oprogramowania lub plik rozruchowy jest przygotowywany, jeśli nie ma oczekujących aktualizacji obrazu rozruchowego

Jeśli wymagana jest wiele aktualizacji (BOOT + RECOVERY + OS), to nie jest możliwe jednoczesne przygotowanie wszystkiego. Jeśli jest wystarczająco dużo miejsca na dysku dla wszystkich plików, przesyłanie zakończy się. Ładowanie pliku można wykonać tylko na pierwszym pliku (np. BOOT), ponieważ wymaga ponownego uruchomienia, aby kontynuować. Dlatego wieloetapowe aktualizacje powinny być przeprowadzane krok po kroku, lub dodatkowe kroki zostaną wykonane w trakcie procesu aktualizacji.

O projekcie

Ansible role for upgrading Ekinops-OneAccess OneOS devices

Zainstaluj
ansible-galaxy install mwallraf.oneos_upgrader
Licencja
Unknown
Pobrania
93
Właściciel