Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Verwenden von Ansible zum Anhalten, Neustarten oder Herunterfahren von Junos-Geräten

Verwenden Sie die Ansible-Module von Juniper Networks, um Junos-Geräte anzuhalten, neu zu starten oder herunterzufahren.

Ansible zum Anhalten, Neustarten oder Herunterfahren von Geräten verwenden

Juniper Networks stellt ein Ansible-Modul bereit, mit dem Sie ein Junos-Gerät anhalten, neu starten oder herunterfahren können. Tabelle 1 gibt einen Überblick über das verfügbare Modul.

Tabelle 1: Modul zum Anhalten, Neustarten oder Herunterfahren von Geräten

Inhaltsgruppe

Modulname

juniper.device Sammlung

system

Sie können das juniper.device.system Modul verwenden, um die folgenden Vorgänge auf Junos-Geräten anzufordern. Standardmäßig führt das Modul den angeforderten Vorgang sofort aus und führt den Vorgang auf allen Routing-Engines in einem Dual-Routing-Engine- oder Virtual Chassis-Setup aus.

  • Ein sofortiger Stopp, Neustart oder Herunterfahren des Systems

  • Ein Anhalten-, Neustart- oder Herunterfahrvorgang mit optionaler Verzögerung

  • Ein Anhalten, Neustarten oder Herunterfahren, der zu einem bestimmten Datum und einer bestimmten Uhrzeit geplant ist

Für das system Modul ist ein Argument erforderlich, das die Aktion definiert, actiondie das Modul ausführt. Tabelle 2 definiert den Parameterwert, der action zum Anhalten, Neustarten oder Herunterfahren eines Geräts erforderlich ist, und enthält eine kurze Beschreibung jeder Aktion sowie den entsprechenden CLI-Befehl. Weitere Informationen zu dieser "zeroize" Aktion finden Sie unter Verwenden von Ansible zum Wiederherstellen der werkseitigen Konfigurationseinstellungen für ein Junos-Gerät.

Tabelle 2: Aktionsparameterwerte

Wert des action Parameters

Beschreibung

Entsprechender CLI-Befehl

"halt"

Fahren Sie die Junos OS-Software ordnungsgemäß herunter, aber behalten Sie die Systemleistung bei

request system halt

"reboot"

Starten Sie die Junos OS-Software neu.

request system reboot

"shutdown"

Fahren Sie die Junos OS-Software ordnungsgemäß herunter und schalten Sie die Routing-Engines aus

request system power-off

Im folgenden Ansible-Playbook wird das system Modul mit action: "reboot" verwendet, um alle Routing-Engines auf den Hosts in der angegebenen Bestandslistengruppe sofort neu zu starten.

Ausführen eines Anhaltens, Neustarts oder Herunterfahrens mit Verzögerung oder zu einem bestimmten Zeitpunkt

Sie können den Vorgang zum Anhalten, Neustarten oder Herunterfahren um eine bestimmte Anzahl von Minuten verzögern. Um eine Verzögerung hinzuzufügen, legen Sie den optionalen in_min Parameter auf die Anzahl der Minuten fest, die das System warten soll, bevor der Vorgang ausgeführt wird. Die folgende Aufgabe fordert einen Neustart aller Routingmodule in 30 Minuten an:

Sie können den Vorgang zum Anhalten, Neustarten oder Herunterfahren auch zu einem bestimmten Zeitpunkt planen. Um eine Uhrzeit zu planen, schließen Sie den Parameter ein, der at eine Zeichenfolge annimmt, die auf eine der folgenden Arten angegeben werden kann:

  • now– Sofortiges Anhalten, Neustarten oder Herunterfahren der Software.

  • +minutes– Anzahl der Minuten ab dem Zeitpunkt, an dem die angeforderte Aktion eingeleitet wird.

  • yymmddhhmm– Absolute Zeit, zu der die angeforderte Aktion ausgelöst werden soll, angegeben als Jahr, Monat, Tag, Stunde und Minute.

  • hh:mm: Absolute Zeit am aktuellen Tag, an dem die angeforderte Aktion eingeleitet werden soll, angegeben in 24-Stunden-Zeit.

Der folgende Task plant das Herunterfahren des Systems aller Routing-Engines um 22:30 Uhr am aktuellen Tag:

Angeben der Ziel-Routing-Engine

Standardmäßig führt das system Modul den angeforderten Vorgang auf allen Routing-Engines in einem Dual-Routing-Engine- oder Virtual Chassis-Setup aus. Sie können das Modul auch anweisen, den Vorgang nur auf der Routing-Engine auszuführen, mit der die Anwendung verbunden ist, oder den Vorgang auf allen Routing-Engines auszuführen, mit Ausnahme derjenigen, mit der die Anwendung verbunden ist.

