Skip to content

Automatiser la gestion des serveurs avec Ansible

Picture of mindtech

mindtech

Biographical Info

In this article

Get fresh finance insights, monthly

Time and money-saving tips, straight to your inbox

No comment yet, add your voice below!


Add a Comment

Your email address will not be published. Required fields are marked *

Introduction

Dans un contexte où les infrastructures informatiques deviennent de plus en plus complexes et distribuées, l’automatisation de la gestion des serveurs s’impose comme une nécessité. Ansible, un outil open source développé par Red Hat, permet de déployer, configurer et gérer des systèmes à grande échelle de manière déclarative et reproductible. Il offre une approche agentless, basée sur SSH, qui simplifie considérablement la gestion des systèmes Linux, notamment les distributions Red Hat Enterprise Linux (RHEL).

Dans cet article, nous explorerons comment automatiser trois aspects fondamentaux de l’administration système sur RHEL : la gestion des mises à jour (patching), la création d’utilisateurs et la configuration réseau, en utilisant un playbook Ansible centralisé.

Pourquoi automatiser avec Ansible ?

Ansible s’est imposé dans l’écosystème DevOps grâce à sa simplicité, sa syntaxe en YAML facilement lisible, et sa capacité à s’intégrer dans des workflows CI/CD. D’après Red Hat, plus de 75 % des entreprises clientes adoptent Ansible pour automatiser la configuration des serveurs, le déploiement d’applications et la gestion du cycle de vie des systèmes (source : Red Hat).

Les principaux avantages incluent :

  • Réduction des erreurs humaines
  • Auditabilité et traçabilité des actions
  • Reproductibilité sur plusieurs environnements (dev, test, prod)
  • Sans agent : aucune installation sur les machines gérées

Structure d’un playbook Ansible pour RHEL

Un playbook Ansible est un fichier YAML qui définit une ou plusieurs tâches à exécuter sur un ou plusieurs hôtes. Voici les composantes clés d’un playbook orienté RHEL :

1. Gestion des mises à jour de sécurité

L’application régulière des correctifs de sécurité est critique pour la résilience système. Ansible permet de le faire via les modules dnf ou yum selon la version de RHEL :

- name: Appliquer les mises à jour de sécurité
  hosts: rhel_servers
  become: yes
  tasks:
    - name: Mise à jour des paquets
      dnf:
        name: '*'
        state: latest
        security: yes
  

💡 Pour limiter aux mises à jour de sécurité uniquement, RHEL doit disposer du dépôt RHSA actif.

2. Création d’utilisateurs système

La gestion centralisée des comptes via Ansible réduit les incohérences et facilite la conformité :

- name: Création d’utilisateurs
  hosts: rhel_servers
  become: yes
  vars:
    users:
      - name: devops
        uid: 1050
        group: devops
      - name: audit
        uid: 1051
        group: audit
  tasks:
    - name: Ajouter un groupe
      group:
        name: "{{ item.group }}"
        state: present
      loop: "{{ users }}"

    - name: Créer l’utilisateur
      user:
        name: "{{ item.name }}"
        uid: "{{ item.uid }}"
        group: "{{ item.group }}"
        shell: /bin/bash
      loop: "{{ users }}"
  

⚠️ Toujours valider les UID/GID pour éviter les conflits systèmes.

3. Configuration réseau statique

Ansible peut gérer les interfaces réseau de manière idempotente avec nmcli ou via le module community.general.nmcli :

- name: Configurer une interface réseau
  hosts: rhel_servers
  become: yes
  tasks:
    - name: Activer une IP statique sur eth0
      community.general.nmcli:
        conn_name: eth0
        ifname: eth0
        type: ethernet
        ip4: 192.168.1.100/24
        gw4: 192.168.1.1
        state: present
        autoconnect: yes
  

💡 Nécessite l’installation de la collection ansible-galaxy collection install community.general.

Intégration des rôles et bonnes pratiques

Plutôt que de gérer l’ensemble des tâches dans un seul fichier, il est recommandé d’utiliser les rôles Ansible, qui permettent de structurer le code en modules réutilisables. Cette approche facilite la maintenance et l’évolutivité.

Bonnes pratiques :

  • Versionner vos scripts dans un dépôt Git
  • Utiliser des variables inventoriées par environnement
  • Adopter des handlers pour les redémarrages conditionnels
  • Valider vos playbooks avec ansible-lint et ansible-playbook --check

Supervision de l’exécution

Ansible fournit un retour détaillé sur chaque tâche exécutée. Pour monitorer les exécutions à grande échelle, des interfaces comme Ansible Tower (ou sa version open-source AWX) permettent un contrôle plus granulaire, des permissions par rôle et des tableaux de bord centralisés (documentation officielle).

Conclusion

Automatiser la gestion des serveurs Red Hat avec Ansible permet de renforcer la sécurité, d’assurer la cohérence des configurations et d’accélérer les déploiements. Grâce à des playbooks bien structurés, les équipes Ops gagnent en agilité tout en conservant un haut niveau de contrôle.

En complément, les organisations peuvent envisager d’intégrer Ansible dans leurs pipelines GitOps ou CI/CD pour orchestrer des déploiements plus vastes, supportés par des tests automatisés, une documentation centralisée et une supervision continue.

Don't miss these

Procédure

Configurer Red Hat Satellite pour le patch management

Procédure

Déploiement d’un cluster Kubernetes avec OpenShift

Procédure

Configurer SELinux pour les services web