mwallraf.oneos_upgrader

oneos_upgrader

Ansible-Rolle zum Upgrade von Ekinops OneAccess-Geräten, die die OneOS-Software verwenden. Es gibt zwei Hauptversionen des Betriebssystems: OneOS 5 und OneOS 6.

OneOS 5 ist sehr ähnlich zu Cisco IOS-XE und das Software-Image sollte im Flash-Speicher vorhanden sein. Ein Boot-Befehl ist erforderlich, um anzugeben, welche Software geladen werden soll.

OneOS 6 hat primäre und redundante Softwarebanken, und jede Bank kann unterschiedliche Software enthalten. Sie müssen angeben, welche Bank die primäre sein soll, bevor Sie den Router neu laden.

Diese Rolle unterstützt automatisch beide Versionen.

Anforderungen

  • ansible.utils
  • mwallraf.ekinops

Fehler

Im Falle eines Fehlers wird der Prozess für einen Host abgebrochen. Das könnte bedeuten, dass der Bericht nicht erstellt wird. Fehlgeschlagene Hosts werden ebenfalls nicht im Bericht angezeigt.

Rollentags

Es gibt 4 Tags, die Sie verwenden können, um den Modus der Rolle zu definieren. Wenn keine Tags angegeben sind, wird ein vollständiges Upgrade durchgeführt:

  • report: führt nur die Vorab-Checks durch und generiert einen Statusbericht (standardmäßig wird dieser Tag immer ausgeführt)
  • staging: führt alle möglichen Aufgaben durch, um ein Upgrade vorzubereiten, verursacht jedoch keine Ausfälle. In den meisten Fällen bedeutet dies, dass nach dem Staging-Prozess nur ein Neustart erforderlich ist.
  • upload: führt nur den Datei-Upload-Prozess durch. Nur die für das Upgrade benötigten Dateien werden hochgeladen.
  • upgrade: führt alle notwendigen Schritte durch, um das Upgrade abzuschließen.

Standard-Rollenvariablen

Die folgenden Variablen sind standardmäßig konfiguriert, können jedoch bei Bedarf überschrieben werden:

  • auto_configure_pre_requisites: schaltet die automatische Konfiguration der Voraussetzungen ein (z.B. SCP-Server aktivieren) STANDARD = true

Berechnete Variablen

Die folgenden Variablen werden basierend auf den gegebenen Variablen und der laufenden Konfiguration berechnet:

  • running_os_is_compliant: gibt an, ob das laufende Betriebssystem bereits konform ist oder nicht (verglichen mit wanted_os_version)
  • boot_os_is_compliant: gibt an, ob das Boot-Betriebssystem bereits konform ist oder nicht (verglichen mit wanted_boot_version)
  • scp_is_enabled: gibt an, ob SCP aktiviert ist oder nicht

Upgrade-Prozess

Abhängig von den Tags kann der Upgrade-Prozess unterschiedlich sein. Standardmäßig wird ein vollständiges Upgrade durchgeführt.

Berichtmodus

Im Berichtmodus werden nur einige grundlegende Checks durchgeführt und ein Bericht generiert, der angibt, ob der Router aktualisiert werden sollte und ob genügend Speicherplatz vorhanden ist.

Verwendung:

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

Playbook-Aufgaben:

  • Verbindung herstellen und Fakten abrufen
  • Zusätzliche Fakten setzen, um den Status des Routers und des Upgrade-Prozesses zu bestimmen
  • Eine Debug-Nachricht für jeden Host anzeigen

