Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Connexion aux équipements Junos à l’aide d’Ansible

RÉSUMÉ Les modules Ansible de Juniper Networks vous permettent de vous connecter à des appareils Junos via des connexions SSH, telnet ou console série.

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 collection et le juniper.device Juniper.junos rôle, qui sont hébergés sur Ansible Galaxy. Les modules peuvent se connecter aux équipements Junos à l’aide de différents protocoles et connexions Ansible, décrits dans ce document.

Présentation des méthodes de connexion

Les modules Ansible de Juniper Networks vous permettent de vous connecter à un périphérique Junos via une connexion SSH, telnet ou une console série. Vous devez utiliser une connexion de console série lorsque votre terminal ou ordinateur portable est physiquement connecté au port CONSOLE d’un équipement Junos. Vous pouvez utiliser SSH ou telnet pour vous connecter à l’interface de gestion du périphérique ou à un serveur de console directement connecté au port CONSOLE du périphérique.

Les appareils nouveaux ou zeroisés dont les configurations d’usine sont définies en usine doivent être accessibles via une connexion de console. Ainsi, vous pouvez utiliser Ansible pour configurer initialement un périphérique qui n’est pas encore configuré pour l’accès à distance à l’aide d’une connexion de console série lorsque vous êtes directement connecté au périphérique ou à l’aide de telnet ou SSH via un serveur de console directement connecté au périphérique.

Par défaut, les modules Juniper Networks utilisent SSH pour se connecter à un appareil. Pour utiliser telnet ou une connexion de console série, définissez le paramètre du mode module sur la valeur appropriée. Pour telnet à un périphérique, définissez l’argument mode égal à "telnet". Pour utiliser une connexion de console série, définissez l’argument mode égal à "serial". Le tableau 1 résume les modes de connexion, leurs valeurs par défaut pour certains paramètres, toute configuration Junos OS requise et la version dans laquelle la prise en charge de ce mode de connexion a été introduite pour la Juniper.junos première fois. Les juniper.device modules prennent en charge tous les modes de connexion dès leur version initiale.

Tableau 1 : modes de connexion des modules Ansible de Juniper Networks

Mode de connexion

Valeur de l’argument mode

Port par défaut

Configuration Junos OS requise

Première version prise en charge (Juniper.junos)

NETCONF sur SSH (par défaut)

830

[edit system services]
netconf {
    ssh;
}

1.0.0

Connexion à la console série

serial

/dev/ttyUSB0

2.0.0

SSH via un serveur de console

22

2.2.0

Telnet vers Junos

telnet

23

[edit system services]
telnet;

1.4.0

Port par défaut ajouté dans la version 2.0.0

Telnet via un serveur de ports console

telnet

23

1.4.0

Note:

Avant de pouvoir accéder à l’interface de gestion à l’aide de telnet ou NETCONF sur SSH, vous devez d’abord activer le service approprié au niveau de la [edit system services] hiérarchie. Étant donné que telnet utilise des mots de passe en texte clair (créant ainsi une vulnérabilité de sécurité potentielle), nous vous recommandons d’utiliser SSH.

Lorsque vous exécutez les modules Juniper Networks pour gérer un équipement Junos, l’équipement distant doit être en mesure d’authentifier l’utilisateur Ansible à l’aide d’informations d’identification appropriées pour le protocole donné. Pour plus d’informations, consultez Authentifier les utilisateurs exécutant des modules Ansible sur des périphériques Junos.

Les modules Juniper Networks prennent en charge différentes connexions Ansible lors de la connexion à des appareils Junos, y compris les connexions locales (par tâche) et les connexions persistantes (par jeu). La connexion Ansible détermine si Ansible établit une connexion distincte avec l’hôte pour chaque tâche de la pièce ou si elle établit une connexion unique avec un hôte qui persiste sur toutes les tâches du jeu. Pour plus d’informations sur la spécification de la connexion Ansible, consultez Présentation des connexions Ansible locales et persistantes.

Présentation des connexions Ansible locales et persistantes

