Lisez ceci dans d'autres langues : English,
日本語,
Español,
Français.
- Exercice 1 - Exploration de l'environnement de laboratoire
- Table des matières
- Objectif
- Diagramme
- Guide
- Étape 1 - Connexion via VS Code
- Étape 2 - Utilisation du terminal
- Étape 3 - Examen des environnements d'exécution
- Étape 4 - Examen de la configuration d'ansible-navigator
- Étape 5 - Examen de l'inventaire
- Étape 6 - Compréhension de l'inventaire
- Étape 7 - Utilisation d'ansible-navigator pour explorer l'inventaire
- Étape 8 - Connexion aux périphériques réseau
- Conclusion
Explorer et comprendre l'environnement de laboratoire.
Les premiers exercices de ce laboratoire permettront d'explorer les utilitaires en ligne de commande de la plateforme d'automatisation Ansible. Cela inclut :
- ansible-navigator - un utilitaire en ligne de commande et une interface utilisateur textuelle (TUI) pour exécuter et développer du contenu d'automatisation Ansible.
- ansible-core - l'exécutable de base qui fournit le cadre, le langage et les fonctions soutenant la plateforme d'automatisation Ansible. Il inclut également divers outils CLI tels que
ansible
,ansible-playbook
etansible-doc
. Ansible Core fait le lien entre la communauté open source et l'offre d'automatisation d'entreprise de Red Hat. - Environnements d'exécution - non spécifiquement couverts dans cet atelier car les environnements intégrés incluent déjà toutes les collections prises en charge par Red Hat utilisées ici. Les environnements d'exécution sont des images de conteneurs utilisées pour exécuter Ansible.
- ansible-builder - également non couvert ici, c'est un utilitaire CLI pour automatiser la création d'environnements d'exécution.
Pour plus d'informations sur les nouveaux composants de la plateforme d'automatisation Ansible, vous pouvez consulter cette page https://red.ht/AAP-20.
Rejoignez notre forum communautaire !
Avant de commencer, rejoignez-nous sur https://forum.ansible.com/. Cela vous permettra d'obtenir de l'aide après les ateliers.
Il est fortement recommandé d'utiliser Visual Studio Code pour réaliser les exercices de l'atelier. Visual Studio Code offre :
|
---|
-
Connectez-vous à Visual Studio Code depuis la page de lancement de l'atelier (fournie par votre instructeur). Le mot de passe est indiqué sous le lien WebUI.
-
Entrez le mot de passe fourni pour vous connecter.
-
Ouvrez le répertoire
network-workshop
dans Visual Studio Code : -
Cliquez sur
playbook.yml
pour voir le contenu.
Naviguez jusqu'au répertoire network-workshop
sur le terminal du noeud de contrôle Ansible.
[student@ansible-1 ~]$ cd ~/network-workshop/
[student@ansible-1 network-workshop]$ pwd
/home/student/network-workshop
[student@ansible-1 network-workshop]$
~
- le tilde dans ce contexte est un raccourci pour le répertoire personnel, c'est-à-dire/home/student
cd
- commande Linux pour changer de répertoirepwd
- commande Linux pour afficher le répertoire de travail actuel
Exécutez la commande ansible-navigator
avec l'argument images
pour examiner les environnements d'exécution configurés sur le noeud de contrôle :
$ ansible-navigator images
Note
La sortie que vous voyez peut différer de celle ci-dessus.
Cette commande vous donne des informations sur tous les environnements d'exécution actuellement installés (ou EEs pour "Execution Environments"). Examinez un EE en appuyant sur le numéro correspondant. Par exemple, en appuyant sur 0 dans l'exemple ci-dessus, vous ouvrirez l'environnement d'exécution network-ee
:
La sélection de 2
pour Version et collections Ansible
affichera toutes les collections Ansible installées sur cet EE particulier, ainsi que la version de ansible-core
:
Utilisez Visual Studio Code pour ouvrir ou utilisez la commande cat
pour afficher le contenu du fichier ansible-navigator.yml
. Le fichier est situé dans le répertoire personnel :
$ cat ~/.ansible-navigator.yml
---
ansible-navigator:
ansible:
inventory:
entries:
- /home/student/lab_inventory/hosts
execution-environment:
image: quay.io/acme_corp/network-ee:latest
enabled: true
container-engine: podman
pull:
policy: missing
volume-mounts:
- src: "/etc/ansible/"
dest: "/etc/ansible/"
Notez les paramètres suivants dans le fichier ansible-navigator.yml
:
inventories
: montre l'emplacement de l'inventaire Ansible utiliséexecution-environment
: où l'environnement d'exécution par défaut est défini
Pour une liste complète de toutes les options configurables, consultez la documentation.
La portée d'un play
dans un playbook
est limitée aux groupes d'hôtes déclarés dans un inventaire Ansible. Ansible prend en charge plusieurs types d'inventaire. Un inventaire peut être un simple fichier plat contenant une collection d'hôtes ou un script dynamique (interrogeant potentiellement une base de données CMDB) générant une liste de dispositifs pour exécuter le playbook.
Dans ce laboratoire, vous travaillerez avec un inventaire basé sur fichier au format ini. Utilisez Visual Studio Code pour ouvrir ou utilisez la commande cat
pour afficher le contenu du fichier ~/lab_inventory/hosts
.
$ cat ~/lab_inventory/hosts
[all:vars]
ansible_ssh_private_key_file=~/.ssh/aws-private.pem
[routers:children]
cisco
juniper
arista
[cisco]
rtr1 ansible_host=18.222.121.247 private_ip=172.16.129.86
[arista]
rtr2 ansible_host=18.188.194.126 private_ip=172.17.158.197
rtr4 ansible_host=18.221.5.35 private_ip=172.17.8.111
[juniper]
rtr3 ansible_host=3.14.132.20 private_ip=172.16.73.175
[cisco:vars]
ansible_user=ec2-user
ansible_network_os=ios
ansible_connection=network_cli
[juniper:vars]
ansible_user=ec2-user
ansible_network_os=junos
ansible_connection=netconf
[arista:vars]
ansible_user=ec2-user
ansible_network_os=eos
ansible_connection=network_cli
ansible_become=true
ansible_become_method=enable
[dc1]
rtr1
rtr3
[dc2]
rtr2
rtr4
[control]
ansible ansible_host=13.58.149.157 ansible_user=student private_ip=172.16.240.184
Dans la sortie ci-dessus, chaque [ ]
définit un groupe. Par exemple, [dc1]
est un groupe qui contient les hôtes rtr1
et rtr3
. Les groupes peuvent également être imbriqués. Le groupe [routers]
est un groupe parent du groupe [cisco]
.
Les groupes parents sont déclarés à l'aide de la directive children
. L'imbrication des groupes permet d'attribuer des valeurs plus spécifiques aux variables.
Nous pouvons associer des variables à des groupes et à des hôtes.
Note :
Un groupe appelé all existe toujours et contient tous les groupes et hôtes définis dans un inventaire.
Les variables des hôtes peuvent être définies sur la même ligne que les hôtes eux-mêmes. Par exemple, pour l'hôte rtr1
:
rtr1 ansible_host=18.222.121.247 private_ip=172.16.129.86
rtr1
- Le nom qu'Ansible utilisera. Cela peut, mais ne doit pas, reposer sur le DNS.ansible_host
- L'adresse IP qu'Ansible utilisera. Si elle n'est pas configurée, elle utilisera par défaut le DNS.private_ip
- Cette valeur n'est pas réservée par Ansible, elle sera donc considérée comme une variable d'hôte. Cette variable peut être utilisée par les playbooks ou ignorée.
Les variables de groupe sont déclarées à l'aide de la directive vars
. Les groupes permettent d'attribuer des variables communes à plusieurs hôtes. Plusieurs variables de groupe peuvent être définies sous la section [group_name:vars]
. Par exemple, regardez le groupe cisco
:
[cisco:vars]
ansible_user=ec2-user
ansible_network_os=ios
ansible_connection=network_cli
ansible_user
- L'utilisateur qu'Ansible utilisera pour se connecter à cet hôte. Si elle n'est pas configurée, elle utilisera par défaut l'utilisateur avec lequel le playbook est exécuté.ansible_network_os
- Cette variable est nécessaire lors de l'utilisation du type de connexionnetwork_cli
dans une définition de play.ansible_connection
- Cette variable définit le plugin de connexion pour ce groupe. Elle peut être configurée avec des valeurs telles quenetconf
,httpapi
etnetwork_cli
en fonction des compatibilités de la plateforme réseau.
Nous pouvons également utiliser l'interface utilisateur textuelle (TUI) ansible-navigator
pour explorer l'inventaire.
Exécutez la commande ansible-navigator inventory
pour afficher l'inventaire dans la TUI :
Appuyer sur 0 ou 1 sur votre clavier ouvrira respectivement les groupes ou les hôtes.
Appuyez sur la touche Esc pour remonter d'un niveau, ou vous pouvez zoomer sur un hôte individuel :
Il y a quatre routeurs, nommés rtr1, rtr2, rtr3 et rtr4. Le diagramme réseau est toujours disponible dans la table des matières de l'atelier d'automatisation réseau. Le fichier de configuration SSH (~/.ssh/config
) est déjà configuré sur le nœud de contrôle. Cela signifie que vous pouvez vous connecter en SSH à n'importe quel routeur depuis le nœud de contrôle sans identifiants supplémentaires :
Par exemple, pour se connecter à rtr1 depuis le nœud de contrôle Ansible, tapez :
$ ssh rtr1
Par exemple :
$ ssh rtr1
Warning: Permanently added 'rtr1,35.175.115.246' (RSA) to the list of known hosts.
et utilisez la commande show version
pour vérifier la version de Cisco IOS :
rtr1#show ver
Cisco IOS XE Software, Version 17.14.01a
Cisco IOS Software [IOSXE], Virtual XE Software (X86_64_LINUX_IOSD-UNIVERSALK9-M), Version 17.14.1a, RELEASE SOFTWARE (fc1)
Note
Les ateliers ont récemment été mis à niveau vers Red Hat Enterprise Linux 9, qui utilise une politique cryptographique système plus sécurisée. Si vous rencontrez l'erreur
no mutual signature supported
pour un périphérique réseau Cisco, exécutez la commandesudo update-crypto-policies --set LEGACY
, puis quittez/réouvrez votre terminal pour que la politique prenne effet. Ce problème sera corrigé dans une future version de l'atelier. Veuillez signaler les problèmes sur https://github.com/ansible/workshops
Vous avez terminé l'exercice 1 !
Vous comprenez maintenant :
- Comment se connecter à l'environnement de laboratoire avec Visual Studio Code
- Comment explorer les environnements d'exécution avec
ansible-navigator
- Où se trouve la configuration Ansible Navigator (
ansible-navigator.yml
) - Où est stocké l'inventaire pour les exercices en ligne de commande
- Comment utiliser l'interface utilisateur textuelle (TUI) d'ansible-navigator