Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Utiliser Ansible pour arrêter, redémarrer ou arrêter des équipements Junos

Utilisez les modules Ansible de Juniper Networks pour arrêter, redémarrer ou arrêter les équipements Junos.

Utiliser Ansible pour arrêter, redémarrer ou éteindre des appareils

Juniper Networks fournit un module Ansible qui vous permet d’arrêter, de redémarrer ou d’éteindre un équipement Junos. Le tableau 1 présente les modules disponibles.

Tableau 1 : module permettant d’arrêter, de redémarrer ou d’arrêter des périphériques

Ensemble de contenu

Nom du module

juniper.device collection

system

Vous pouvez utiliser le juniper.device.system module pour demander les opérations suivantes sur les équipements Junos. Par défaut, le module exécute immédiatement l’opération demandée et effectue l’opération sur tous les moteurs de routage dans une configuration à double moteur de routage ou Virtual Chassis.

  • Un arrêt, un redémarrage ou un arrêt immédiat du système

  • Une opération d’arrêt, de redémarrage ou d’arrêt avec un délai facultatif

  • Une opération d’arrêt, de redémarrage ou d’arrêt planifiée à une date et une heure précises

Le system module requiert un argument, action, qui définit l’action effectuée par le module. Le Tableau 2 définit la valeur de paramètre action requise pour arrêter, redémarrer ou arrêter un périphérique et fournit une brève description de chaque action ainsi que la commande CLI correspondante. Pour plus d’informations sur l’action, reportez-vous à la section Utiliser Ansible pour restaurer les paramètres de configuration d’usine par défaut d’un équipement Junos."zeroize"

Tableau 2 : valeurs des paramètres d’action

Valeur du action paramètre

Description

Commande CLI équivalente

"halt"

Arrêtez le logiciel Junos OS sans problème, mais maintenez l’alimentation du système

request system halt

"reboot"

Redémarrez le logiciel Junos OS

request system reboot

"shutdown"

Arrêtez correctement le logiciel Junos OS et mettez les moteurs de routage hors tension

request system power-off

Le playbook Ansible suivant utilise le system module with action: "reboot" pour redémarrer immédiatement tous les moteurs de routage sur les hôtes du groupe d’inventaire spécifié.

Comment effectuer un arrêt, un redémarrage ou un arrêt avec un délai ou à une heure spécifiée

Vous pouvez retarder l’interruption, le redémarrage ou l’arrêt de l’opération d’un nombre de minutes spécifié. Pour ajouter un délai, définissez le paramètre facultatif in_min sur le nombre de minutes que le système doit attendre avant d’exécuter l’opération. La tâche suivante demande un redémarrage de tous les moteurs de routage dans les 30 minutes :

Vous pouvez également planifier l’opération d’arrêt, de redémarrage ou d’arrêt à une heure précise. Pour planifier une heure, incluez le at paramètre, qui prend une chaîne qui peut être spécifiée de l’une des manières suivantes :

  • now: lancez immédiatement l’arrêt, le redémarrage ou l’arrêt du logiciel.

  • +minutes: nombre de minutes à partir de ce moment où l’action demandée est lancée.

  • yymmddhhmm: heure absolue à laquelle lancer l’action demandée, spécifiée comme année, mois, jour, heure et minute.

  • hh:mm: heure absolue du jour en cours à laquelle lancer l’action demandée, spécifiée dans un délai de 24 heures.

La tâche suivante planifie l’arrêt du système de tous les moteurs de routage à 22 h 30 le jour en cours :

Comment spécifier le moteur de routage cible

Par défaut, le system module effectue l’opération demandée sur tous les moteurs de routage d’une configuration à double moteur de routage ou Virtual Chassis. Vous pouvez également demander au module d’effectuer l’opération uniquement sur le moteur de routage auquel l’application est connectée ou d’effectuer l’opération sur tous les moteurs de routage à l’exception de celui auquel l’application est connectée.

Pour spécifier les moteurs de routage, utilisez les all_re paramètres and other_re . Le Tableau 3 récapitule les all_re valeurs et other_re requises pour exécuter l’opération demandée sur des moteurs de routage spécifiques.

Tableau 3 : paramètres de spécification des moteurs de routage

Moteurs de routage concernés

all_re Paramètre

other_re Paramètre

Tous les moteurs de routage (par défaut)

Omettre ou définir sur true

Seul le moteur de routage connecté

Se mettre à false

Tous les moteurs de routage, à l’exception du moteur de routage auquel l’application est connectée

Se mettre à true

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.

Pour effectuer l’action demandée uniquement sur le moteur de routage auquel l’application est connectée, incluez l’argument all_re: false .

Pour effectuer l’action demandée sur tous les moteurs de routage du système, à l’exception du moteur de routage auquel l’application est connectée, incluez l’argument other_re: true .

Comment redémarrer ou arrêter un hôte de machine virtuelle

Sur les équipements dotés de moteurs de routage avec prise en charge d’hôtes de machines virtuelles, Junos OS s’exécute en tant que machine virtuelle (VM) sur un hôte basé sur Linux (hôte de machines virtuelles). Le system module prend en charge l’argument vmhost , qui vous permet de redémarrer ou d’arrêter un hôte de machine virtuelle.

Lorsque vous incluez les action: "reboot" arguments et vmhost: true , le système redémarre le système d’exploitation hôte et les Junos OS compatibles sur tous les moteurs de routage en exécutant le <request-vmhost-reboot> RPC, qui correspond à la request vmhost reboot commande du mode opérationnel.