Les modules Juniper Networks ne nécessitent pas Python sur les équipements Junos, car ils utilisent Junos PyEZ et l’API XML Junos sur NETCONF pour s’interfacer avec le périphérique. Par conséquent, pour effectuer des opérations sur les équipements Junos, 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 les incluant connection: local dans le playbook. Lorsque vous utilisez connection: local, Ansible établit une connexion distincte à l’hôte pour chaque tâche du jeu qui effectue des opérations sur l’hôte.

Les juniper.device modules de collecte permettent connection: juniper.device.pyez également d’établir une connexion permanente à 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 n’établit et ne maintient qu’une seule connexion à chaque hôte, qui persiste pendant l’exécution de toutes les tâches du jeu. L’établissement d’une connexion permanente à un hôte peut être plus efficace pour exécuter plusieurs tâches que d’établir une connexion distincte à l’hôte pour chaque tâche du jeu.

Le tableau 2 résume les connexions Ansible et les jeux de contenu qui les prennent en charge.

Tableau 2 : connexions Ansible prises en charge par les modules Juniper Networks

Connexion Ansible

Description

Prise en charge des ensembles de contenu

connection: local

Exécutez les modules localement sur le nœud de contrôle Ansible, mais établissez une connexion distincte à un hôte pour chaque tâche du jeu qui effectue des opérations sur l’hôte.

juniper.deviceCollection

Juniper.junosRôle

connection: juniper.device.pyez

Exécutez les modules localement sur le nœud de contrôle Ansible, mais établissez une connexion persistante à un hôte qui persiste sur l’exécution de toutes les tâches du jeu.

juniper.deviceCollection

Note:

Ansible est obsolète connection: local. Par conséquent, lorsque vous utilisez les modules de collecte, nous vous recommandons de les utiliser connection: juniper.device.pyez dans votre playbook pour éviter les juniper.device problèmes au cas où Ansible supprimerait la prise en charge des connexions locales dans une version ultérieure.

Lorsque vous utilisez connection: local, Ansible établit une connexion distincte à un hôte pour chaque module, ce qui signifie que vous pouvez définir des paramètres de connexion et d’authentification spécifiques au module dans la liste d’arguments du module. En revanche, lorsque vous utilisez connection: juniper.device.pyez, la connexion persiste sur toutes les tâches du jeu et vous devez donc définir les paramètres de connexion et d’authentification globalement pour tous les modules. Vous pouvez définir les paramètres dans la vars: section d’un jeu, en plus de les fournir par d’autres moyens, par exemple dans un fichier de configuration SSH ou dans le fichier d’inventaire Ansible. Pour plus d’informations, voir Authentifier les utilisateurs exécutant des modules Ansible sur des périphériques Junos.

Le playbook suivant établit une connexion permanente à chaque hôte qui est utilisée pour toutes les tâches du jeu. Les informations d’identification de l’utilisateur, qui sont stockées dans un fichier de coffre-fort Ansible, sont définies dans la section du vars: jeu.

Se connecter à un appareil à l’aide de SSH

Les modules Ansible de Juniper Networks prennent en charge l’utilisation de SSH pour se connecter à un périphérique Junos. Vous pouvez établir une session NETCONF sur SSH sur l’interface de gestion du périphérique ou vous pouvez établir une connexion SSH avec un serveur de console directement connecté au port CONSOLE du périphérique. Le serveur SSH doit être en mesure d’authentifier l’utilisateur à l’aide des mécanismes d’authentification SSH standard, comme décrit dans Authentifier les utilisateurs exécutant des modules Ansible sur des périphériques Junos. Pour établir une session NETCONF sur SSH, vous devez également satisfaire aux exigences décrites dans Configuration d’Ansible pour les nœuds gérés par Junos OS.

Les modules Juniper Networks interrogent automatiquement le fichier de configuration SSH par défaut dans ~/.ssh/config, s’il en existe un, sauf si le ssh_config paramètre spécifie un fichier de configuration différent. Lorsque vous utilisez SSH pour se connecter à un périphérique Junos ou à un serveur de console connecté à l’équipement, les modules tentent d’abord l’authentification basée sur la clé publique SSH, puis l’authentification par 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’appareil. Lorsque des clés SSH sont utilisées, le mot de passe fourni est utilisé comme phrase secrète pour déverrouiller la clé privée. Si la clé privée SSH contient une phrase secrète vide, aucun mot de passe n’est requis. Toutefois, les clés privées SSH avec des phrases secrètes vides ne sont pas recommandées.

