DevOps
Infrastructure

Automatiser la configuration de vos serveurs avec Ansible

6 juillet 2025

3 min de lecture

Ansible est un outil d’automatisation Open Source très puissant, conçu pour simplifier la gestion et la configuration de flottes de serveurs. Grâce à sa syntaxe YAML et à son architecture sans agent, Ansible vous permet de déployer des configurations reproductibles, idempotentes et traçables en quelques lignes de code.

Prérequis

  • Une machine de contrôle (Linux, macOS ou WSL)
  • Accès SSH (clé publique) vers vos serveurs
  • Python 3 installé sur la machine de contrôle
  • Droits sudo sur les nœuds gérés

Pour une gestion d'infrastructure complète, complétez Ansible avec Terraform IaC pour provisionner vos ressources cloud. Pour déboguer les playbooks, consultez notre guide complet des logs Linux.

Installation d’Ansible

1. Mise à jour du système
sudo apt update && sudo apt upgrade -y
2. Installation via le dépôt officiel
sudo apt install software-properties-common
sudo add-apt-repository --yes --update ppa:ansible/ansible
sudo apt install ansible -y
3. Vérification de la version
ansible --version

Vous devriez obtenir une sortie similaire à :

ansible 2.17.5
  config file = /etc/ansible/ansible.cfg
  python version = 3.10.12 (default, ... )

Configuration de l’inventaire

L’inventaire définit les hôtes et groupes de serveurs que vous allez gérer. Exemple de fichier hosts.ini :

[web]
web1.example.com
web2.example.com

[db]
db1.example.com

[all:vars]
ansible_user=deploy
ansible_python_interpreter=/usr/bin/python3

Écriture d’un playbook

Un playbook Ansible regroupe des tâches à exécuter sur vos nœuds. Exemple : installation de Nginx sur le groupe web.

---
- name: Déployer Nginx sur les serveurs web
  hosts: web
  become: yes

  tasks:
    - name: Installer le paquet Nginx
      apt:
        name: nginx
        state: present
        update_cache: yes

    - name: Copier le fichier de configuration
      template:
        src: templates/nginx.conf.j2
        dest: /etc/nginx/nginx.conf
        mode: '0644'
      notify: Redémarrer Nginx

  handlers:
    - name: Redémarrer Nginx
      service:
        name: nginx
        state: restarted

Exécution du playbook

ansible-playbook -i hosts.ini deploy-nginx.yml
  • -i hosts.ini : chemin vers votre inventaire
  • deploy-nginx.yml : nom de votre playbook

Bonnes pratiques

  1. Structurer votre projet :
    ansible/
    ├── hosts.ini
    ├── group_vars/
    │   └── all.yml
    ├── host_vars/
    ├── roles/
    │   └── nginx/
    │       ├── tasks/
    │       ├── templates/
    │       └── defaults/
    └── playbooks/
        └── deploy-nginx.yml
    
  2. Utiliser les rôles pour réutiliser facilement des modules.
  3. Versionner votre répertoire Ansible avec Git.
  4. Tester vos playbooks en local (Vagrant, Docker…).
  5. Documenter chaque playbook et rôle pour vos équipes.

Avantages clés

  • Idempotence : exécution répétable sans effets secondaires indésirables
  • Sans agent : SSH suffit, pas de daemon supplémentaire
  • Extensible : modules Python, plugins, collections
  • Communauté active : milliers de rôles disponibles sur Ansible Galaxy

Limites

  • Courbe d’apprentissage pour les gros projets
  • Performance sur très grands inventaires (scalabilité limitée)
  • Dépendance à SSH et Python sur les nœuds

Conclusion

Ansible vous offre un moyen rapide et fiable pour automatiser la configuration de vos serveurs, réduire les erreurs humaines et gagner en productivité. Que vous administriez quelques machines ou des milliers, sa simplicité et sa flexibilité en font un pilier de l’infrastructure as code.

Besoin d'aide sur ce sujet ?

Notre équipe d'experts est là pour vous accompagner dans vos projets d'infrastructure et d'infogérance.

Contactez-nous

Articles similaires