De même, lorsque vous incluez les action: "shutdown" arguments et vmhost: true , le système arrête le système d’exploitation hôte et le système d’exploitation Junos OS compatible sur tous les moteurs de routage en exécutant le <request-vmhost-poweroff> RPC, qui correspond à la request vmhost power-off commande du mode opérationnel.

Le playbook suivant effectue un redémarrage de l’hôte de machine virtuelle, qui redémarre à la fois le système d’exploitation hôte et le système d’exploitation Junos OS invité.

Exemple : Utiliser Ansible pour redémarrer des équipements Junos

Le juniper.device.system module vous permet d’arrêter, de redémarrer ou d’arrêter un équipement Junos. Cet exemple utilise le system module pour redémarrer un équipement Junos.

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.device collection installée

  • Équipement Junos sur lequel NETCONF est activé et compte d’utilisateur configuré avec les autorisations appropriées

  • Paire de clés publique/privée SSH configurée pour l’utilisateur approprié sur le nœud de contrôle Ansible et l’équipement Junos

  • Fichier d’inventaire Ansible existant avec les hôtes requis définis

Aperçu

Cet exemple présente un playbook Ansible qui utilise le juniper.device.system module pour redémarrer un équipement Junos. La valeur de l’argument du action module définit l’opération à exécuter sur l’hôte.

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 redémarrer les périphériques spécifiés. Si un utilisateur exécute involontairement le playbook et qu’aucune vérification n’est effectuée, cela peut avoir des répercussions négatives sur tous les réseaux qui ont besoin des appareils concernés. Par mesure de précaution, ce playbook utilise une invite interactive pour vérifier que l'utilisateur a l'intention de redémarrer les périphériques et exige que l'utilisateur tape manuellement 'yes' sur la ligne de commande pour 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.

Ce playbook inclut la Check NETCONF connectivity tâche qui utilise le ansible.builtin.wait_for module pour tenter d’établir une session NETCONF avec le périphérique Junos à l’aide du port NETCONF 830 par défaut. Si le nœud de contrôle ne parvient pas à établir une session NETCONF avec le périphérique pendant l’exécution du playbook, il ignore les tâches restantes dans le jeu pour ce périphérique.

La tâche qui redémarre l’appareil exécute le system module à condition que les vérifications de confirmation et NETCONF aient réussi. L’argument action est défini sur la valeur "reboot", qui indique que le logiciel doit être redémarré. L’argument in_min: 2 indique au module d’attendre le nombre de minutes spécifié avant d’exécuter la commande reboot. Les utilisateurs ont ainsi le temps de se déconnecter du système.

La tâche stocke le résultat du module dans la result variable et notifie deux gestionnaires. Le pause_for_reboot gestionnaire attend un certain temps après le lancement de l’opération de redémarrage pour éviter qu’il wait_reboot ne détecte à tort que le périphérique est en ligne avant que le redémarrage n’ait lieu. Le wait_reboot gestionnaire tente ensuite d’établir une session avec l’appareil pour vérifier que l’appareil se reconnecte après le redémarrage. La wait_time_after_reboot variable définit la durée pendant laquelle le noeud de contrôle tente de se reconnecter à l’équipement.

Configuration

Créer et exécuter le playbook Ansible

Procédure étape par étape

Pour créer un playbook qui utilise le system module pour redémarrer un équipement Junos :

  1. Incluez le passe-partout pour le playbook et ce play, qui exécute les modules localement.

  2. Définissez ou importez les variables nécessaires.

  3. Créez une invite interactive pour empêcher les utilisateurs d’exécuter accidentellement le module sans en comprendre au préalable les implications.

  4. Créez la tâche qui confirme l’intention de l’utilisateur.

  5. (Facultatif) Créez une tâche pour vérifier la connectivité NETCONF.

  6. Créez la tâche pour redémarrer l’appareil après un nombre spécifié de minutes, puis informez les gestionnaires.

  7. (Facultatif) Créez une tâche pour imprimer la réponse.

  8. Créez le gestionnaire qui s’interrompt après le redémarrage et le gestionnaire qui vérifie que l’appareil se reconnecte après le redémarrage.

    Les noms des gestionnaires doivent être les mêmes que ceux référencés dans la tâche de redémarrage.

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.

Exécuter le playbook

Procédure

Procédure étape par étape

Pour exécuter le playbook :

  • Émettez la ansible-playbook commande sur le nœud de contrôle et indiquez le chemin d’accès au playbook ainsi que les options souhaitées.

Vérification

Vérifier le redémarrage

But

Vérifiez que le périphérique Junos a bien redémarré.

Action

Lorsque vous exécutez le playbook, examinez le résultat de la wait_reboot tâche pour chaque appareil.

Signification

Le wait_reboot résultat indique si le nœud de contrôle a bien établi une session avec le périphérique après son redémarrage. Si le résultat indique la réussite, cela signifie que l’appareil est en ligne.

Tableau de l’historique des modifications

La prise en charge des fonctionnalités est déterminée par la plateforme et la version que vous utilisez. Utilisez l’explorateur de fonctionnalités pour déterminer si une fonctionnalité est prise en charge sur votre plateforme.

Libérer
Description
1.0.3
À partir de juniper.device la version 1.0.3 de la collection, le module prend en charge l’arrêt system d’un hôte de machine virtuelle.