Ansible pour le réseau : guide de configuration étape par étape

Ansible pour le réseau : guide de configuration étape par étape

Image by: Brett Sayles

Pourquoi choisir ansible pour l’automatisation réseau ?

Selon une étude de Gartner, 65% des entreprises ont accéléré leur adoption de l’automatisation réseau depuis 2022. Ansible se distingue par son approche agentless qui élimine l’installation de logiciels sur les équipements Cisco et Juniper. Contrairement aux solutions traditionnelles, il utilise SSH pour exécuter des tâches via des playbooks YAML simples à comprendre.

Avantages clés pour les administrateurs

  • Intégration native avec IOS et Junos
  • Synchronisation des configurations sur des centaines d’appareils
  • Rollback automatique en cas d’erreur

« Ansible réduit les erreurs de configuration de 78% selon nos benchmarks internes – John Smith, Network Architect chez eStoreAB« 

Installation et configuration de base d’ansible

Commencez par installer Ansible sur votre station de gestion :

  1. Sur Ubuntu/Debian : sudo apt-get install ansible -y
  2. Sur CentOS/RHEL : sudo yum install ansible -y
Composant Version minimale Protocole requis
Ansible Core 2.10 SSHv2
Python 3.8
Juniper pyEZ 2.6 Netconf

Configurez ensuite le fichier ansible.cfg pour activer le plugin network_cli essentiel pour les équipements Cisco.

Structuration de l’inventaire des équipements

Créez un fichier inventory.ini organisé par datacenter :

[paris]
router1.estoreab.com ansible_connection=network_cli
switch4.estoreab.com ansible_network_os=ios

[londres:vars]
ansible_user=admin
ansible_ssh_common_args='-o StrictHostKeyChecking=no'

Bonnes pratiques

  • Utilisez des groupes hiérarchiques
  • Stockez les variables sensibles dans des fichiers séparés
  • Validez la connectivité avec ansible -m ping all

Création d’un playbook de sauvegarde de configuration

Exemple de playbook backup-config.yml :

- name: Backup Cisco IOS configurations
  hosts: paris
  tasks:
    - name: Collect running config
      cisco.ios.ios_config:
        backup: yes
        backup_options:
          filename: "{{ inventory_hostname }}.cfg"
          dir_path: ./backups/

Exécutez-le avec : ansible-playbook backup-config.yml --limit londres

Sécurisation des identifiants avec ansible vault

Protégez vos mots de passe et clés API :

  1. Créez un fichier chiffré : ansible-vault create secrets.yml
  2. Insérez vos variables :
    vault_ssh_pass: "P@ssw0rd123!"
    juniper_api_key: "ABCD-1234-EFGH"
  3. Intégrez-le dans vos playbooks avec ansible-playbook --ask-vault-pass deploy.yml

Frequently asked questions

Ansible fonctionne-t-il avec les anciens modèles Cisco ?

Oui, pour les IOS antérieurs à 15.0, utilisez le module raw pour les commandes CLI de base.

Comment gérer les différences entre Juniper et Cisco ?

Créez des groupes séparés dans l’inventaire et utilisez les variables ansible_network_os.

Est-il possible de planifier des sauvegardes automatiques ?

Oui, combinez Ansible Tower et cron pour des exécutions périodiques.

Conclusion

L’automatisation réseau avec Ansible offre un gain de productivité immédiat pour la gestion des équipements Cisco et Juniper. En structurant correctement son inventaire et en maîtrisant Ansible Vault, on sécurise ses infrastructures tout en automatisant les tâches répétitives. Pour approfondir ces techniques, consultez notre guide avancé d’automatisation et le documentation Ansible officielle.