Aidez-nous à améliorer votre expérience.

Faites-nous part de vos commentaires.

Avez-vous deux minutes à nous accorder pour une petite enquête ?

header-navigation
keyboard_arrow_up
close
keyboard_arrow_left
Guide du développeur Ansible pour Junos OS
Table of Contents Expand all
list Table of Contents

Cette traduction automatique vous a-t-elle été utile?

starstarstarstarstar
Go to English page
AVERTISSEMENT :

Cette page va être traduite à l'aide d'un logiciel tiers de traduction automatique. Malgré les efforts raisonnables déployés pour fournir une traduction de qualité, Juniper Networks n'est pas en mesure de garantir l'exactitude des informations qu'elle contient. Pour toute question s'y rapportant, veuillez vous référer à la version anglaise de la page.

Authentifier les utilisateurs exécutant des modules Ansible sur des équipements Junos

date_range 14-Nov-24

Vue d’ensemble de l’authentification

Juniper Networks fournit des modules Ansible que vous pouvez utiliser pour gérer les équipements Junos. Les modules Juniper Networks sont distribués via la juniper.device collection, qui est hébergée sur Ansible Galaxy.

Les modules Juniper Networks vous permettent de vous connecter directement aux équipements Junos et de les gérer via SSH, telnet ou une connexion de console série. Les modules prennent également en charge la connexion à l’appareil via une connexion SSH ou telnet à un serveur de console connecté au port de CONSOLE l’appareil. L’équipement distant doit pouvoir authentifier l’utilisateur à l’aide d’un mot de passe ou d’autres mécanismes d’authentification SSH standard, en fonction du protocole de connexion.

Lorsque vous utilisez Ansible pour gérer des équipements Junos, le moyen le plus pratique d’y accéder est de configurer les clés SSH. Les clés SSH permettent à l’équipement distant d’identifier les utilisateurs de confiance. Vous pouvez également fournir un nom d’utilisateur et un mot de passe lorsque vous exécutez des modules et des playbooks.

Pour les connexions SSH, les modules Juniper Networks tentent d’abord l’authentification SSH par clé publique, puis l’authentification par mot de passe. Lorsque des clés SSH sont utilisées, le mot de passe fourni est utilisé comme phrase secrète pour déverrouiller la clé SSH privée. Lorsque l’authentification par mot de passe est utilisée, le mot de passe fourni est utilisé comme mot de passe de l’appareil. Si l’authentification par clé publique SSH est utilisée et que la clé privée SSH a une phrase secrète vide, un mot de passe n’est pas requis. Toutefois, nous vous déconseillons d’utiliser des clés privées SSH avec des phrases de passe vides. Pour récupérer un mot de passe pour l’authentification par mot de passe ou des clés SSH protégées par mot de passe, vous pouvez demander le mot de passe à partir du playbook ou de la ligne de commande, ou vous pouvez créer un fichier de données chiffré dans le coffre-fort qui stocke le mot de passe de manière sécurisée.

Vous pouvez spécifier les paramètres de connexion et d’authentification des modules Juniper Networks comme suit. Si vous ne définissez pas explicitement les valeurs, des valeurs par défaut sont utilisées dans certains cas, comme décrit dans Présentation des valeurs par défaut des modules Juniper Networks. Si vous définissez la valeur d’un paramètre à plusieurs endroits, Ansible sélectionne la valeur en fonction de la priorité des variables, comme indiqué dans Présentation de la priorité des variables dans la documentation officielle d’Ansible.

  • Variables Ansible : vous pouvez spécifier les valeurs des paramètres de connexion et d’authentification à l’aide de variables Ansible normales, par exemple, des variables définies dans des fichiers d’inventaire ou de coffre-fort, dans des variables d’hôte ou de groupe, ou à l’aide d’options de ligne de commande.

  • Fichier de configuration du client SSH : pour les connexions SSH, les modules Juniper Networks interrogent automatiquement le fichier de configuration SSH par défaut à l’adresse ~/.ssh/config, s’il en existe un. Vous pouvez également inclure la ssh_config possibilité de spécifier un autre fichier de configuration. Les modules utilisent tous les paramètres pertinents dans le fichier de configuration SSH pour la connexion donnée, à moins que vous ne définissiez explicitement des variables qui remplacent le paramètre.

  • Arguments de module : les juniper.device modules prennent en charge la spécification d’options de connexion et d’authentification pour les connexions locales (connection: local) en tant qu’arguments de module de niveau supérieur.

  • vars: section : les juniper.device modules prennent en charge la spécification des options de connexion et d’authentification pour les connexions locales et persistantes vars: dans la section d’une pièce, qui est décrite dans Comment définir les paramètres d’authentification dans la section vars : Local and Persistent Connections.

