Votre panier est vide!
Ansible Role : Docker Engine
Rôle Ansible pour installer Docker en production : configuration daemon.json sécurisée, SDK Python, gestion des utilisateurs, proxy systemd, métriques Prometheus et nettoyage Cron automatique. Compatible Debian 12/13 & Ubuntu 22.04/24.04
Description
⚡ Passez à la vitesse supérieure dans la gestion de vos conteneurs !
Le rôle Ansible docker_engine est bien plus qu’un simple script d’installation. C’est une solution complète et éprouvée, conçue pour déployer Docker en production avec confiance, stabilité et sécurité. Fini les configurations manuelles fastidieuses et les erreurs imprévues : ce rôle automatise tout pour vous.
✨ Fonctionnalités Clés
- 🚀 Fiabilité Maximale en CI/CD : Testé et validé avec Molecule, ce rôle inclut des correctifs essentiels pour garantir un fonctionnement stable et idempotent dans les environnements Docker-in-Docker (DinD), un cauchemar fréquent pour les pipelines d’intégration continue.
- 💻 Large Compatibilité d’OS : Déployez sans effort sur les systèmes les plus populaires : Debian 12 (Bookworm), Debian 13 (Trixie), Ubuntu 22.04 LTS (Jammy) et Ubuntu 24.04 LTS (Noble).
- 🛡️ Configuration Sécurisée et Non Destructive : Met à jour le fichier
/etc/docker/daemon.jsonintelligemment via une fusion JSON, préservant ainsi vos configurations existantes. - 💾 Stockage Dédié (Data-Root) : Déplacez facilement le répertoire de stockage de Docker (
/var/lib/docker) vers un disque ou un montage dédié pour de meilleures performances et une gestion simplifiée. - 👥 Gestion Fine des Utilisateurs : Ajoutez automatiquement des utilisateurs au groupe
dockerpour leur permettre d’exécuter des commandes sans avoir besoin desudo. - 🔗 Prêt pour l’Orchestration : Installe le SDK Python pour Docker, indispensable pour utiliser les puissants modules Ansible
community.docker.*et automatiser la gestion de vos conteneurs, images et réseaux. - 🌐 Gestion Simplifiée du Proxy : Configure proprement les proxys
HTTP_PROXYetHTTPS_PROXYvia les fichiers systemd drop-in, la méthode recommandée pour une intégration parfaite avec le système. - ⚙️ Bonnes Pratiques Intégrées : Active par défaut des fonctionnalités essentielles comme la rotation des logs et le « Live Restore » (pour des mises à jour du daemon sans arrêter les conteneurs). Activez les métriques Prometheus en une seule variable !
- 🧹 Maintenance Automatisée : Inclut une tâche Cron quotidienne qui nettoie les ressources Docker inutilisées (images, conteneurs arrêtés, réseaux), libérant de l’espace disque et maintenant votre système propre.
⚙️ Configuration & Usage
Prérequis
- Système d’exploitation : Debian 12/13 ou Ubuntu 22.04/24.04.
- Ansible : Installé sur votre machine de contrôle.
- Privilèges : Un utilisateur avec des droits
sudosur les serveurs cibles (become: truedans votre playbook).
Exemple de Playbook (votre_playbook.yml)
---
- hosts: all
become: true
vars:
# Liste des utilisateurs à ajouter au groupe 'docker' (ex: ['jenkins', 'admin'])
docker_users:
- "dev_user"
- "ci_service"
# Installer le SDK Python (nécessaire pour utiliser les modules Ansible 'community.docker')
docker_install_pip_sdk: true
# configuration proxy (systemd)
# Décommenter si nécessaire
# docker_http_proxy: "http://proxy.monentreprise.com:8080"
# docker_https_proxy: "http://proxy.monentreprise.com:8080"
# docker_no_proxy: "localhost,127.0.0.1,.lan"
# Stockage des données (ex: "/mnt/data/docker-data"). Laisser vide pour par défaut (/var/lib/docker)
docker_data_root: "/mnt/data/docker-storage"
# configuration daemon.json
# DNS & Registres (Vos besoins spécifiques)
docker_insecure_registries:
- "registry.interne.lan:5000"
docker_dns_servers:
- "10.1.1.1" # DNS interne primaire
- "1.1.1.1"
# Logs (Rotation pour éviter la saturation disque)
docker_log_driver: "json-file"
docker_log_opts_max_size: "10m"
docker_log_opts_max_file: "3"
# Haute Disponibilité & Métriques
docker_live_restore: true
docker_enable_metrics: true
docker_metrics_addr: "127.0.0.1:9323"
# Nettoyage Automatique (cron)
docker_prune_enabled: true
docker_prune_hour: "3"
docker_prune_minute: "0"
docker_prune_arguments: "--all --force --filter 'until=24h'"
roles:
- role: devops_store.docker_engine
Exemple d’Inventaire (votre_inventaire)
[debian_servers] debian-trixie-01 ansible_host=192.168.1.10 debian-bookworm-02 ansible_host=192.168.1.11 [ubuntu_servers] ubuntu-noble-01 ansible_host=192.168.1.20 ubuntu-jammy-02 ansible_host=192.168.1.21 [all:vars] # Configuration générale appliquée à tous les serveurs docker_dns_servers=["1.1.1.1", "9.9.9.9"] docker_enable_metrics=True docker_prune_enabled=True [behind_proxy] # Machines nécessitant un proxy pour accéder à l'extérieur debian-trixie-01 ubuntu-jammy-02 [behind_proxy:vars] docker_http_proxy="http://proxy.monentreprise.com:8080" docker_https_proxy="http://proxy.monentreprise.com:8080" docker_no_proxy="localhost,127.0.0.1,.lan,.local"
Lancement
ansible-playbook -i votre_inventaire votre_playbook.yml
🔬 Détails Techniques
- Idempotence Garantie : Vous pouvez exécuter ce rôle plusieurs fois en toute sécurité. Seules les modifications nécessaires seront appliquées, sans jamais altérer un système déjà configuré.
- Dépendances Gérées : Le rôle installe automatiquement tous les paquets nécessaires (
curl,gnupg,ca-certificates, etc.). Vous n’avez rien à préparer. - Maintenance Personnalisable : La tâche Cron de nettoyage (
docker system prune) est configurée par défaut à 3h00 du matin. Vous pouvez facilement ajuster l’heure avec les variablesdocker_prune_houretdocker_prune_minute. - Tests Complets Inclus : Pour une transparence totale, la suite de tests Molecule est fournie dans le rôle. Vous pouvez voir exactement comment le rôle est validé dans le dossier
molecule/default/. - Priorité des Variables : Toutes les options sont configurables. Les variables définies dans votre playbook ou inventaire écrasent les valeurs par défaut (situées dans
defaults/main.yml), vous offrant un contrôle total.
📚 Documentation Opérationnelle
Ce rôle inclut une documentation complète dans le dossier docs/ :
- Guide Jour 1 (
docs/day1-guide.md) : Vérifications post-déploiement, commandes de base, checklist de santé rapide. - Runbook Jour 2+ (
docs/day2-runbook.md) : Troubleshooting détaillé, gestion de l’espace disque, problèmes réseau, mise à jour Docker, scénarios catastrophe et récupération.
👀 Voir la table des matières complète
- 🔧 Troubleshooting Courant : Daemon ne démarre pas, conteneur ne démarre pas, permissions
- 💾 Gestion de l’Espace Disque : Diagnostic, nettoyage manuel, urgence, déplacement data-root
- 🌐 Problèmes Réseau : Pas d’accès Internet, conflits IP, port non accessible
- 🔄 Mise à Jour Docker : Mise à jour standard, rollback
- 🔁 Récupération de Conteneurs : Crash loop, récupération données, export/import
- 🔴 Scénarios Catastrophe : Corruption système fichiers, reboot serveur, perte totale, registry down
- ⚙️ Configuration Avancée : Limites ressources, mode debug, registre insecure
- 📊 Monitoring et Alertes : Métriques Prometheus, health check, alertes recommandées
📦 Détails du Produit
- Nom du rôle :
devops_store.docker_engine - Cible OS : Debian (12/13), Ubuntu (22.04/24.04)
- Dépendances : Aucune externe (hors paquets systèmes gérés par le rôle)
🛡️ Garantie de Qualité et Support
Trois durées de garantie sont disponibles : 3 mois, 1 an et 5 ans. Ces garanties incluent le support technique et les mises à jour du code pour les plateformes supportées.
N.B. : Le support du rôle se base sur le cycle de vie des OS pour lesquels il a été développé. Cela signifie que si un OS atteint sa date d’EOL durant la période de garantie, le support et les mises à jour du rôle s’arrêtent pour cet OS. A contrario, si une nouvelle version majeure d’un OS est publiée durant la période de garantie, le support et les mises à jour du rôle seront assurés pour cette nouvelle version.
🔑 Licence d’Utilisation
Trois niveaux de licence sont disponibles :
- Standard : Usage pour les projets internes de l’acheteur. Pas de redistribution, pas d’utilisation pour des clients tiers. Idéale pour les indépendants, PME gérant leur propre infra, passionnés.
- Entreprise : Inclut tous les droits Standard et permet d’utiliser le rôle pour configurer les serveurs de clients finaux. Droit d’intégration dans des produits et services vendus. Idéale pour les ESN, Agences Web, Infogérants (MSP), Consultants DevOps.
- Marque Blanche : Inclut tous les droits Entreprise avec l’autorisation exclusive de supprimer les mentions de l’auteur (attribution) pour présenter le code comme votre propre technologie. Idéale pour les grands Infogérants et éditeurs exigeant une image de marque unifiée sans trace de tiers.
Informations complémentaires
| Licence | Standard (Usage interne seulement), Entreprise (Usage interne et commercial), Marque Blanche (Revente sans attribution) |
|---|---|
| Support et mises à jour | 3 mois, 1 an, 5 ans |
Produits liés
-
Ansible Role : Grafana Prometheus Loki
Plage de prix : 49,00 € à 1 299,00 € -
Ansible Role : Harbor Trivy
Plage de prix : 49,00 € à 1 199,00 € -
Ansible Role : Keycloak HA
Plage de prix : 49,00 € à 1 499,00 €





