Utiliser Ansible pour restaurer les paramètres de configuration par défaut d’un équipement Junos
Utilisez les modules Ansible de Juniper Networks pour restaurer les paramètres de configuration par défaut d’un équipement Junos.
Comment utiliser Ansible pour restaurer les paramètres de configuration d’usine par défaut
Juniper Networks fournit un module Ansible que vous pouvez utiliser pour restaurer les paramètres de configuration par défaut d’un équipement Junos. Le tableau 1 présente le module.
| Ensemble de contenu |
Nom du module |
|---|---|
|
|
Pour utiliser le juniper.device.system module afin de restaurer les paramètres de configuration par défaut d’un périphérique, définissez l’argument du action module sur 'zeroize'. Une fois que vous avez restauré un périphérique aux paramètres de configuration par défaut, vous devez vous connecter via la console en tant que root pour accéder au périphérique.
L’argument action: "zeroize" permet au module d’exécuter la request system zeroize commande opérationnelle sur l’hôte cible. Cette commande supprime toutes les informations de configuration sur les moteurs de routage spécifiés, réinitialise toutes les valeurs de clé sur le périphérique, puis redémarre le périphérique et le réinitialise aux paramètres de configuration par défaut d’usine. L’opération de mise à zéro supprime tous les fichiers de données, y compris les fichiers de configuration et les fichiers journaux personnalisés, en dissociant les fichiers de leurs répertoires. Il supprime également tous les fichiers créés par l’utilisateur du système, y compris tous les mots de passe en texte brut, les secrets et les clés privées pour SSH, le chiffrement local, l’authentification locale, IPsec, RADIUS, TACACS+ et SNMP.
Pour plus d’informations, voir :
Le playbook Ansible suivant utilise le juniper.device.system module with action: "zeroize" pour réinitialiser tous les moteurs de routage sur chaque hôte du groupe d’inventaire aux paramètres de configuration d’usine par défaut.
---
- 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"
Par défaut, l’opération action: "zeroize" réinitialise tous les moteurs de routage d’un moteur de routage double ou d’une configuration Virtual Chassis aux paramètres de configuration d’usine par défaut. Vous pouvez également demander au module d’effectuer l’opération uniquement sur le moteur de routage auquel l’application est connectée.
Pour indiquer explicitement que l’opération doit être effectuée sur tous les moteurs de routage d’une configuration à double moteur de routage ou Virtual Chassis, incluez l’argument all_re: True , qui est l’argument par défaut.
tasks:
- name: Restore all Routing Engines to factory-default configuration
juniper.device.system:
action: "zeroize"
all_re: True
Pour effectuer l’action demandée uniquement sur le moteur de routage auquel l’application est connectée, incluez l’argument all_re: False .
tasks:
- name: Restore connected Routing Engine to factory-default configuration
juniper.device.system:
action: "zeroize"
all_re: False
Pour demander au module de nettoyer également toute la mémoire et le support, en plus de supprimer tous les fichiers de configuration et journaux, incluez l’argument media: True . L’inclusion de l’argument media: True équivaut à l’exécution de la request system zeroize media commande du mode opérationnel. L’option media nettoie tous les périphériques de stockage connectés au système, y compris les disques, les périphériques de mémoire flash, les clés USB amovibles, etc. La durée du processus de nettoyage dépend de la taille du média à effacer.
tasks:
- name: Restore device to the factory-default configuration and scrub media
juniper.device.system:
action: "zeroize"
media: True
Exemple : Utiliser Ansible pour restaurer les paramètres de configuration d’usine par défaut
Cet exemple montre comment utiliser le juniper.device.system module pour restaurer les paramètres de configuration par défaut d’un équipement Junos. Vous pouvez exécuter le module en utilisant n’importe quel type de connexion ; cependant, une fois que vous avez réinitialisé le périphérique, vous ne pouvez y accéder à nouveau en tant que root que via un serveur de console ou le port CONSOLE . Cet exemple se connecte aux périphériques via un serveur de console.
Exigences
Cet exemple utilise les composants matériels et logiciels suivants :
-
Serveur de gestion de la configuration exécutant Ansible 2.17 ou version ultérieure avec la
juniper.devicecollection installée -
Équipement Junos qui a accès au port de console via un serveur de console et dispose d’un compte d’utilisateur configuré avec les autorisations appropriées
-
Fichier d’inventaire Ansible existant avec les hôtes requis définis
Aperçu
Cet exemple crée un playbook Ansible qui utilise le juniper.device.system module pour réinitialiser chaque hôte du groupe d’inventaire à ses paramètres de configuration d’usine par défaut. La valeur de l’argument du action module définit l’opération à exécuter sur l’hôte. Le paramètre action sur "zeroize" exécute la request system zeroize commande sur chaque hôte. Cette commande supprime toutes les informations de configuration sur les moteurs de routage, réinitialise toutes les valeurs de clé sur le périphérique, puis redémarre le périphérique et le réinitialise aux paramètres de configuration par défaut d’usine.
La request system zeroize commande supprime tous les fichiers de données, y compris les fichiers de configuration et les fichiers journaux personnalisés, en dissociant les fichiers de leurs répertoires. La commande supprime également tous les fichiers créés par l’utilisateur du système, y compris tous les mots de passe en texte brut, les secrets et les clés privées pour SSH, le chiffrement local, l’authentification locale, IPsec, RADIUS, TACACS+ et SNMP.
Lorsque vous appelez le module à partir d’un playbook, nous vous recommandons d’utiliser une invite interactive pour confirmer que l’utilisateur a bien l’intention de réinitialiser les périphériques. Si un utilisateur exécute involontairement le playbook et qu’il n’y a pas de vérification, il peut par inadvertance rétablir les configurations d’usine par défaut des appareils et perturber tous les réseaux qui ont besoin de ces appareils. Par mesure de précaution, ce playbook utilise une invite interactive pour vérifier que l'utilisateur a l'intention de réinitialiser les appareils et exige que l'utilisateur tape manuellement 'yes' sur la ligne de commande afin d'exécuter le module. En cas d’échec de la Confirmation check tâche, le nœud de contrôle Ansible ignore les autres tâches en lecture pour cet appareil.
Le playbook exécute le juniper.device.system module à condition que la vérification de confirmation ait réussi. Les mode: "telnet" arguments et port: 23 indiquent au module d’être telnet sur le port 23 du serveur de consoles. Le password paramètre est défini sur la valeur de la password variable, que le playbook demande lors de l’exécution. Après le redémarrage, vous devez vous connecter via la console en tant que root afin d’accéder à l’appareil.
Configuration
Créer et exécuter le playbook Ansible
Procédure étape par étape
Pour créer un playbook qui utilise le juniper.device.system module pour restaurer les paramètres de configuration par défaut d’un équipement Junos :
Incluez le passe-partout pour le playbook et ce play, qui exécute les modules localement.
--- - name: Restore Junos devices to factory-default configuration settings hosts: dc1_console connection: local gather_facts: no
Créez une invite interactive pour éviter l’exécution accidentelle du module.
vars_prompt: - name: reset_confirmation prompt: > This playbook resets hosts to factory-default configurations! Enter 'yes' to continue. default: "no" private: noCréez une invite interactive pour la
passwordvariable, si les informations d’identification de l’utilisateur ne sont pas déjà transmises par d’autres moyens.- name: "device_password" prompt: "Device password" private: yesDéfinissez les paramètres de connexion.
vars: password: "{{ device_password }}" mode: "telnet" port: 23Créez la tâche qui confirme l'intention de l'utilisateur.
tasks: - name: Confirmation check fail: msg="Playbook run confirmation failed" when: reset_confirmation != "yes"Créez la tâche pour réinitialiser tous les moteurs de routage de l’appareil aux paramètres de configuration d’usine par défaut.
- name: Restore all Routing Engines to factory-default configuration juniper.device.system: action: "zeroize" timeout: 120 register: result(Facultatif) Créez une tâche pour imprimer la réponse.
- name: Print response ansible.builtin.debug: var: result
Résultats
Sur le nœud de contrôle Ansible, passez en revue le playbook terminé. Si le playbook n’affiche pas le code voulu, répétez les instructions de cet exemple pour corriger le playbook.
---
- 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
Exécuter le playbook
Pour exécuter le playbook :
-
Émettez la
ansible-playbookcommande sur le nœud de contrôle et indiquez le chemin d’accès au playbook ainsi que les options souhaitées.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
Vérification
Vérifier l’exécution du playbook
But
Vérifiez que les équipements Junos ont bien été réinitialisés à la configuration d’usine par défaut.
Action
Accédez à l’appareil via le port console en tant que root. L’appareil devrait maintenant être en état amnésique.
Amnesiac <ttyd0> login:
Signification
L’invite Amnesiac indique qu’un périphérique démarre à partir d’une configuration d’usine par défaut et qu’aucun nom d’hôte n’est configuré.