Ce document traite des différents aspects de l’authentification lors de l’utilisation des modules Juniper Networks pour gérer les équipements Junos.

Comprendre les valeurs par défaut des modules Juniper Networks

Vous pouvez définir explicitement les paramètres de connexion et d’authentification des modules qui gèrent les équipements Junos. Si vous ne définissez pas de paramètre, le module utilise une valeur par défaut dans certains cas. Le Tableau 1 présente les valeurs par défaut et la priorité des variables pour les paramètres de connexion communs aux modules de la juniper.device collection. Pour plus d’informations sur les arguments acceptés pour les modules individuels, consultez la documentation de référence de l’API pour ce module.

Tableau 1 : valeurs par défaut et priorité des variables pour les paramètres de connexion

Nom du paramètre

Alias de paramètres

Description

Valeur par défaut et priorité des variables

host

hostname

ip

Nom d’hôte ou adresse IP de l’équipement distant avec lequel la connexion doit être établie.

{{ inventory_hostname }}

passwd

password

Mot de passe de l’utilisateur ou phrase secrète de clé SSH utilisé pour s’authentifier auprès de l’appareil géré.

  1. ANSIBLE_NET_PASSWORD variable d’environnement

  2. Valeur spécifiée pour -k ou --ask-pass option de ligne de commande

ssh_config

Chemin d’accès au fichier de configuration d’un client SSH.

Si vous omettez ce paramètre, les modules utilisent le fichier de configuration SSH à l’emplacement par défaut, s’il en existe un.

~/.ssh/config

ssh_private_key_file

ssh_keyfile

Chemin d’accès au fichier de clé privée SSH utilisé pour s’authentifier auprès de l’appareil distant.

Si vous ne spécifiez pas explicitement le chemin d’accès et qu’aucune valeur par défaut n’est trouvée, le module utilise le fichier de clé privée SSH spécifié dans la configuration SSH de l’utilisateur ou la valeur par défaut spécifique au système d’exploitation.

  1. ANSIBLE_NET_SSH_KEYFILE variable d’environnement

  2. Valeur spécifiée pour --private-key ou --key-file option de ligne de commande

  3. aucun

user

username

Nom d’utilisateur utilisé pour s’authentifier auprès du nœud géré.

  1. ANSIBLE_NET_USERNAME variable d’environnement

  2. remote_user tel que défini par Ansible

  3. USER variable d’environnement

Lors de l’exécution de modules Juniper Networks, l’argument host est toujours requis pour une connexion. Toutefois, il n’est pas nécessaire de spécifier explicitement l’hôte, car la valeur par défaut est {{ inventory_hostname }}.

Vous pouvez exécuter des modules Juniper Networks à l’aide de n’importe quel compte utilisateur ayant accès à l’équipement Junos géré. Lorsque vous exécutez les modules, les privilèges d’accès au compte d’utilisateur Junos OS sont appliqués et la classe configurée pour le compte d’utilisateur Junos OS détermine les autorisations. Si vous ne spécifiez pas d’utilisateur, celui-ci est défini selon l’algorithme décrit user dans le Tableau 1. Consultez la documentation Ansible pour connaître la priorité utilisée pour définir remote_user, qui peut être défini de plusieurs façons, notamment :

  • -u ou --user sur la ligne de commande

  • ANSIBLE_REMOTE_USER variable d’environnement

  • remote_user Paramètre de configuration

Définition des paramètres d’authentification dans les variables : section pour les connexions locales et persistantes

Vous pouvez définir des paramètres de connexion et d’authentification vars: pour les juniper.device modules de la section de la pièce. Cela s’ajoute à leur définition comme vous le feriez normalement via d’autres variables, par exemple, dans le fichier de configuration SSH, dans le fichier d’inventaire Ansible, en tant qu’arguments de ligne de commande ou en tant qu’arguments de module. La vars: section vous permet de définir des paramètres de connexion communs à un emplacement unique que tous les modules du jeu peuvent utiliser pour se connecter à un hôte. De plus, certaines connexions Ansible nécessitent l’utilisation de la vars: section lorsque vous définissez les paramètres dans la lecture, comme décrit ici.

