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
etansible-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.
No comment yet, add your voice below!