Bienvenue dans ce projet Ansible Training !
Ce dépôt propose un parcours didactique et progressif pour découvrir et maîtriser Ansible, de l’automatisation basique à l’orchestration avancée. À travers des exercices pratiques et des exemples concrets, vous apprendrez à gérer vos infrastructures, déployer des applications et orchestrer des environnements complexes.
Ce n’est pas un cours académique, mais plutôt un guide pour vous accompagner dans votre montée en compétences sur Ansible.
- Comprendre les concepts fondamentaux d’Ansible : inventaire, ad-hoc, modules, playbooks.
- Apprendre à écrire des playbooks clairs et modulaires en utilisant les bonnes pratiques YAML.
- Structurer et réutiliser votre code via les rôles et les collections. - Gérer la sécurité et les données sensibles avec Ansible Vault.
- Mettre en place des tests automatisés pour garantir la qualité de vos automatisations.
- ...
00-Introduction-Ansible
— Présentation d’Ansible, concepts fondamentaux (inventaires, modules, ad-hoc, YAML).01-Inventaires-Statiques
— Introduction à Ansible, installation, configuration de l’inventaire, commandes ad-hoc.02-Playbooks
— Rédaction de playbooks simples, tâches, variables, gestion des handlers et conditions.03-Templates
— Utilisation avancée des variables (groupes, hôtes, fichiers vars), Jinja2 et templates pour la génération dynamique de fichiers.04-Roles
— Structuration du code : création, organisation et réutilisation de rôles Ansible, bonnes pratiques.05-Collection-modules
— Création et publication de collections personnalisées, développement de modules Ansible en Python.06-Galaxy-et-Community
— Utilisation d’Ansible Galaxy, import de rôles existants et contribution à la communauté.07-Sécurité-et-Vault
— Chiffrement des données sensibles avec Ansible Vault, bonnes pratiques de sécurisation.08-Orchestration-Avancée
— Scénarios multi-niveaux, orchestration de clusters (Docker, Kubernetes), déploiements blue/green, rolling updates.09-CI-CD-Integration
— Intégration d’Ansible dans des pipelines CI/CD (GitLab CI, GitHub Actions, Jenkins), bonnes pratiques DevOps.10-Tests-et-Validation
— Tests de playbooks avec Molecule et Testinfra, validation automatique, intégration continue pour l’assurance qualité.
Avant de commencer, assurez-vous d’avoir :
-
Python (3.6+) et
pip
:sudo apt-get install python3 python3-pip
-
Pipx pour installer Ansible et ses dépendances de manière isolée :
python3 -m pip install --user pipx python3 -m pipx ensurepath pipx install ansible pipx install ansible-lint pipx install pytest pipx inject pytest pytest-testinfra
A partir du TP 3, il sera nécessaire d'installer Incus (anciennement LXD). En effet, Incus est un gestionnaire de conteneurs et de machines virtuelles qui vous permet de créer et gérer des environnements virtuels. Il est particulièrement utile pour les TP qui risquent d'endommager votre instance de Linux.
Pour l'installer, exécutez les commandes suivantes :
sudo apt install incus
Initialiser Incus :
sudo incus init --minimal
-
Cloner le dépôt :
git clone https://github.com/votre-utilisateur/ansible-training.git cd ansible-training
-
Explorer les premiers exemples (dans
00-Introduction-Ansible
) pour vous familiariser avec l’inventaire et les commandes Ad-hoc. -
Lancer un playbook exemple depuis
01-Playbooks
:ansible-playbook -i inventaire/hosts.ini 01-Playbooks/exemple.yml
Je continuerai à enrichir ce dépôt avec de nouveaux exercices, exemples et améliorations. Pour récupérer les dernières modifications depuis la branche main
, exécutez :
git pull origin main
Vos retours, corrections et suggestions sont les bienvenus !
- Créez une issue pour signaler un bug, proposer une amélioration ou poser une question.
- Forkez le dépôt et ouvrez une pull request pour soumettre vos modifications (nouvelle section, corrections orthographiques, nouveaux exercices, etc.).
Consultez le fichier CONTRIBUTING.md
pour en savoir plus sur les bonnes pratiques de contribution.
Si vous trouvez ce guide utile et souhaitez me soutenir, vous pouvez me offrir un café :
- Auteur : Stéphane Robert (2025)
- Licence : Creative Commons BY-SA 4.0