Les juniper.device modules prennent en charge les types de connexions Ansible suivants :

  • connexions locales, qui sont définies à l’aide de connection: local

  • connexions persistantes, qui sont définies à l’aide de connection: juniper.device.pyez

Pour les connexions locales et persistantes, Ansible exécute les modules localement sur le nœud de contrôle. Lorsque vous utilisez connection: local, Ansible établit une connexion distincte avec l’hôte pour chaque tâche du jeu qui nécessite une connexion. En revanche, lorsque vous utilisez connection: juniper.device.pyez, Ansible établit une connexion unique et persistante à un hôte, qui persiste pendant l’exécution de toutes les tâches du jeu.

Vous utilisez les mêmes paramètres de connexion et d’authentification pour les connexions persistantes que pour les connexions locales, et les valeurs de paramètre par défaut décrites dans Présentation des valeurs par défaut des modules Juniper Networks s’appliquent aux deux types de connexions. Pour les connexions locales, vous pouvez définir les paramètres de connexion et d’authentification soit dans la vars: section, soit en tant qu’arguments de module. Si vous définissez les paramètres aux deux endroits, les arguments du module sont prioritaires. Toutefois, lorsque vous définissez des paramètres dans une lecture pour les connexions persistantes, vous devez définir les paramètres dans la vars: section. Avec les connexions persistantes, il n’y a qu’une seule connexion pour toutes les tâches, et vous devez donc définir les paramètres globalement afin qu’ils s’appliquent à toutes les tâches de ce jeu.

Le playbook suivant exécute deux juniper.device modules sur chaque hôte du groupe d’inventaire. Le jeu définit la connexion Ansible comme juniper.device.pyez, qui établit une connexion à chaque hôte qui persiste pendant l’exécution de toutes les tâches du jeu. Les paramètres d’authentification de la connexion persistante sont définis dans la section du vars: jeu. Les user variables de référence et passwd values définies dans le fichier de vault-vars.yaml coffre-fort.

content_copy zoom_out_map
---
- name: Get Device Facts
  hosts: dc1
  connection: juniper.device.pyez
  gather_facts: no

  vars:
    user: "{{ admin_username }}"
    passwd: "{{ admin_password }}"

  vars_files:
    - vault-vars.yaml

  tasks:
    - name: Retrieve facts from Junos devices
      juniper.device.facts:
        savedir: "{{ playbook_dir }}"

    - name: Get hardware inventory
      juniper.device.command:
        commands: "show chassis hardware"
        dest_dir: "{{ playbook_dir }}"

Comment authentifier l’utilisateur à l’aide de clés SSH

Les modules Juniper Networks juniper.device vous permettent d’utiliser des clés SSH pour vous connecter à un équipement Junos ou à un serveur de console connecté à l’équipement. Pour authentifier un utilisateur à l’aide de clés SSH, générez d’abord les clés sur le nœud de contrôle Ansible, puis configurez les clés sur le périphérique auquel le module se connectera, soit le périphérique Junos géré, soit le serveur de console connecté au périphérique Junos.

Générer et configurer les clés SSH

Pour générer des clés SSH sur le nœud de contrôle Ansible et configurer la clé publique sur l’équipement distant :

  1. Sur le nœud de contrôle Ansible, générez la paire de clés SSH publique et privée pour l’utilisateur souhaité et fournissez les options requises, par exemple :
    content_copy zoom_out_map
    user@localhost:~$ cd ~/.ssh
    user@localhost:~/.ssh$ ssh-keygen -t rsa -b 4096
    Enter file in which to save the key (/home/user/.ssh/id_rsa): id_rsa_dc 
    Enter passphrase (empty for no passphrase):  *****
    Enter same passphrase again: *****
    
  2. (Facultatif) Chargez la clé dans l’agent de clé SSH natif. Par exemple:
    content_copy zoom_out_map
    user@localhost:~/.ssh$ ssh-add ~/.ssh/id_rsa_dc
    
  3. Configurez la clé publique sur chaque équipement auquel les modules se connecteront, ce qui peut inclure des équipements Junos ou un serveur de console connecté à un équipement Junos.

    La méthode la plus simple pour configurer la clé publique sur un équipement Junos consiste à charger un fichier contenant la clé publique sous le compte d’utilisateur approprié.

    content_copy zoom_out_map
    [edit]
    user@router# set system login user username authentication load-key-file URL 
    user@router# commit
    
  4. Vérifiez que la clé fonctionne en vous connectant à l’appareil à l’aide de la clé.
    content_copy zoom_out_map
    user@localhost:~$ ssh -i ~/.ssh/id_rsa_dc router.example.com 
    Enter passphrase for key '/home/user/.ssh/id_rsa_dc': 
    user@router>
    

