Présentation des collections et modules Ansible pour Junos OS
Juniper Networks fournit des modules Ansible que vous pouvez utiliser pour gérer les équipements Junos.
Comprendre les collections et modules Ansible pour la gestion des équipements Junos
Ansible est une infrastructure d’automatisation informatique utilisée pour gérer la configuration de l’infrastructure. Vous utilisez des modules Ansible, qui sont des unités de code discrètes, pour exécuter des fonctions spécifiques sur un nœud géré. Vous pouvez exécuter des modules individuels sur des hôtes distants pour effectuer des tâches ad hoc, ou vous pouvez exécuter des modules via des playbooks.
Ansible et Juniper Networks fournissent des modules Ansible que vous pouvez utiliser pour gérer les équipements Junos. Les modules Ansible de Juniper Networks sont regroupés et distribués par le biais de collections Ansible, hébergées dans le référentiel Ansible Galaxy . Le Tableau 1 présente les différents ensembles de contenus disponibles pour la gestion des équipements Junos.
| Ensemble de contenu |
Description |
Versions d’Ansible |
|---|---|---|
|
|
Collection pour la gestion des équipements Junos, que Juniper Networks fournit et gère en tant que projet open source. |
Ansible 2.10 et versions ultérieures |
|
|
Collection pour la gestion des équipements Junos, qu’Ansible fournit, entretient et prend en charge. |
Ansible 2.10 et versions ultérieures |
| Modules centraux Ansible |
Modules Ansible inclus dans l’installation de base Ansible. Dans Ansible 2.10, les modules de base ont été déplacés de l’installation de base vers la collection d’Ansible |
Ansible 2.1 à Ansible 2.9 |
|
|
Rôle de gestionnaire des équipements Junos, que Juniper Networks fournit, entretient et prend en charge. Ce rôle est supplanté par la |
Ansible 2.1 et versions ultérieures |
Un rôle Ansible est un ensemble de tâches et de variables, de fichiers, de modèles et de modules permettant de configurer un hôte. À partir d’Ansible 2.10, Ansible prend en charge les collections de contenu Ansible, un format de distribution de contenu Ansible qui n’est pas inclus dans l’installation de base d’Ansible. Les collections Ansible peuvent inclure un plus large éventail de contenus, notamment des modules, des playbooks, des plug-ins et des rôles. Les collections Ansible possèdent également leurs propres référentiels et peuvent être développées et diffusées indépendamment de l’installation de base d’Ansible.
Dans Ansible 2.9 et versions antérieures, vous pouvez gérer les équipements Junos à l’aide des modules fournis dans le rôle Juniper Networks Juniper.junos ou à l’aide des modules centraux fournis dans le cadre de l’installation de base d’Ansible. À partir d’Ansible 2.10, le rôle et les Juniper.junos modules principaux Ansible sont remplacés par la collection correspondante. Avec l’introduction de la collection de Juniper Networks, les modules du rôle ont été dupliqués sous de Juniper.junos nouveaux noms dans la collection et conservent donc les mêmes fonctionnalités et paramètres que les modules d’originejuniper.device, à l’exception du provider paramètre. Nous vous recommandons d’utiliser la juniper.device collection, car les nouvelles fonctionnalités ne seront ajoutées à la collection qu’à l’avenir.
Exécution de modules sur des équipements Junos
Pour utiliser les collections hébergées dans le référentiel Ansible Galaxy, vous devez d’abord installer Ansible sur le nœud de contrôle, puis installer la collection. Pour plus d’informations sur l’installation de la juniper.device collection, consultez Configuration requise pour Ansible for Junos OS Server.
Les modules Ansible peuvent effectuer des opérations sur un nœud géré. En règle générale, le nœud de contrôle Ansible envoie un module à un nœud géré, où il est exécuté puis supprimé. Dans ce scénario, le nœud géré doit avoir la capacité d’exécuter le module. Étant donné que la plupart des modules Ansible sont écrits en Python, Ansible nécessite généralement Python sur le nœud géré.
Toutefois, les modules Juniper Networks de la juniper.device collection ne nécessitent pas Python sur les nœuds gérés. Contrairement à l’opération classique, vous exécutez les modules localement sur le nœud de contrôle Ansible, et les modules utilisent Junos PyEZ et l’API Junos XML sur NETCONF pour s’interfacer avec le nœud géré. Cette méthode d’exécution vous permet d’utiliser Ansible pour gérer n’importe quel équipement Junos pris en charge. La figure 1 illustre la communication entre le nœud de contrôle Ansible et un équipement Junos géré.
Junos
Pour utiliser les modules de juniper.device collecte, le playbook ou la commande doit :
-
Specify the collection or FQCN (Spécifier la collection) : pour spécifier la collection, incluez la
collectionsclé dans la lecture. Vous pouvez également omettre la clé et référencer à la place lecollectionscontenu de la collection par son nom de collection complet (FQCN), qui est la méthode recommandée. -
Exécuter les modules localement sur le nœud de contrôle : pour exécuter des modules Ansible localement, définissez le
connectionparamètre commelocal, par exemple, en l’incluantconnection: localdans votre playbook ou en l’incluant--connection localsur la ligne de commande.Note:Lorsque vous utilisez
connection: local, Ansible établit une connexion distincte à l’appareil pour chaque tâche du jeu qui nécessite une connexion. Lesjuniper.devicemodules de collection prennent également en charge l’utilisationconnection: juniper.device.pyezde , qui exécute toujours les modules localement, mais établit à la place une connexion unique et persistante à un appareil pour toutes les tâches d’une pièce. -
Fournissez les informations de connexion et d’authentification appropriées pour vous connecter à l’équipement géré : pour plus d’informations, voir :
Vous pouvez exécuter des modules Ansible à l’aide de n’importe quel compte d’utilisateur ayant accès à l’équipement Junos géré. Lorsque vous exécutez des modules Ansible, 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. Ainsi, si un utilisateur exécute un module qui charge les modifications de configuration sur un périphérique, il doit disposer des autorisations nécessaires pour modifier les parties pertinentes de la configuration.
Le playbook suivant exécute le module de facts la juniper.device collection pour récupérer les informations sur l’appareil et les enregistrer dans un fichier. L’exemple utilise des clés SSH existantes à l’emplacement par défaut pour s’authentifier auprès de l’appareil et ne fournit donc pas explicitement d’informations d’identification dans le playbook.
---
- name: Get Device Facts
hosts: dc1
connection: local
gather_facts: no
tasks:
- name: Retrieve facts from a Junos device
juniper.device.facts:
savedir: "{{ playbook_dir }}"
- name: Print version
ansible.builtin.debug:
var: junos.version
Vous pouvez également effectuer des opérations ad hoc sur la ligne de commande. La commande suivante exécute le module de facts la juniper.device collection et récupère les faits de périphérique des hôtes du groupe d’inventaire dc1.
user@ansible-cn:~$ ansible --connection local -i production dc1 -m juniper.device.facts
Juniper Networks juniper.device Collection
Juniper Networks fournit la juniper.device collection de contenu Ansible, qui est hébergée sur le site Web d’Ansible Galaxy . La collection comprend des modules Ansible qui vous permettent de gérer les équipements Junos.
Le tableau 2 présente les modules de la juniper.device collection. Dans la version initiale de la collection, les modules de collection conservent les mêmes fonctionnalités et paramètres que le module correspondant dans le Juniper.junos rôle, à l’exception du paramètre, qui n’est pas pris en charge pour les modules de provider collection.
Pour obtenir la liste la plus récente, la documentation et les exemples d’utilisation des modules, reportez-vous à https://ansible-juniper-collection.readthedocs.io/.
| Nom du module juniper.device |
Description |
|---|---|
|
|
Exécutez des commandes CLI sur l’équipement Junos et enregistrez la sortie localement. |
|
|
Gérez la configuration des équipements Junos. |
|
|
Récupérez des informations spécifiques à l’équipement à partir de l’hôte distant, notamment la version de Junos OS, le numéro de série et le numéro de modèle du matériel. |
|
|
Transférez un fichier entre le nœud de contrôle Ansible local et l’équipement Junos. |
|
|
Exécutez des tests Junos Snapshot Administrator en Python (JSNAPy) via Ansible. |
|
|
Exécutez la commande sur les |
|
|
Effectuez la découverte MTU de chemin sur les équipements Junos. |
|
|
Exécutez des RPC avec Junos OS. |
|
|
Installez un progiciel Junos OS et redémarrez un équipement Junos. |
|
|
Créez un cluster de châssis SRX Series pour les pare-feu SRX Series compatibles avec les clusters. |
|
|
Effectuez des opérations système sur les équipements Junos, notamment la réinitialisation, le redémarrage ou l’arrêt de l’équipement. |
|
|
Utilisez les tables et vues opérationnelles Junos PyEZ pour récupérer des informations opérationnelles à partir de périphériques Junos. |