
Image by: Brett Sayles
« `html
Pourquoi automatiser la gestion réseau avec ansible ?
Saviez-vous que 78% des pannes réseau sont causées par des erreurs de configuration manuelle selon Gartner ? Dans cet univers complexe, Ansible émerge comme un outil révolutionnaire pour les administrateurs système et réseau. Ce guide pas-à-pas vous accompagne dans le déploiement de votre premier playbook Ansible pour configurer des équipements Cisco et Juniper. Vous apprendrez à structurer votre inventaire, écrire des playbooks pour modifier des VLANs, et sécuriser vos accès avec Ansible Vault. L’accent sera mis sur les méthodes de validation pour éviter les erreurs coûteuses. Que vous gériez cinq ou cinq cents switchs, ces compétences transformeront votre quotidien.
Préparer son environnement de travail
Avant d’écrire votre premier playbook Ansible, installez les prérequis sur votre station de contrôle (Linux recommandé) :
- Python 3.8+ et pip
- Le paquet Ansible-core (
pip install ansible-core) - Les collections réseau pour Cisco (ansible.netcommon) et Juniper (juniper.device)
Créez une arborescence de projet claire :
projet_ansible/ ├── inventories/ ├── playbooks/ ├── group_vars/ └── roles/
Testez la connectivité SSH vers vos équipements avec des commandes manuelles. Pour Cisco IOS, activez SCP avec ip scp server enable. Pour Juniper Junos, vérifiez le service netconf. Consultez la documentation officielle Ansible pour les prérequis spécifiques.
Modules essentiels pour Cisco et Juniper
Ansible utilise des modules dédiés :
- Cisco IOS : ios_config, ios_vlan, ios_command
- Juniper Junos : junos_config, junos_vlan, junos_command
Configurer le fichier d’inventaire des équipements
Votre fichier d’inventaire (inventories/production.ini) structure les équipements par groupes. Exemple :
[switchs_core] switch1.example.com ansible_connection=ansible.netcommon.network_cli ansible_network_os=ios switch2.example.com [switchs_acces:children] switchs_core [switchs_juniper] fw_master ansible_connection=juniper.device.junos ansible_host=192.168.1.10
Définissez les variables groupées dans group_vars/switchs_core.yml :
ansible_user: admin
ansible_ssh_pass: "{{ vault_switchs_password }}"
ansible_become_pass: "{{ vault_enable_password }}"
Utilisez des noms DNS ou des IP fixes. Pour les environnements hybrides, séparez les groupes par constructeur comme le montre notre guide avancé.
Écrire votre premier playbook ansible pour les VLANs
Créez playbooks/vlan_config.yml avec cette structure :
---
- name: Configuration VLANs sur les switchs Cisco et Juniper
hosts: all
gather_facts: false
tasks:
- name: Créer VLAN 100 sur Cisco IOS
cisco.ios.ios_vlan:
vlan_id: 100
name: Serveurs
state: present
when: ansible_network_os == 'ios'
- name: Appliquer VLAN 200 sur Juniper Junos
junipernetworks.junos.junos_vlans:
name: vlan-200
vlan_id: 200
description: Imprimantes
when: ansible_network_os == 'junos'
Exécutez en mode test avec ansible-playbook -i inventories/production.ini playbooks/vlan_config.yml --check pour simuler les changements. Cette approche idempotente garantit que la configuration reste cohérente.
Gestion des erreurs critiques
Implémentez des blocs rescue pour annuler les changements en cas d’échec :
- name: Configuration sécurisée
block:
- name: Appliquer config VLAN
ios_config:
lines:
- vlan 300
- name Backup
rescue:
- name: Restaurer config précédente
ios_config:
backup: yes
save_when: changed
Sécuriser les accès avec ansible vault
Ansible Vault chiffre les données sensibles comme les mots de passe. Créez un fichier vault :
ansible-vault create group_vars/vault.yml
Contenu type :
vault_switchs_password: s3cretP@ss vault_enable_password: sup3rPriv!lege
Incluez-le dans vos playbooks avec ansible-playbook --ask-vault-pass playbook.yml. Pour les environnements de production, utilisez des fichiers de variables chiffrés par équipement. Stockez le mot de passe vault dans un gestionnaire sécurisé comme HashiCorp Vault. Découvrez nos méthodes de chiffrement avancées.
Bonnes pratiques de validation pré-déploiement
Validez systématiquement vos playbooks avant déploiement :
- Exécutez en mode
--check --diffpour prévisualiser les changements - Testez dans un environnement sandbox (Eve-NG ou GNS3)
- Utilisez Molecule pour des tests unitaires automatisés
- Vérifiez la syntaxe avec
ansible-lint
Implémentez un pipeline CI/CD avec des étapes de validation :
| Étape | Outil | Action critique |
|---|---|---|
| Pré-validation | Ansible Lint | Détection d’erreurs de syntaxe |
| Test unitaire | Molecule | Simulation sur conteneurs réseau |
| Test d’intégration | Jenkins | Déploiement en lab physique |
| Rollback automatique | Ansible rescue | Si taux d’erreur > 0.5% |
Pour les configurations critiques, utilisez le module ios_config avec l’option confirm: 60 pour annuler automatiquement les changements non validés. Cette méthodologie réduit les risques d’outages réseau.
Frequently asked questions
Comment gérer les différents OS réseau dans un même playbook Ansible ?
Utilisez la variable ansible_network_os définie dans l’inventaire avec des conditions when. Créez des rôles Ansible séparés pour chaque constructeur et utilisez des variables spécifiques par groupe. Exemple : when: ansible_network_os == 'ios' pour les tâches Cisco.
Ansible Vault est-il suffisant pour sécuriser les accès en production ?
Ansible Vault protège les données au repos mais doit être complété par d’autres mesures : rotation régulière des mots de passe, utilisation de comptes API limités, et intégration avec des solutions comme CyberArk. Pour les environnements sensibles, préférez l’authentification par certificats.
Peut-on utiliser Ansible pour des équipements autres que Cisco et Juniper ?
Absolument ! Ansible propose des collections pour Arista EOS, Palo Alto, F5 BIG-IP et plus de 50 plateformes via Ansible Galaxy. La logique de playbook reste similaire, seuls les modules spécifiques changent.
Comment auditer les changements effectués par Ansible ?
Activez le logging détaillé avec log_path dans ansible.cfg. Utilisez des outils comme Rundeck ou Junos Telemetry pour tracer les modifications. Toujours sauvegarder les configs pré/post changement avec le module ios_config et son option backup.
Conclusion
Déployer son premier playbook Ansible pour les équipements Cisco et Juniper marque un tournant vers l’automatisation réseau efficace. En structurant rigoureusement l’inventaire, écrivant des playbooks idempotents, sécurisant les accès avec Vault et validant systématiquement les configurations, vous réduirez les erreurs opérationnelles jusqu’à 72% selon une étude Forrester. Commencez par automatiser des tâches simples comme la gestion des VLANs avant de passer à des workflows complexes. Besoin d’approfondir ? Découvrez nos formations avancées incluant des templates de playbooks pour BGP et la QoS. L’automatisation n’est plus une option mais une nécessité stratégique – votre premier playbook est le point de départ d’une transformation majeure.
« `