Utiliser les clés SSH dans les playbooks Ansible

Après avoir généré la paire de clés SSH et configuré la clé publique sur l’appareil distant, vous pouvez utiliser la clé pour vous connecter à l’appareil. Les modules Juniper Networks interrogent automatiquement le fichier de configuration SSH par défaut à l’adresse ~/.ssh/config, s’il en existe un. Vous pouvez également définir l’option ssh_config permettant de spécifier un autre fichier de configuration. Les modules utilisent tous les paramètres pertinents dans le fichier de configuration SSH pour la connexion donnée, à moins que vous ne définissiez explicitement des variables qui remplacent le paramètre. De plus, les modules recherchent automatiquement les clés à l’emplacement par défaut et les clés qui sont activement chargées dans un agent de clés SSH.

Pour définir des paramètres spécifiques pour les clés SSH, vous pouvez inclure les arguments appropriés dans votre playbook Ansible. Définissez les arguments à l’emplacement approprié pour votre ensemble de modules et votre connexion Ansible, par exemple, dans la vars: section des lectures qui utilisent les juniper.device modules avec une connexion persistante. Les arguments à inclure sont déterminés par l’emplacement de la clé, si la clé est activement chargée dans un agent de clé SSH, si la clé est protégée par un mot de passe et si le fichier de configuration SSH de l’utilisateur définit déjà les paramètres pour cet hôte.

  • Pour vous connecter à un équipement Junos à l’aide de clés SSH qui sont activement chargées dans l’agent de clé SSH natif ou qui se trouvent à l’emplacement par défaut et ne disposent pas d’une protection par mot de passe, vous n’avez pas besoin de définir d’arguments liés à la connexion ou à l’authentification, sauf s’ils diffèrent de ceux par défaut.

    content_copy zoom_out_map
        juniper.device.facts:  
          savedir: "{{ playbook_dir }}"
  • Pour vous connecter à un périphérique Junos à l’aide de clés SSH qui ne se trouvent pas à l’emplacement par défaut et qui ne sont pas protégées par mot de passe, définissez l’argument ssh_private_key_file sur le chemin d’accès au fichier de clé privée SSH. Par exemple:

    content_copy zoom_out_map
      vars:
        ssh_private_key_file: "/home/user/.ssh/id_rsa_alternate"
    
      tasks:
        - name: Retrieve facts from Junos devices
          juniper.device.facts:
            savedir: "{{ playbook_dir }}"

    Vous pouvez également spécifier le chemin de la clé privée SSH en le définissant dans le fichier de configuration SSH ; en définissant la variable d’environnement ANSIBLE_NET_SSH_KEYFILE ou en définissant l’option --private-key de ligne de commande ou --key-file lors de l’exécution du playbook.

  • Pour vous connecter à un équipement Junos à l’aide d’un fichier de clé SSH protégé par mot de passe, ce qui est la méthode recommandée, vous pouvez référencer la phrase secrète du fichier de clé SSH dans l’argument passwd ou fournir le mot de passe à l’aide de variables Ansible normales ou d’options de ligne de commande.

    Il est de la responsabilité de l'utilisateur d'obtenir la phrase secrète du fichier de clé SSH d'une manière sécurisée et adaptée à son environnement. Il est recommandé de l’inviter lors de chaque appel du playbook ou de stocker les variables à l’aide d’un coffre-fort chiffré plutôt que de stocker les informations d’identification dans un format non chiffré. Par exemple, vous pouvez exécuter le playbook à l’aide de l’option --ask-pass de ligne de commande et fournir la phrase secrète du fichier de clé SSH lorsque vous y êtes invité, comme indiqué ici :

    content_copy zoom_out_map
      vars:
        ssh_private_key_file: "/home/user/.ssh/id_rsa_dc"
    
      tasks:
        - name: Retrieve facts from Junos devices
          juniper.device.facts:
            savedir: "{{ playbook_dir }}"
    content_copy zoom_out_map
    user@localhost:~$ ansible-playbook playbook.yaml --ask-pass
    SSH password: 
    

    Pour plus d’informations sur l’utilisation d’une invite ou d’un fichier de coffre-fort chiffré pour la phrase secrète de la clé SSH, consultez Comment authentifier l’utilisateur à l’aide d’un playbook ou d’une invite de mot de passe de ligne de commande et Comment authentifier l’utilisateur à l’aide d’un fichier Ansible Vault-Encrypted .