Um die Routing-Engines anzugeben, verwenden Sie die all_re Parameter undother_re. Tabelle 3 fasst die und-Werte other_re zusammen, die all_re zum Ausführen des angeforderten Vorgangs auf bestimmten Routing-Engines erforderlich sind.

Tabelle 3: Parameter zum Angeben von Routingmodulen

Betroffene Routing-Engines

all_re Parameter

other_re Parameter

Alle Routing-Engines (Standard)

Weglassen oder auf true

Nur die verbundene Routing-Engine

Legen Sie diese Einstellung fest auf false

Alle Routing-Engines mit Ausnahme der Routing-Engine, mit der die Anwendung verbunden ist

Legen Sie diese Einstellung fest auf true

Wenn Sie explizit angeben möchten, dass der Vorgang auf allen Routing-Engines in einem Dual-Routing-Engine- oder Virtual Chassis-Setup ausgeführt werden soll, fügen Sie das all_re: true Argument ein, das die Standardeinstellung ist.

Wenn Sie die angeforderte Aktion nur für die Routing-Engine ausführen möchten, mit der die Anwendung verbunden ist, schließen Sie das all_re: false Argument ein.

Um die angeforderte Aktion für alle Routing-Engines im System mit Ausnahme der Routing-Engine auszuführen, mit der die Anwendung verbunden ist, fügen Sie das other_re: true Argument ein.

Neustart oder Herunterfahren eines VM-Hosts

Auf Geräten, die über Routing-Engines mit VM-Host-Unterstützung verfügen, läuft Junos OS als virtuelle Maschine (VM) über einen Linux-basierten Host (VM-Host). Das system Modul unterstützt das Argument, mit dem vmhost Sie einen VM-Host neu starten oder herunterfahren können.

Wenn Sie die action: "reboot" vmhost: true Argumente und einschließen, startet das System das Hostbetriebssystem und das kompatible Junos OS auf allen Routing-Engines neu, indem es den <request-vmhost-reboot> RPC-Befehl ausführt, der dem Befehl für den request vmhost reboot Betriebsmodus entspricht.

Wenn Sie die action: "shutdown" vmhost: true Argumente und einschließen, fährt das System das Hostbetriebssystem und das kompatible Junos OS auf allen Routing-Engines herunter, indem es den <request-vmhost-poweroff> RPC ausführt, der dem request vmhost power-off Befehl "Betriebsmodus" entspricht.

Das folgende Playbook führt einen Neustart des VM-Hosts durch, bei dem sowohl das Hostbetriebssystem als auch das Junos OS des Gasts neu gestartet werden.

Beispiel: Verwenden von Ansible zum Neustarten von Junos-Geräten

Mit dem juniper.device.system Modul können Sie ein Junos-Gerät anhalten, neu starten oder herunterfahren. In diesem Beispiel wird das system Modul verwendet, um ein Junos-Gerät neu zu starten.

Anforderungen

In diesem Beispiel werden die folgenden Hardware- und Softwarekomponenten verwendet:

  • Configuration Management Server mit Ansible 2.17 oder höher und auf dem die juniper.device Sammlung installiert ist

  • Junos-Gerät mit aktiviertem NETCONF und einem Benutzerkonto mit entsprechenden Berechtigungen

  • Öffentliches/privates SSH-Schlüsselpaar, das für den entsprechenden Benutzer auf dem Ansible-Kontrollknoten und dem Junos-Gerät konfiguriert ist

  • Vorhandene Ansible-Bestandsdatei mit definierten erforderlichen Hosts

Überblick

Dieses Beispiel zeigt ein Ansible-Playbook, das das juniper.device.system Modul verwendet, um ein Junos-Gerät neu zu starten. Der Wert des Modularguments action definiert den Vorgang, der auf dem Host ausgeführt werden soll.

Wenn Sie das Modul über ein Playbook aufrufen, wird empfohlen, eine interaktive Eingabeaufforderung zu verwenden, um zu bestätigen, dass der Benutzer beabsichtigt, die angegebenen Geräte neu zu starten. Wenn ein Benutzer das Playbook versehentlich ausführt und keine Überprüfung erfolgt, kann sich dies negativ auf alle Netzwerke auswirken, die die betroffenen Geräte benötigen. Als Vorsichtsmaßnahme verwendet dieses Playbook eine interaktive Eingabeaufforderung, um zu überprüfen, ob der Benutzer beabsichtigt, die Geräte neu zu starten, und erfordert, dass der Benutzer manuell "yes" in die Befehlszeile eingibt, um das Modul auszuführen. Wenn die Confirmation check Aufgabe fehlschlägt, überspringt der Ansible-Steuerungsknoten die anderen Aufgaben in der Wiedergabe für dieses Gerät.

