ADR-001 : Utiliser Ansible pour provisionner et configurer le VPS
Statut
Section titled “Statut”Accepté
- Date : 01/07/2026
- Auteur : Corentin Talour
Cet ADR a été rédigé a posteriori afin de documenter une décision
Contexte et problème
Section titled “Contexte et problème”La configuration manuelle du VPS rendait sa maintenance difficile.
Les opérations réalisées n’étaient pas toujours documentées précisément,ce qui compliquait leur reproduction lors de l’installation d’un nouveau serveur ou de la restauration de l’infrastructure après un incident.
L’infrastructure doit pouvoir être configurée de manière :
- reproductible
- idempotente
- documentée
- compréhensible par plusieurs administrateurs
- simple à faire évoluer
Options considérées
Section titled “Options considérées”Option 1 : Configurer le VPS manuellement
Section titled “Option 1 : Configurer le VPS manuellement”Installer et configurer chaque composant manuellement, puis documenter les commandes et les opérations réalisées.
Cette approche est simple pour une première installation, mais elle présente un risque d’oubli, d’erreur humaine et de divergence entre la documentation et l’état réel du serveur.
Option 2 : Automatiser la configuration avec Ansible (choisi)
Section titled “Option 2 : Automatiser la configuration avec Ansible (choisi)”Décrire la configuration attendue du VPS dans des playbooks et des rôles Ansible versionnés dans Git.
La documentation complète l’automatisation en expliquant l’architecture, les variables disponibles et les procédures d’exploitation.
Option 3 : Automatiser la configuration avec Salt Project
Section titled “Option 3 : Automatiser la configuration avec Salt Project”Utiliser Salt Project pour gérer la configuration du serveur.
Salt offre également des fonctions de gestion de configuration et d’automatisation. Son architecture et son écosystème sont cependant moins adaptés aux connaissances actuelles de l’équipe et à la taille de cette infrastructure.
Décision
Section titled “Décision”Ansible est retenu pour préparer et configurer le VPS.
Ce choix repose sur les éléments suivants :
- son fonctionnement sans agent sur le serveur cible
- l’utilisation de fichiers YAML relativement simples à lire
- la possibilité de construire des rôles réutilisables et idempotents
- son intégration avec SSH et
sudo - son écosystème et son adoption dans l’industrie
- la possibilité de versionner la configuration de l’infrastructure dans Git
- l’intérêt pédagogique de développer les compétences de l’équipe sur Ansible
La création initiale du VPS chez l’hébergeur ne fait actuellement pas partie du périmètre automatisé. Ansible intervient une fois qu’un serveur Ubuntu accessible en SSH est disponible.
Conséquences
Section titled “Conséquences”Positives
Section titled “Positives”- la configuration du VPS est reproductible
- les changements apportés à l’infrastructure sont versionnés
- le risque d’oubli lors d’une réinstallation est réduit
- les rôles peuvent être exécutés plusieurs fois grâce à leur idempotence
- un nouveau serveur peut être configuré plus rapidement
- l’équipe développe ses compétences sur Ansible
Négatives
Section titled “Négatives”- la mise en place initiale demande plus de temps qu’une configuration manuelle ponctuelle
- l’équipe doit apprendre et maintenir Ansible
- les rôles doivent être testés et mis à jour avec les services qu’ils gèrent
- une automatisation incorrecte peut propager rapidement une mauvaise configuration
- certaines opérations exceptionnelles peuvent encore nécessiter une intervention manuelle