Aller au contenu

📖 Cours – Ansible et Terraform

Parcours CCNA – Domaine 6 – module 6-03 (sujet 6.6)

🚀 Pour aller plus loin

Module du parcours CCNA, hors programme E31. Cours théorique : l'examen demande de reconnaître les outils, pas de les installer.

🎯 À la fin de ce cours, tu sauras

  • expliquer la gestion de configuration (configuration management) ;
  • décrire Ansible (playbook, inventaire, sans agent) ;
  • décrire Terraform (infrastructure as code, état) ;
  • comparer les approches impérative et déclarative.

1. Le problème : la dérive de configuration

Quand des équipements sont configurés à la main, ils s'éloignent peu à peu de la référence (configuration drift). La gestion de configuration décrit l'état voulu dans des fichiers et l'applique automatiquement. C'est l'infrastructure as code (IaC) : le réseau se gère comme du code (fichiers versionnés, relus, testés).

2. Impératif ou déclaratif ?

Approche Principe Exemple
Impérative On décrit les étapes à exécuter « Entre dans le switch, tape ces 5 commandes »
Déclarative On décrit l'état final voulu, l'outil trouve comment y arriver « Le VLAN 10 doit exister et s'appeler COMPTA »

Une approche déclarative est idempotente : on peut l'appliquer plusieurs fois, le résultat est le même (pas de doublon).

3. Ansible

Élément Rôle
Inventaire (inventory) La liste des équipements, en groupes
Playbook Fichier YAML qui décrit les tâches à appliquer
Module Une action prête à l'emploi (ex. configurer un VLAN)
Sans agent (agentless) Rien à installer sur l'équipement : connexion par SSH ou API
Mode Surtout « push » : la machine de contrôle pousse les changements
---
- name: Créer le VLAN 10 sur les switchs
  hosts: switchs
  gather_facts: no
  tasks:
    - name: VLAN 10 COMPTA
      cisco.ios.ios_vlans:
        config:
          - vlan_id: 10
            name: COMPTA
        state: merged

4. Terraform

Élément Rôle
Langage HCL Fichiers .tf déclaratifs
Fournisseur (provider) Le « pilote » qui parle à un service (cloud, réseau, ...)
État (state) Fichier qui retient ce qui existe déjà
terraform plan Montre ce qui va changer
terraform apply Applique le changement

Terraform sert surtout à créer l'infrastructure (réseaux virtuels, machines, pare-feu dans le cloud). Ansible sert surtout à configurer ce qui existe.

5. Comparaison

Ansible Terraform
Rôle principal Configurer des équipements Provisionner l'infrastructure
Langage YAML HCL
Agent Aucun Aucun
Style Plutôt procédural (tâches) Déclaratif
Mémoire de l'état Non (on interroge l'équipement) Oui (fichier d'état)

✍️ Quiz de fin

1. Que signifie « sans agent » pour Ansible ?

Voir la réponse

Aucun logiciel à installer sur l'équipement : Ansible s'y connecte en SSH ou par API.

2. Quelle commande Terraform montre les changements prévus ?

Voir la réponse

terraform plan.

3. Pourquoi l'approche déclarative est-elle « idempotente » ?

Voir la réponse

On décrit un état final : l'appliquer plusieurs fois donne le même résultat.

4. Quel outil pour créer des réseaux virtuels dans le cloud ?

Voir la réponse

Terraform.

🛠️ Mini-activité sur papier

Écris, en YAML, un playbook qui crée le VLAN 20 nommé ATELIER sur un groupe switchs (inspire-toi de l'exemple). Puis explique ce qui se passe si tu l'exécutes deux fois.