Le playbook suivant établit une session NETCONF sur SSH avec un périphérique Junos et récupère les informations relatives au périphérique. Le playbook utilise des clés SSH à l’emplacement par défaut.

Les modules Ansible de Juniper Networks vous permettent également de vous connecter à un équipement Junos via une connexion SSH à un serveur de consoles. Dans ce cas, vous devez spécifier les identifiants de connexion du périphérique Junos et du serveur de console. Utilisez les paramètres et pour spécifier les informations d’identification de connexion Junos OS et les paramètres et passwd cs_passwd pour spécifier les informations d’identification user cs_user du serveur de console. Lorsque des clés SSH sont utilisées, cs_passwd est la phrase secrète de la clé privée.

Le playbook suivant vous invite à indiquer les informations d’identification de l’utilisateur pour le serveur de console et le périphérique Junos. Le module s’authentifie auprès du serveur de consoles, puis auprès du périphérique Junos. Si l’authentification réussit, le playbook extrait les informations relatives au périphérique à partir du nœud géré et imprime la version de Junos OS.

Les modules Juniper Networks interrogent automatiquement le fichier de configuration du client SSH par défaut dans ~/. ssh/config, s’il existe. Vous pouvez utiliser un autre fichier de configuration SSH en incluant le ssh_config paramètre et en spécifiant l’emplacement du fichier de configuration. Par exemple :

Se connecter à un périphérique à l’aide de Telnet

Les modules Juniper Networks vous permettent de vous connecter à un périphérique Junos via telnet, qui fournit un accès non chiffré à l’équipement réseau. Vous pouvez accéder à l’interface de gestion du périphérique ou à un serveur de console directement connecté au port CONSOLE du périphérique. L’accès au périphérique via un serveur de console vous permet de configurer initialement un périphérique nouveau ou 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 [edit system services] hiérarchie sur tous les périphériques nécessitant un accès à l’interface.

Pour telnet sur le périphérique distant, définissez le paramètre sur "telnet" et incluez éventuellement le mode port paramètre pour spécifier un port. Lorsque vous définissez mode "telnet" sur mais omettez le port paramètre, la valeur par défaut est port 23. Pour les connexions permanentes, définissez mode et port sous la vars: section. Pour les connexions locales, vous pouvez définir les paramètres sous la section ou sous forme d’arguments vars: de module.

Le playbook suivant établit des telnets sur un périphérique Junos à l’aide du port 7016 récupère les informations relatives au périphérique et les enregistre dans un fichier. Le module utilise l’utilisateur par défaut et vous demande le mot de passe de connexion.

Connexion à un périphérique à l’aide d’une connexion de console série

Les modules Juniper Networks vous permettent de vous connecter à un équipement Junos à l’aide d’une connexion de console série, ce qui est utile lorsque vous devez configurer initialement un équipement nouveau ou zeroisé qui n’est pas encore configuré pour l’accès à distance. Pour utiliser cette méthode de connexion, votre terminal ou ordinateur portable doit être physiquement connecté au périphérique Junos via le port CONSOLE . Pour obtenir des instructions détaillées sur la connexion au port CONSOLE d’un périphérique Junos, reportez-vous à la documentation matérielle de votre périphérique spécifique.

Pour vous connecter à un périphérique Junos via une connexion de console série, définissez le paramètre du mode module sur "serial", et incluez éventuellement le port paramètre pour spécifier un port. Lorsque vous définissez mode "serial" sur mais omettez le port paramètre, la valeur par port défaut est . /dev/ttyUSB0 Pour les connexions permanentes, définissez mode et port sous la vars: section. Pour les connexions locales, vous pouvez définir les paramètres sous la section ou sous forme d’arguments vars: de module.

Le playbook suivant se connecte à un périphérique Junos via le port CONSOLE , puis charge et valide une configuration initiale. Le module utilise l’utilisateur par défaut et vous demande le mot de passe de connexion.