Tutoriel Ansible : automatiser la configuration de switchs en 2026

Tutoriel Ansible : automatiser la configuration de switchs en 2026

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 :

  1. Exécutez en mode --check --diff pour prévisualiser les changements
  2. Testez dans un environnement sandbox (Eve-NG ou GNS3)
  3. Utilisez Molecule pour des tests unitaires automatisés
  4. 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.

« `