Dieses Playbook enthält die Check NETCONF connectivity Aufgabe, die das ansible.builtin.wait_for Modul nutzt, um zu versuchen, eine NETCONF-Sitzung mit dem Junos-Gerät über den Standard-NETCONF-Port 830 einzurichten. Wenn der Steuerungsknoten während der Ausführung des Playbooks keine NETCONF-Sitzung mit dem Gerät einrichten kann, überspringt er die verbleibenden Aufgaben in der Wiedergabe für dieses Gerät.

Die Aufgabe, die das Gerät neu startet, führt das system Modul aus, vorausgesetzt, die Bestätigung und die NETCONF-Prüfungen waren erfolgreich. Das action Argument wird auf den Wert "reboot"gesetzt, der angibt, dass die Software neu gestartet werden soll. Das in_min: 2 Argument weist das Modul an, die angegebene Anzahl von Minuten abzuwarten, bevor der Neustartbefehl ausgeführt wird. Dies gibt allen Benutzern Zeit, sich vom System abzumelden.

Die Aufgabe speichert das Modulergebnis in der result Variablen und benachrichtigt zwei Handler. Der pause_for_reboot Handler wartet eine bestimmte Zeitspanne, nachdem der Neustartvorgang initiiert wurde, um zu verhindern, dass der wait_reboot Handler fälschlicherweise erkennt, dass das Gerät online ist, bevor der Neustart stattfindet. Der wait_reboot Handler versucht dann, eine Sitzung mit dem Gerät einzurichten, um zu überprüfen, ob das Gerät nach dem Neustart wieder online ist. Die wait_time_after_reboot Variable definiert die Zeitspanne, in der der Steuerungsknoten versucht, sich erneut mit dem Gerät zu verbinden.

Konfiguration

Erstellen und Ausführen des Ansible-Playbooks

Schritt-für-Schritt-Anleitung

So erstellen Sie ein Playbook, das das system Modul zum Neustart eines Junos-Geräts verwendet:

  1. Fügen Sie die Textbausteine für das Playbook und dieses Stück hinzu, das die Module lokal ausführt.

  2. Definieren oder importieren Sie alle erforderlichen Variablen.

  3. Erstellen Sie eine interaktive Eingabeaufforderung, um zu verhindern, dass Benutzer das Modul versehentlich ausführen, ohne vorher die Auswirkungen zu verstehen.

  4. Erstellen Sie die Aufgabe, die die Absicht des Benutzers bestätigt.

  5. (Optional) Erstellen Sie eine Aufgabe, um die NETCONF-Konnektivität zu überprüfen.

  6. Erstellen Sie die Aufgabe, das Gerät nach einer bestimmten Anzahl von Minuten neu zu starten, und benachrichtigen Sie dann die Handler.

  7. (Optional) Erstellen Sie eine Aufgabe, um die Antwort zu drucken.

  8. Erstellen Sie den Handler, der nach dem Neustart angehalten wird, und den Handler, der überprüft, ob das Gerät nach dem Neustart wieder online geschaltet wird.

    Die Handlernamen sollten mit denen identisch sein, auf die im Neustarttask verwiesen wird.

Befund

Überprüfen Sie auf dem Ansible-Steuerungsknoten das fertige Playbook. Wenn das Playbook den beabsichtigten Code nicht anzeigt, wiederholen Sie die Anweisungen in diesem Beispiel, um das Playbook zu korrigieren.

Ausführen des Playbooks

Verfahren

Schritt-für-Schritt-Anleitung

So führen Sie das Playbook aus:

  • Geben Sie den ansible-playbook Befehl auf dem Steuerungsknoten ein, und geben Sie den Playbookpfad und alle gewünschten Optionen an.

Verifizierung

Überprüfen Sie den Neustart.

Zweck

Vergewissern Sie sich, dass das Junos-Gerät erfolgreich neu gestartet wurde.

Aktion

Überprüfen Sie beim Ausführen des Playbooks die Ausgabe der wait_reboot Aufgabe für jedes Gerät.

Bedeutung

Das wait_reboot Ergebnis gibt an, ob der Steuerungsknoten nach dem Neustart erfolgreich eine Sitzung mit dem Gerät hergestellt hat. Wenn das Ergebnis auf Erfolg hinweist, ist das Gerät online.

Tabellarischer Änderungsverlauf

Die Unterstützung der Funktion hängt von der Plattform und der Version ab, die Sie benutzen. Verwenden Sie Funktionen entdecken , um festzustellen, ob eine Funktion auf Ihrer Plattform unterstützt wird.

Loslassen
Beschreibung
1.0.3
Ab der juniper.device Sammlungsversion 1.0.3 unterstützt das system Modul das Herunterfahren eines VM-Hosts.