Details:

  • Aufgaben:
  • oneos_upgrader : FAKTEN SAMMELN > hostname TAGS: [always]
  • oneos_upgrader : FAKTEN SAMMELN > Systemdetails abrufen TAGS: [always]
  • oneos_upgrader : FAKTEN SAMMELN > SSH-Details abrufen TAGS: [always]
  • oneos_upgrader : FAKTEN SETZEN > gewollte OS-Dateistatistiken abrufen TAGS: [always]
  • oneos_upgrader : FAKTEN SETZEN > gewollte_os_file_stats TAGS: [always]
  • oneos_upgrader : FAKTEN SETZEN > gewollte Boot-Dateistatistiken abrufen TAGS: [always]
  • oneos_upgrader : FAKTEN SETZEN > gewollte_boot_file_stats TAGS: [always]
  • oneos_upgrader : FAKTEN SETZEN > gewollte Wiederherstellungs-Dateistatistiken abrufen TAGS: [always]
  • oneos_upgrader : FAKTEN SETZEN > gewollte_recovery_file_stats TAGS: [always]
  • oneos_upgrader : FAKTEN SAMMELN > Speicher anzeigen TAGS: [always]
  • oneos_upgrader : FAKTEN SETZEN > fact_memory TAGS: [always]
  • oneos_upgrader : HAUPT > OS-spezifische gather_facts-Aufgaben ausführen TAGS: [report, staging, upgrade]
  • oneos_upgrader : FAKTEN SETZEN > berechnen, ob Upgrades erforderlich sind TAGS: [always]
  • oneos_upgrader : FAKTEN SETZEN > scp_is_enabled TAGS: [always]
  • oneos_upgrader : FAKTEN SETZEN > überprüfen, ob die Dateien auf der Festplatte oder in der Softwarebank vorhanden sind TAGS: [always]
  • oneos_upgrader : FAKTEN SETZEN > Anforderungen für Datei-Uploads TAGS: [always]
  • oneos_upgrader : FAKTEN SETZEN > recovery_file_exists_on_disk TAGS: [always]
  • oneos_upgrader : FAKTEN SETZEN > Berechnung des ausreichenden Speicherplatzes TAGS: [always]
  • oneos_upgrader : BERICHT > Hostdetails abrufen TAGS: [report, staging, upgrade]
  • DEBUG > Alle Variablen ausgeben TAGS: [always]
  • Datei nach /etc/file.conf vorgeben TAGS: [always]

Eine Vorlage ist vorgesehen, um einen Überblick über den CSV-Bericht zu generieren. Da dies als letzte Aufgabe im Play ausgeführt werden soll, muss es aus dem Playbook heraus aufgerufen werden.

  post_tasks:
    - name: BERICHT > in Datei speichern
      ansible.builtin.template:
        src: "roles/oneos_upgrader/templates/report_overview.j2"
        dest: report.txt
      tags:
        - always

Staging-Modus

Im Staging-Modus werden alle notwendigen Überprüfungen durchgeführt und alle Dateien hochgeladen, während das Upgrade vorbereitet wird, ohne Unterbrechungen zu verursachen.

Verwendung:

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

Playbook-Aufgaben:

  • Verbindung herstellen und Fakten abrufen
  • Zusätzliche Fakten setzen, um den Status des Routers und des Upgrade-Prozesses zu bestimmen
  • Wenn kein Speicherplatz auf dem Gerät vorhanden ist, werden alte Dateien entfernt
    • Speicherplatz neu berechnen
  • Wenn es vorgelagerte Konfigurationsjobs gibt, werden diese umgesetzt (z.B. SCP aktivieren)
  • Dateien hochladen, falls erforderlich
    • Wenn kein Platz für alle Dateien ist, werden zuerst die Boot-Dateien kopiert
  • Die Softwarebank oder die Boot-Datei wird vorbereitet, WENN es keine ausstehenden Boot-Image-Upgrades gibt

Wenn mehrere Upgrades erforderlich sind (BOOT + WIEDERHERSTELLUNG + OS), ist es nicht möglich, alles gleichzeitig zu stufen. Wenn genügend Speicherplatz für alle Dateien vorhanden ist, wird der Upload abgeschlossen. Das Laden der Datei kann nur für die erste Datei (z.B. BOOT) erfolgen, da hierfür ein Neustart erforderlich ist, um fortzufahren. Stufen-Upgrades sollten schrittweise durchgeführt werden oder die zusätzlichen Schritte werden während des Upgrade-Vorgangs ausgeführt.

Über das Projekt

Ansible role for upgrading Ekinops-OneAccess OneOS devices

Installieren
ansible-galaxy install mwallraf.oneos_upgrader
GitHub Repository
Lizenz
Unknown
Downloads
93
Besitzer