Connexion aux équipements exécutant des équipements Junos OS ansible
SYNTHÈSE Les modules Ansible de Juniper Networks vous permettent de vous connecter aux équipements qui s’exécutent Junos OS en utilisant des connexions SSH, Telnet ou de console série.
Juniper Networks modules Ansible que vous pouvez utiliser pour gérer les équipements exécutant Junos OS. Les modules Juniper Networks sont distribués par le biais de la collecte et du rôle, hébergés juniper.device
Juniper.junos
sur Ansible Galaxy. Les modules peuvent se connecter aux équipements qui s’exécutent Junos OS à l’aide de différents protocoles et connexions Ansible, décrits dans ce document.
Présentation des méthodes de connexion
Les modules Juniper Networks Ansible vous permettent de vous connecter à un équipement s’exécutant Junos OS via SSH, Telnet ou une connexion console série. Vous devez utiliser une connexion de console série lorsque votre terminal ou votre ordinateur portable est physiquement connecté au port CONSOLE d’un équipement sous Junos OS. Vous pouvez utiliser le système SSH ou Telnet pour vous connecter à l’interface de gestion de l’équipement ou à un serveur de console directement connecté au port CONSOLE de l’équipement.
Les nouveaux équipements ou zeroisés dont la configuration par défaut est en usine nécessitent un accès via une connexion de console. Ainsi, vous pouvez utiliser Ansible pour configurer initialement un équipement non encore configuré pour l’accès à distance en utilisant une connexion console série lorsque vous êtes directement connecté à l’équipement ou en utilisant Telnet ou SSH par l’intermédiaire d’un serveur de console directement connecté à l’équipement.
Par défaut, les modules Juniper Networks utilisent SSH pour se connecter à un équipement. Pour utiliser telnet ou une connexion de console série, définissez les paramètres du module mode
à la valeur appropriée. Pour un telnet sur un équipement, définissez mode
l’argument égal à "telnet"
. Pour utiliser une connexion de console série, définissez mode
l’argument égal à "serial"
. Le tableau 1 résume les modes de connexion, leurs valeurs par défaut pour certains paramètres, toutes les configurations d’Junos OS requises et la version dans laquelle la prise en charge de ce mode de connexion a été Juniper.junos
initialement mise en place. Les juniper.device
modules s’appuient sur tous les modes de connexion dès leur version initiale.
Mode connexion |
Valeur de |
Port par défaut |
Configuration Junos OS requise |
Première version prise en charge ( |
---|---|---|---|---|
NETCONF sur SSH (par défaut) |
– |
830 |
[edit system services] netconf { ssh; } |
1.0.0 |
Connexion console série |
|
/dev/ttyUSB0 |
– |
2.0.0 |
SSH via un serveur de console |
– |
22 |
– |
2.2.0 |
De Telnet à l’équipement qui s’exécute sur Junos OS |
|
23 |
[edit system services] telnet; |
1.4.0 Port par défaut ajouté dans 2.0.0 |
Telnet via un serveur de console |
|
23 |
– |
1.4.0 |
Avant d’accéder à l’interface de gestion à l’aide de Telnet ou NETCONF via SSH, vous devez d’abord activer le service approprié au niveau [edit system services]
hiérarchique. Parce que Telnet utilise des mots de passe en texte clair (créant ainsi une vulnérabilité de sécurité potentielle), il est recommandé d’utiliser SSH.
Lorsque vous exécutez les modules Juniper Networks pour gérer un équipement qui s’exécute sur Junos OS, l’équipement distant doit être en mesure d’authentifier l’utilisateur Ansible à l’aide des informations d’identification appropriées pour le protocole en question. Pour plus d’informations, consultez la fonction Authenticating Users Executing Ansible Modules on Devices Running Junos OS.
Les modules Juniper Networks prendre en charge différentes connexions Ansible lors de la connexion aux équipements exécutant des Junos OS, y compris les connexions locales (par tâche) et les connexions persistantes (par jeu). La connexion Ansible détermine si Ansible établit une connexion séparée à l’hôte pour chaque tâche de la lecture ou si elle établit une connexion unique à un hôte qui persiste sur toutes les tâches de la lecture. Pour plus d’informations sur la spécification de la connexion Ansible, consultez la section Understanding Local and Persistent Ansible Connections.
Compréhension des connexions Ansible locales et persistantes
Les modules Juniper Networks ne nécessitent pas de Python sur les équipements qui s’exécutent Junos OS car ils utilisent Junos PyEZ et l’API XML Junos sur NETCONF pour interface avec l’équipement. Pour effectuer les opérations sur les équipements Junos OS, vous devez exécuter des modules localement sur le nœud de contrôle Ansible, où Python est installé. Vous pouvez exécuter les modules localement en incluant connection: local
dans le playbook. Lorsque vous utilisez, Ansible établit une connexion séparée à l’hôte pour chaque tâche de la lecture qui effectue des connection: local
opérations sur l’hôte.
Les juniper.device
modules de collecte établissent également une connexion connection: juniper.device.pyez
durable à un hôte. Lorsque vous utilisez une connexion persistante, Ansible exécute toujours les modules localement sur le nœud de contrôle, mais il établit et maintient uniquement une connexion à chaque hôte, ce qui persiste après l’exécution de toutes les tâches de la lecture. Établir une connexion durable à un hôte peut être plus efficace pour exécuter plusieurs tâches que d’établir une connexion séparée à l’hôte pour chaque tâche de la lecture.
Le tableau 2 résume les connexions Ansible et les ensembles de contenus qui les soutiennent.
Connexion Ansible |
Description |
Prise en charge des ensembles de contenus |
---|---|---|
|
Exécuter les modules localement sur le nœud de contrôle Ansible, mais établir une connexion séparée à un hôte pour chaque tâche du jeu qui effectue des opérations sur l’hôte. |
|
|
Exécuter les modules localement sur le nœud de contrôle Ansible, mais établir une connexion persistante à un hôte qui persiste sur l’exécution de toutes les tâches de la lecture. |
|
Ansible s’est connection: local
déprécié. Ainsi, lorsque vous utilisez les modules de collecte, nous vous recommandons d’utiliser ce guide pour éviter les problèmes si Ansible supprime la prise en charge des connexions locales dans une version juniper.device
connection: juniper.device.pyez
ultérieure.
Lorsque vous utilisez, Ansible établit une connexion séparée à un hôte pour chaque module, ce qui signifie que vous pouvez définir des paramètres d’authentification et de connexion spécifiques au module dans la connection: local
liste d’arguments du module. En revanche, lorsque vous utilisez, la connexion persiste sur toutes les tâches de la lecture, et vous devez donc définir les paramètres de connexion et d’authentification globalement pour connection: juniper.device.pyez
tous les modules. Vous pouvez définir les paramètres dans la section d’une lecture, en plus de les fournir par d’autres moyens, par exemple dans un fichier de configuration SSH ou dans le fichier d’inventaire vars:
Ansible. Pour plus d’informations, consultez la fonction Authenticating Users Executing Ansible Modules on Devices Running Junos OS.
Le manuel suivant établit une connexion durable à chaque hôte utilisée pour toutes les tâches de la lecture. Les informations d’identification de l’utilisateur, stockées dans un fichier vault Ansible, sont définies dans la section de vars:
la lecture.
--- - name: Get Device Information 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 devices running Junos OS juniper.device.facts: savedir: "{{ playbook_dir }}" - name: Get hardware inventory juniper.device.command: commands: "show chassis hardware" dest_dir: "{{ playbook_dir }}"
Connexion à un équipement via SSH
Les modules Juniper Networks Ansible utilisent SSH pour se connecter à un équipement sous Junos OS. Vous pouvez établir une session NETCONF sur SSH sur l’interface de gestion de l’équipement ou établir une connexion SSH avec un serveur de console directement connecté au port CONSOLE de l’équipement. Le serveur SSH doit être en mesure d’authentifier l’utilisateur à l’aide de mécanismes d’authentification SSH standard, tels que décrits dans l’authentification des utilisateurs Exécutant des modules Ansiblesur les équipements s’exécutant Junos OS . Pour établir une session NETCONF sur SSH, vous devez également satisfaire aux exigences décrites dans l’étude Setting up Ansible for Junos OS Managed Nodes.
Les modules Juniper Networks interrogent automatiquement le fichier de configuration SSH par défaut à ~/ssh/config, si l’un d’entre elles existe, sauf si le paramètre spécifie un fichier de ssh_config
configuration différent. Lorsque vous utilisez SSH pour se connecter à un équipement exécutant Junos OS ou à un serveur de console connecté à l’équipement, les modules tentent d’abord l’authentification SSH basée sur des clés publiques, puis testent l’authentification basée sur un mot de passe. Lorsque l’authentification basée sur un mot de passe est utilisée, le mot de passe fourni est utilisé comme mot de passe de l’équipement. Lorsque des clés SSH sont utilisées, le mot de passe fourni est utilisé comme mot de passe pour le déverrouillage de la clé privée. Si la clé privée SSH dispose d’une passesphrase vide, un mot de passe n’est pas requis. Toutefois, les clés privées SSH avec passage vide ne sont pas recommandées.
Le manuel suivant établit une session NETCONF sur SSH avec un équipement qui s’Junos OS et récupère les faits sur l’équipement. Le manuel utilise des clés SSH dans l’emplacement par défaut.
--- - name: Get Device Facts hosts: dc1 connection: local gather_facts: no tasks: - name: Retrieve facts from devices running Junos OS juniper.device.facts: savedir: "{{ playbook_dir }}" - name: Print version debug: var: junos.version
Les modules Juniper Networks Ansible vous permettent également de vous connecter à un équipement qui s’Junos OS via une connexion SSH à un serveur de console. Dans ce cas, vous devez spécifier les données d’identification de connexion de l’équipement qui s’Junos OS et du serveur de console. Utilisez les paramètres et les paramètres pour spécifier Junos OS données d’identification de connexion, et utiliser les paramètres pour spécifier les données d’identification du serveur user
passwd
de cs_user
cs_passwd
console. Lorsque des clés SSH sont utilisés, cs_passwd
est la passesphrase pour la clé privée.
Les invites suivantes pour obtenir les informations d’identification de l’utilisateur pour le serveur de console et l’équipement qui s’exécute sur Junos OS. Le module s’authentifiera avec le serveur de console, puis l’équipement qui s’Junos OS. En cas de réussite de l’authentification, le manuel récupère les faits sur l’équipement à partir du nœud géré et fait l’être à l’Junos OS version.
--- - name: Get Device Facts hosts: dc1_con connection: local gather_facts: no vars_prompt: - name: "CS_USER" prompt: "Console server username" private: no - name: "CS_PASSWORD" prompt: "Console server password" private: yes - name: "JUNOS_USER" prompt: "Junos OS username" private: no - name: "JUNOS_PASSWORD" prompt: "Junos OS password" private: yes vars: cs_user: "{{ CS_USER }}" cs_passwd: "{{ CS_PASSWORD }}" user: "{{ JUNOS_USER }}" passwd: "{{ JUNOS_PASSWORD }}" tasks: - name: "Retrieve facts from devices running Junos OS" juniper.device.facts: savedir: "{{ playbook_dir }}" - name: Print version debug: var: junos.version
Les modules Juniper Networks interrogent automatiquement le fichier de configuration client SSH par défaut à ~//ssh/config,s’il existe. Vous pouvez utiliser un fichier de configuration SSH différent en incluant les paramètres et en ssh_config
spécifiant l’emplacement du fichier de configuration. Par exemple:
--- - name: Get Device Facts hosts: dc1 connection: local gather_facts: no vars: ssh_config: "/home/admin/.ssh/config_dc" tasks: - name: "Retrieve facts from devices running Junos OS" juniper.device.facts: savedir: "{{ playbook_dir }}" - name: Print version debug: var: junos.version
Connexion à un équipement à l’aide de Telnet
Les modules Juniper Networks vous permettent de vous connecter à un équipement s’exécutant Junos OS via Telnet, qui fournit un accès non crypté au périphérique réseau. Vous pouvez utiliser telnet sur l’interface de gestion de l’équipement ou vers un serveur de console directement connecté au port CONSOLE de l’équipement. L’accès à l’appareil via un serveur de console vous permet de configurer au départ un nouvel équipement ou un nouvel équipement zeroisé qui n’est pas encore configuré pour l’accès à distance. Pour accéder à l’interface de gestion, vous devez configurer le service Telnet au niveau de la hiérarchie sur tous les équipements nécessitant un [edit system services]
accès à l’interface.
Pour l’accès Telnet à l’équipement distant, définissez les paramètres et, si vous le pouvez, indiquez mode
"telnet"
les port
paramètres pour spécifier un port. Lorsque vous mode
définissez "telnet"
toutefois le paramètre, la valeur par défaut port
port
jusqu’à 23. Pour les connexions persistantes, mode
définissez et port
sous la vars:
section. Pour les connexions locales, vous pouvez définir les paramètres soit sous la section, soit en vars:
tant qu’arguments de module.
Le manuel suivant: un équipement qui s’exécute sur Junos OS’aide du port 7016, récupère les faits sur l’équipement et les enregistre dans un fichier. Le module utilise l’utilisateur par défaut et des invites pour le mot de passe de connexion.
--- - name: Get Device Facts hosts: dc1 connection: local gather_facts: no vars_prompt: - name: "DEVICE_PASSWORD" prompt: "Device password" private: yes vars: passwd: "{{ DEVICE_PASSWORD }}" mode: "telnet" port: "7016" tasks: - name: Retrieve facts from devices running Junos OS juniper.device.facts: savedir: "{{ playbook_dir }}" - name: Print version debug: var: junos.version
Connexion à un équipement à l’aide d’une connexion console série
Les modules Juniper Networks vous permettent de vous connecter à un équipement exécutant des Junos OS à l’aide d’une connexion console série, ce qui est utile lorsque vous devez initialement configurer un nouvel équipement ou un équipement zeroisé qui n’est pas encore configuré pour l’accès à distance. Pour utiliser cette méthode de connexion, votre terminal ou votre ordinateur portable doit être physiquement connecté à l’équipement qui s’Junos OS via le port CONSOLE. Pour obtenir des instructions détaillées sur la connexion au port CONSOLE d’un équipement sous Junos OS, consultez la documentation relative au matériel de votre équipement spécifique.
Pour vous connecter à un équipement qui Junos OS via une connexion de console série, définissez les paramètres du module et, si vous le pouvez, indiquez les paramètres de mode
"serial"
port
spécifier un port. Lorsque vous mode
définissez ou "serial"
non le port
paramètre, la valeur des valeurs par port
défaut sur /dev/ttyUSB0
. Pour les connexions persistantes, mode
définissez et port
sous la vars:
section. Pour les connexions locales, vous pouvez définir les paramètres soit sous la section, soit vars:
en tant qu’arguments du module.
Le manuel suivant se connecte à un équipement qui s’Junos OS via le port CONSOLE, puis charge et validation une configuration initiale. Le module utilise l’utilisateur par défaut et des invites pour le mot de passe de connexion.
--- - name: Load Initial Configuration hosts: dc1 connection: local gather_facts: no vars_prompt: - name: "DEVICE_PASSWORD" prompt: "Device password" private: yes tasks: - name: Load initial configuration and commit juniper.device.config: passwd: "{{ DEVICE_PASSWORD }}" mode: "serial" load: "merge" src: "configs/junos.conf" register: response - name: Print the response debug: var: response