Verwenden von Ansible, um ein Junos-Gerät auf die werkseitigen Konfigurationseinstellungen zurückzusetzen
Verwenden Sie die Ansible-Module von Juniper Networks, um ein Junos-Gerät auf die werkseitigen Standardkonfigurationseinstellungen zurückzusetzen.
Wiederherstellen der werkseitigen Konfigurationseinstellungen mit Ansible
Juniper Networks stellt ein Ansible-Modul bereit, mit dem Sie ein Junos-Gerät auf die werkseitigen Standardkonfigurationseinstellungen zurücksetzen können. Tabelle 1 gibt einen Überblick über das Modul.
Inhaltsgruppe |
Modulname |
---|---|
|
Um das juniper.device.system
Modul zu verwenden, um ein Gerät auf die werkseitigen Standardkonfigurationseinstellungen zurückzusetzen, legen Sie das action
Argument des Moduls auf fest 'zeroize'
. Nachdem Sie ein Gerät auf die werkseitigen Standardkonfigurationseinstellungen zurückgesetzt haben, müssen Sie sich über die Konsole als root anmelden, um auf das Gerät zugreifen zu können.
Das action: "zeroize"
Argument bewirkt, dass das Modul den request system zeroize
Betriebsbefehl auf dem Zielhost ausführt. Mit diesem Befehl werden alle Konfigurationsinformationen auf den angegebenen Routingmodulen entfernt, alle Schlüsselwerte auf dem Gerät zurückgesetzt, und dann wird das Gerät neu gestartet und auf die werkseitigen Standardkonfigurationseinstellungen zurückgesetzt. Beim Nullungsvorgang werden alle Datendateien, einschließlich der benutzerdefinierten Konfigurations- und Protokolldateien, entfernt, indem die Verknüpfung der Dateien mit ihren Verzeichnissen aufgehoben wird. Außerdem werden alle vom Benutzer erstellten Dateien aus dem System entfernt, einschließlich aller Klartextkennwörter, Geheimnisse und privaten Schlüssel für SSH, lokale Verschlüsselung, lokale Authentifizierung, IPsec, RADIUS, TACACS+ und SNMP.
Weitere Informationen finden Sie unter:
Im folgenden Ansible-Playbook wird das juniper.device.system
Modul mit action: "zeroize"
verwendet, um alle Routing-Engines auf jedem Host in der Bestandslistengruppe auf die werkseitigen Standardkonfigurationseinstellungen zurückzusetzen.
--- - name: Restore Junos devices to factory-default configuration hosts: dc1 connection: local gather_facts: no tasks: - name: Restore all Routing Engines to factory-default configuration juniper.device.system: action: "zeroize"
Standardmäßig setzt der action: "zeroize"
Vorgang alle Routing-Engines in einem dualen Routing-Engine- oder Virtual Chassis-Setup auf die werkseitigen Standardkonfigurationseinstellungen zurück. Sie können das Modul auch anweisen, den Vorgang nur auf der Routing-Engine auszuführen, mit der die Anwendung verbunden ist.
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.
tasks: - name: Restore all Routing Engines to factory-default configuration juniper.device.system: action: "zeroize" all_re: True
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.
tasks: - name: Restore connected Routing Engine to factory-default configuration juniper.device.system: action: "zeroize" all_re: False
Um das Modul anzuweisen, neben dem Entfernen aller Konfigurations- und Protokolldateien auch den gesamten Speicher und die Medien zu bereinigen, fügen Sie das media: True
Argument ein. Das Einschließen des media: True
Arguments entspricht dem Ausführen des Betriebsmodusbefehls request system zeroize media
. Die media
Option bereinigt jedes Speichergerät, das an das System angeschlossen ist, einschließlich Festplatten, Flash-Speichergeräte, Wechseldatenträger usw. Die Dauer des Scrubbing-Vorgangs hängt von der Größe des zu löschenden Mediums ab.
tasks: - name: Restore device to the factory-default configuration and scrub media juniper.device.system: action: "zeroize" media: True
Beispiel: Verwenden von Ansible zum Wiederherstellen der werkseitigen Konfigurationseinstellungen
In diesem Beispiel wird veranschaulicht, wie das juniper.device.system
Modul verwendet wird, um ein Junos-Gerät auf die werkseitigen Standardkonfigurationseinstellungen zurückzusetzen. Sie können das Modul mit jeder Art von Verbindung ausführen. Sobald Sie das Gerät jedoch zurückgesetzt haben, können Sie nur noch über einen Konsolenserver oder den CONSOLE-Port als root darauf zugreifen. In diesem Beispiel wird über einen Konsolenserver eine Verbindung mit den Geräten hergestellt.
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, das über einen Konsolenserver Zugriff auf den Konsolenport hat und über ein Benutzerkonto mit entsprechenden Berechtigungen verfügt
-
Vorhandene Ansible-Bestandsdatei mit definierten erforderlichen Hosts
Überblick
In diesem Beispiel wird ein Ansible-Playbook erstellt, das das juniper.device.system
Modul verwendet, um jeden Host in der Bestandslistengruppe auf die werkseitigen Standardkonfigurationseinstellungen zurückzusetzen. Der Wert des Modularguments action
definiert den Vorgang, der auf dem Host ausgeführt werden soll. Einstellung, um den request system zeroize
Befehl auf jedem Host action
auszuführen"zeroize"
. Mit diesem Befehl werden alle Konfigurationsinformationen auf den Routingmodulen entfernt, alle Schlüsselwerte auf dem Gerät zurückgesetzt, und dann wird das Gerät neu gestartet und auf die werkseitigen Standardkonfigurationseinstellungen zurückgesetzt.
Mit dem request system zeroize
Befehl werden alle Datendateien, einschließlich der benutzerdefinierten Konfigurations- und Protokolldateien, entfernt, indem die Verknüpfung der Dateien mit ihren Verzeichnissen aufgehoben wird. Der Befehl entfernt auch alle vom Benutzer erstellten Dateien aus dem System, einschließlich aller Nur-Text-Kennwörter, Geheimnisse und privaten Schlüssel für SSH, lokale Verschlüsselung, lokale Authentifizierung, IPsec, RADIUS, TACACS+ und SNMP.
Wenn Sie das Modul aus einem Playbook aufrufen, wird empfohlen, eine interaktive Eingabeaufforderung zu verwenden, um zu bestätigen, dass der Benutzer beabsichtigt, die Geräte zurückzusetzen. Wenn ein Benutzer das Playbook versehentlich ausführt und keine Überprüfung erfolgt, kann es dazu führen, dass die Geräte versehentlich auf die werkseitigen Standardkonfigurationen zurückgesetzt werden und Netzwerke, die diese Geräte benötigen, unterbrochen werden. Als Vorsichtsmaßnahme verwendet dieses Playbook eine interaktive Eingabeaufforderung, um zu überprüfen, ob der Benutzer beabsichtigt, die Geräte zurückzusetzen, 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.
Das Playbook führt das juniper.device.system
Modul aus, sofern die Bestätigungsprüfung erfolgreich war. port: 23
Die mode: "telnet"
and-Argumente weisen das Modul an, per Telnet an Port 23 des Konsolenservers zu senden. Der password
Parameter wird auf den Wert der password
Variablen festgelegt, den das Playbook während der Ausführung abfragt. Nach dem Neustart müssen Sie sich über die Konsole als root anmelden, um auf das Gerät zugreifen zu können.
Konfiguration
Erstellen und Ausführen des Ansible-Playbooks
Schritt-für-Schritt-Anleitung
So erstellen Sie ein Playbook, das das juniper.device.system
Modul verwendet, um ein Junos-Gerät auf die werkseitigen Standardkonfigurationseinstellungen zurückzusetzen:
Fügen Sie die Textbausteine für das Playbook und dieses Stück hinzu, das die Module lokal ausführt.
--- - name: Restore Junos devices to factory-default configuration settings hosts: dc1_console connection: local gather_facts: no
Erstellen Sie eine interaktive Eingabeaufforderung, um die versehentliche Ausführung des Moduls zu verhindern.
vars_prompt: - name: reset_confirmation prompt: > This playbook resets hosts to factory-default configurations! Enter 'yes' to continue. default: "no" private: no
Erstellen Sie eine interaktive Eingabeaufforderung für die Variable
password
, falls die Benutzeranmeldeinformationen nicht bereits auf andere Weise übergeben wurden.- name: "device_password" prompt: "Device password" private: yes
Definieren Sie die Verbindungsparameter.
vars: password: "{{ device_password }}" mode: "telnet" port: 23
Erstellen Sie die Aufgabe, die die Absicht des Benutzers bestätigt.
tasks: - name: Confirmation check fail: msg="Playbook run confirmation failed" when: reset_confirmation != "yes"
Erstellen Sie die Aufgabe, um alle Routing-Engines auf dem Gerät auf die werkseitigen Standardkonfigurationseinstellungen zurückzusetzen.
- name: Restore all Routing Engines to factory-default configuration juniper.device.system: action: "zeroize" timeout: 120 register: result
(Optional) Erstellen Sie eine Aufgabe, um die Antwort zu drucken.
- name: Print response ansible.builtin.debug: var: result
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.
--- - name: Restore Junos devices to factory-default configuration settings hosts: dc1_console connection: local gather_facts: no vars_prompt: - name: reset_confirmation prompt: > This playbook resets hosts to factory-default configurations! Enter 'yes' to continue. default: "no" private: no - name: "device_password" prompt: "Device password" private: yes vars: password: "{{ device_password }}" mode: "telnet" port: 23 tasks: - name: Confirmation check fail: msg="Playbook run confirmation failed" when: reset_confirmation != "yes" - name: Restore all Routing Engines to factory-default configuration juniper.device.system: action: "zeroize" timeout: 120 register: result - name: Print response ansible.builtin.debug: var: result
Ausführen des Playbooks
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.root@ansible-cn:~/ansible# ansible-playbook ansible-pb-junos-zeroize.yaml This playbook resets hosts to factory-default configurations! Enter 'yes' to continue. [no]: yes Device password: PLAY [Restore Junos devices to factory-default configuration settings] TASK [Confirmation check] ********************************************** skipping: [dc1a-console.example.net] TASK [Restore all Routing Engines to factory-default configuration] **** changed: [dc1a-console.example.net] TASK [Print response] ************************************************** ok: [dc1a-console.example.net] => { "result": { "action": "zeroize", "all_re": true, "changed": true, "failed": false, "media": false, "msg": "zeroize successfully initiated.", "other_re": false, "reboot": false "vmhost": false } } PLAY RECAP ************************************************************ dc1a-console.example.net : ok=2 changed=1 unreachable=0 failed=0 skipped=1 rescued=0 ignored=0
Verifizierung
Überprüfen der Playbookausführung
Zweck
Vergewissern Sie sich, dass die Junos-Geräte erfolgreich auf die werkseitige Standardkonfiguration zurückgesetzt wurden.
Aktion
Greifen Sie über den Konsolenport als root auf das Gerät zu. Das Gerät sollte sich nun im amnesiekranken Zustand befinden.
Amnesiac <ttyd0> login:
Bedeutung
Die Amnesiac
Eingabeaufforderung weist auf ein Gerät hin, das von einer werkseitigen Standardkonfiguration gestartet wird und für das kein Hostname konfiguriert ist.