Lisez ceci dans d’autres langues : English,
日本語,
Français.
Démontrer l’utilisation des Modules de Ressources Réseau Ansible
Les modules de ressources réseau Ansible simplifient et standardisent la gestion de différents dispositifs réseau. Ces dispositifs séparent la configuration en sections (comme les interfaces et les VLANs) qui s’appliquent à un service réseau.
Les modules de ressources réseau offrent une expérience cohérente sur différents dispositifs réseau. Cela signifie que vous obtenez une expérience identique avec plusieurs fournisseurs. Par exemple, le module snmp_server fonctionnera de manière identique pour les modules suivants :
arista.eos.snmp_server
cisco.ios.snmp_server
cisco.nxos.snmp_server
cisco.iosxr.snmp_server
junipernetworks.junos.snmp_server
Configurer SNMP sur des dispositifs réseau est une tâche très courante, et les erreurs de configuration peuvent entraîner des problèmes de surveillance. Les configurations SNMP ont tendance à être identiques sur plusieurs commutateurs réseau, ce qui constitue un cas d’utilisation idéal pour l’automatisation.
Cet exercice couvrira :
state: merged
state: gathered
Connectez-vous à un routeur Cisco IOS et vérifiez la configuration SNMP actuelle.
Depuis le terminal du nœud de contrôle, vous pouvez utiliser ssh rtr2
et taper enable
[student@ansible-1 ~]$ ssh rtr1
rtr1#
Utilisez la commande show snmp
pour examiner la configuration SNMP :
rtr1#show snmp
%SNMP agent not enabled
Utilisez show run | s snmp
pour examiner la configuration en cours du Cisco :
rtr1#sh run | s snmp
rtr1#
Comme vous pouvez le voir, il n’y a aucune configuration SNMP sur le routeur Cisco.
Créez un nouveau fichier dans Visual Studio Code nommé resource.yml
Copiez le playbook Ansible suivant dans resource.yml
---
- name: Configurer SNMP
hosts: cisco
gather_facts: false
tasks:
- name: Utiliser le module de ressource SNMP
cisco.ios.ios_snmp_server:
state: merged
config:
location: 'Durham'
packet_size: 500
communities:
- acl_v4: acl_uq
name: Durham-community
rw: true
- acl_v4: acl_uq
name: ChapelHill-community
rw: true
Examinons d’abord les quatre premières lignes :
---
- name: configurer SNMP
hosts: cisco
gather_facts: false
Pour la deuxième partie, nous avons une tâche qui utilise cisco.ios.snmp_server
tasks:
- name: Utiliser le module de ressource SNMP
cisco.ios.ios_snmp_server:
state: merged
config:
location: 'Durham'
packet_size: 500
communities:
- acl_v4: acl_uq
name: Durham-community
rw: true
- acl_v4: acl_uq
name: ChapelHill-community
rw: true
name:
- comme pour le play, chaque tâche a une description.state: merged
- Ce comportement par défaut des modules de ressource garantit que la configuration fournie existe sur le dispositif réseau.config:
- la configuration SNMP fournie. Si le module changeait de cisco.ios.snmp_server
à junipernetworks.junos.snmp_server
, cela fonctionnerait identiquement.Exécutez le playbook avec ansible-navigator run
. Comme il n’y a qu’une tâche, utilisez --mode stdout
$ ansible-navigator run resource.yml --mode stdout
La sortie ressemblera à ceci :
PLAY [Configurer SNMP] **********************************************************
TASK [Utiliser le module de ressource SNMP] ***************************
changed: [rtr1]
PLAY RECAP *********************************************************************
rtr1 : ok=1 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
Connectez-vous à un commutateur Cisco et vérifiez la configuration SNMP.
Depuis le terminal du nœud de contrôle, utilisez ssh rtr1
Utilisez la commande show snmp
pour examiner la configuration SNMP :
rtr1#show snmp
Chassis: 99SDJQ9I6WK
Location: Durham
SNMP global trap: disabled
Utilisez show run | s snmp
pour examiner la configuration en cours :
rtr1#show run | s snmp
snmp-server community Durham-community RW acl_uq
snmp-server community ChapelHill-community RW acl_uq
snmp-server packetsize 500
snmp-server location Durham
Comme vous pouvez le voir, le module de ressource a configuré le dispositif réseau Cisco IOS-XE avec la configuration fournie.
Créez un nouveau playbook nommé gathered.yml
---
- name: Récupérer la configuration SNMP
hosts: cisco
gather_facts: false
tasks:
- name: Utiliser le module de ressource SNMP
cisco.ios.ios_snmp_server:
state: gathered
register: snmp_config
- name: Copier snmp_config dans un fichier
ansible.builtin.copy:
content: ""
dest: "/_snmp.yml"
mode: "644"
La première tâche est identique sauf que state: merged
a été remplacé par state: gathered
. config
n’est plus nécessaire car nous lisons la configuration.
La seconde tâche copie la variable snmp_config
dans un fichier plat.
Le | to_nice_yaml
est un filtre qui transforme la sortie JSON en YAML.
Exécutez le playbook avec ansible-navigator run
$ ansible-navigator run gathered.yml --mode stdout
Ouvrez les nouveaux fichiers créés qui ont récolté
la configuration SNMP à partir du(des) appareil(s) réseau Cisco.
Les fichiers ont été stockés sous le nom de l’appareil, par exemple pour rtr1 : `~/network-workshop/rtr1_snmp.yml.
$ cat rtr1_snmp.yml
changed: false
failed: false
gathered:
communities:
- acl_v4: acl_uq
name: ChapelHill-community
rw: true
- acl_v4: acl_uq
name: Durham-community
rw: true
location: Durham
packet_size: 500
Le Playbook Ansible final est fourni ici comme référence :
Vous avez terminé cet exercice de laboratoire.
Cliquez ici pour retourner au Workshop d’Automatisation de Réseaux Ansible