Pour obtenir des instructions sur l’utilisation des clés SSH pour se connecter à un serveur de consoles, reportez-vous à la section Comment s’authentifier via un serveur de consoles.

Comment authentifier l’utilisateur à l’aide d’un playbook ou d’une invite de mot de passe de ligne de commande

Pour authentifier un utilisateur exécutant des modules Ansible, vous pouvez demander les informations d’identification de l’utilisateur lors de l’exécution du playbook. Par exemple, vous pouvez définir une invite interactive dans le playbook, ou vous pouvez exécuter le playbook avec l’option -k de ligne de commande ou --ask-pass pour demander le mot de passe. Lorsque des clés SSH sont utilisées, le mot de passe fourni est utilisé comme phrase secrète pour déverrouiller la clé SSH privée. Lorsque l’authentification par mot de passe est utilisée, le mot de passe fourni est utilisé comme mot de passe de l’appareil.

Pour définir une invite interactive dans le playbook afin d’obtenir le mot de passe ou la phrase secrète de la clé SSH de l’utilisateur :

  1. Incluez un code en dessous vars_prompt: qui demande le mot de passe de l’utilisateur ou la phrase secrète de la clé SSH (et éventuellement le nom d’utilisateur) et stocke la valeur dans une variable.
    content_copy zoom_out_map
    ---
    - name: Get Device Facts
      hosts: all
      connection: local
      gather_facts: no
    
      vars_prompt:
        - name: "USERNAME"
          prompt: "Username"
          private: no
        - name: "DEVICE_PASSWORD"
          prompt: "Device password"
          private: yes
    
  2. Définissez les user paramètres et passwd de manière à ce que chacun fasse référence à sa variable respective.
    content_copy zoom_out_map
      vars:
        user: "{{ USERNAME }}"
        passwd: "{{ DEVICE_PASSWORD }}"
    
  3. Incluez les tâches à exécuter.
    content_copy zoom_out_map
      tasks: 
        - name: Retrieve facts from Junos devices
          juniper.device.facts:  
            savedir: "{{ playbook_dir }}"
        - name: Print facts
          ansible.builtin.debug:
            var: junos.version
    
  4. Exécutez le playbook, qui demande le nom d’utilisateur et le mot de passe et ne fait pas écho au mot de passe sur la ligne de commande car la variable est définie sur private: yes.
    content_copy zoom_out_map
    user@localhost:~$ ansible-playbook playbook.yaml
    User name: user
    Device password: 
    

Vous pouvez également exécuter un playbook avec l’option -k de ligne de commande ou --ask-pass pour demander le mot de passe ou la phrase secrète. Prenons l’exemple du guide suivant, qui utilise le nom d’utilisateur par défaut :

content_copy zoom_out_map
---
- name: Get Device Facts
  hosts: all
  connection: local
  gather_facts: no

  tasks: 
    - name: Retrieve facts from Junos devices
      juniper.device.facts:  
        savedir: "{{ playbook_dir }}"
    - name: Print facts
      ansible.builtin.debug:
        var: junos.version

Exécutez le playbook et incluez l’option -k de ligne de commande ou --ask-pass qui invite à entrer le mot de passe et ne fait pas écho au mot de passe sur la ligne de commande.

content_copy zoom_out_map
user@localhost:~$ ansible-playbook playbook.yaml --ask-pass
SSH password: 

PLAY [Get Device Facts] ***********************************************
...

Comment authentifier l’utilisateur à l’aide d’un fichier Ansible Vault-Encrypted

Vous pouvez créer un coffre-fort Ansible qui stocke en toute sécurité les mots de passe enregistrés et d’autres valeurs sensibles de connexion et d’authentification dans un fichier de données chiffré par le coffre-fort. Votre playbook peut ensuite référencer ces variables à l’emplacement approprié pour votre ensemble de modules et votre type de connexion Ansible, par exemple, dans la section du jeu ou en tant qu’arguments de vars: module.

