Exercice 1 - Exploration de l’environnement de laboratoire

Lisez ceci dans d’autres langues : uk English, japan 日本語, Español Español, Français Français.

Table des matières

Objectif

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 :

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.

Diagramme

Red Hat Ansible Automation

Guide

Étape 1 - Connexion via VS Code

Il est fortement recommandé d'utiliser Visual Studio Code pour réaliser les exercices de l'atelier. Visual Studio Code offre :
  • Un explorateur de fichiers
  • Un éditeur de texte avec mise en surbrillance de la syntaxe
  • Un terminal intégré
Un accès SSH direct est disponible en solution de secours, ou si Visual Studio Code ne convient pas. Une courte vidéo YouTube est disponible pour plus de clarté : Ansible Workshops - Accéder à votre environnement de travail.

Étape 2 - Utilisation du terminal

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]$

Étape 3 - Examen des environnements d’exécution

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

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 :

menu principal 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 :

info ee

Étape 4 - Examen de la configuration d’ansible-navigator

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 :

Pour une liste complète de toutes les options configurables, consultez la documentation.

Étape 5 - Examen de l’inventaire

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

Étape 6 - Compréhension de l’inventaire

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

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

Étape 7 - Utilisation d’ansible-navigator pour explorer l’inventaire

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 :

ansible-navigator tui

Appuyer sur 0 ou 1 sur votre clavier ouvrira respectivement les groupes ou les hôtes.

groupes ansible-navigator

Appuyez sur la touche Esc pour remonter d’un niveau, ou vous pouvez zoomer sur un hôte individuel :

ansible-navigator hôte

Étape 8 - Connexion aux périphériques réseau

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 commande sudo 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

Conclusion

Vous avez terminé l’exercice 1 !

Vous comprenez maintenant :


Exercice suivant

Retour à l’atelier d’automatisation réseau Ansible