Pour créer et utiliser un fichier de coffre-fort Ansible contenant les variables requises, y compris les mots de passe :

  1. Créez un fichier de données chiffré dans le coffre-fort et spécifiez le mot de passe requis pour chiffrer, déchiffrer, modifier et utiliser le fichier de données.
    content_copy zoom_out_map
    root@localhost:~# ansible-vault create vault-vars.yaml
    Vault password:  
    Confirm Vault password: 
    
  2. Définissez les variables requises dans le fichier et enregistrez-le.
    content_copy zoom_out_map
    root@localhost:~# ansible-vault edit vault-vars.yaml
    Vault password: 
    
    # Vault variables
    root_username: root
    root_password: password
  3. Vérifiez que le fichier est chiffré.
    content_copy zoom_out_map
    root@localhost:~# cat vault-vars.yaml 
    $ANSIBLE_VAULT;1.1;AES256
    31415961343966623035373532313264333633663764353763393066643131306565636463326634
    3730326165666565356665343137313161234569336336640a653939633331663935376362376666
    65653737653262363235353261626135312345663665396262376339623737366238653436306663
    6430376633306339360a343065363331313532633036343866376330623634653538353132314159
    3835
    
  4. Dans le playbook, incluez le fichier de variables chiffrées du coffre-fort et référencez les variables requises à l’emplacement approprié pour vos modules et votre type de connexion Ansible.
    content_copy zoom_out_map
    ---
    - name: Get Device Facts 
      hosts: dc1
      connection: local
      gather_facts: no
    
      vars_files:
        - vault-vars.yaml
    
      vars:
        user: "{{ root_username }}"
        passwd: "{{ root_password }}"
    
      tasks:
        - name: Retrieve facts from Junos devices 
          juniper.device.facts:  
            savedir: "{{ playbook_dir }}"
        - name: Print version
          ansible.builtin.debug:
            var: junos.version
    Note:

    Si vous définissez plutôt les variables réelles user et passwd réelles dans le coffre-fort, les modules les récupèrent automatiquement et vous n’avez pas besoin de les définir explicitement dans le playbook.

  5. Exécutez le playbook à l’aide de l’option --ask-vault-pass qui vous invite à entrer le mot de passe du coffre-fort.
    content_copy zoom_out_map
    root@localhost:~# ansible-playbook playbook-name.yaml --ask-vault-pass
    Vault password: 
    
    PLAY [Get Device Facts] ***********************************************
    ...
     

Comment s’authentifier via un serveur de consoles

Les modules Ansible de Juniper Networks peuvent se connecter aux équipements Junos via un serveur de console. Pour les connexions SSH via un serveur de console, vous devez fournir les informations d’identification d’authentification du serveur de consoles et du périphérique Junos. Vous pouvez utiliser un mot de passe de périphérique ou un fichier de clé SSH protégé par mot de passe pour l’authentification du serveur de console.

Pour vous connecter à un équipement Junos par le biais d’un serveur de consoles, vous devez fournir les paramètres suivants dans votre playbook, s’il n’existe pas de valeur par défaut ou si la valeur par défaut n’est pas appropriée :

  • host: nom d’hôte ou adresse IP du serveur de consoles

  • user et passwd—identifiants de connexion Junos OS

  • cs_user—Nom d’utilisateur du serveur de consoles

  • cs_passwd: mot de passe de l’équipement ou mot de passe du fichier de clé SSH requis pour s’authentifier auprès du serveur de consoles

Dans l’exemple suivant, les informations d’identification de l’utilisateur Junos OS et de l’utilisateur du serveur de console sont définies dans un fichier de coffre-fort Ansible. Les variables du coffre-fort sont ensuite référencées dans le playbook. Dans ce cas, l’argument cs_passwd est la phrase secrète de la clé SSH spécifiée dans l’argument ssh_private_key_file .

content_copy zoom_out_map
---
- name: Get Device Facts
  hosts: dc1_con
  connection: local
  gather_facts: no

  vars_files:
    - vault-vars.yaml

  vars:
    host: "{{ inventory_hostname }}"
    user: "{{ junos_username }}"
    passwd: "{{ junos_password }}"
    cs_user: "{{ cs_username }}"
    cs_passwd: "{{ cs_key_password }}"
    ssh_private_key_file: "/home/user/.ssh/id_rsa_dc"

  tasks:
    - name: Retrieve facts from Junos devices
      juniper.device.facts:  
        savedir: "{{ playbook_dir }}"
footer-navigation