L’automatisation représente un enjeu majeur dans la digitalisation des entreprises. La méthodologie DevOps encourage dans le sens la mise en place de chaîne d’intégration continue et de déploiement continu afin de produire et livrer nos solutions IT beaucoup plus facilement, plus rapidement tout en restant agile face aux changements.
Plusieurs outils ont vu le jour (puppet, chef, ansible, terraform …) afin d’automatiser au maximum les SI (Système d’information).
Ansible est de loin la solution qui su sortir son épingle du jeu en nous proposant un langage clair, simple, intuitif rassemblant les Dev et les Ops autour d’une même table. L’un des avantages particuliers d’ansible est qu’il ne nécessite pas d’installation d’agent sur les machines à configurer, ce qui nous facilite énormément les opérations de déploiement au quotidien (on a plus à se soucier de la compatibilité entre le serveur et l’agent ou encore de savoir si l’agent est démarré).
Néanmoins, les entreprises ne se limitent plus seulement à l’automatisation du déploiement de leur infrastructure, elles souhaitent également gérer le cycle de vie de leur playbook et de leur rôle afin de garantir leur stabilité. Le défi actuel est de mettre en place un écosystème qui ne se limitera à l’écriture de ces playbooks/roles mais à la chaîne qui permettra d’intégrer ces playbooks/roles en continu et leur déploiement en continu sur divers environnements (prod, preprod) et cela de façon automatique.
Ce cours a été conçu pour ceux qui souhaitent passer à l’étape suivante dans leur utilisation d’Ansible, comment mettre en place une ferme complètement automatisée permettant de produire les rôles, les tester et les déployer.
Vous l’aurez bien compris, la difficulté ne se trouve pas au niveau de la connaissance d’ansible mais plutôt à l’écosystème autour qui permet de gérer le cycle de vie de vos playbooks/roles. Cela passe par la mise en place de test d’intégration avec Molecule , la mise en place d’une CI avec github action, la création de collection permettant de fédérer vos playbooks/roles/plugins, le déploiement en continu avec ansible-tower et la publication de vos réalisations avec ansible-galaxy
Les méthodes pédagogiques ayants évoluées chez EAZYTraining, nos formations se dispensent à travers un projet fil rouge. En effet, pour rendre nos formations directement applicables en entreprise, nous allons partir d’un besoin client et vous montrer étape par étape comment répondre à ce dernier et proposer une solution complète.
La formation est divisée en 5 grandes parties :
- Création de rôle
- Intégration/test/validation des rôles avec molecule
- Mise en place de pipeline d’intégration continue avec github action
- Création de collections ansible
- Déploiement continu de l’application à l’aide d’ansible tower + github-action
Cette formation est destinée :
- Aux développeurs
- Aux administrateurs systèmes et réseaux
- Aux managers et chef de projet IT
- Aux ingénieurs DevOps
Prérequis :
- Avoir de bonnes bases sur Docker (https://eazytraining.fr/cours/introduction-a-docker/)
- Avoir de bonnes bases sur DevOps (https://eazytraining.fr/cours/ansible-pour-devops)
- Avoir les bases sur git (https://eazytraining.fr/cours/introduction-a-git/)
Durée de la formation : 4 Heures
Si vous ne souhaitez pas prendre un abonnement sur EAZYTraining, vous pouvez acheter la formation au prix de lancement de 70 EUR (au lieu de 100 EUR) via ce lien
https://eazytraining.fr/produit/ansible-expert/
NB : Cette formation est activement mise à jour
Formateur : Dirane TAFEN (Consultant et Instructeur dans le Cloud et le DevOps)
Détails
- 12 Sections
- 108 Lessons
- Durée de vie
- Module 00 : présentation de la formation7
- code utilisé1
- Module 01 : role ansible13
- 3.1objectifs4 Minutes
- 3.2structure d’un role3 Minutes
- 3.3galaxy ansible3 Minutes
- 3.4lab-0 – énoncé – mise en place de l’environnement de labs5 Minutes
- 3.5lab-0 – mise en place de la plateforme de labs8 Minutes
- 3.6lab-1 – énoncé – configuration clé ssh1 Minutes
- 3.7lab-1 – configuration clé ssh3 Minutes
- 3.8lab-2 – énoncé – vérification du playbook2 Minutes
- 3.9lab-2 – explication du code du client3 Minutes
- 3.10lab-2 – déploiement de l’application4 Minutes
- 3.11lab-3 – énoncé – role ansible3 Minutes
- 3.12lab-3 – explication du code2 Minutes
- 3.13lab-3 – déploiement de l’application à l’aide des rôles4 Minutes
- Module 02 : Molecule19
- 4.1pourquoi molecule3 Minutes
- 4.2structure des dossiers1 Minutes
- 4.3converge.yml1 Minutes
- 4.4molecule.yml3 Minutes
- 4.5verify.yml2 Minutes
- 4.6setup2 Minutes
- 4.7usage cli1 Minutes
- 4.8lab-4 – énoncé – molecule nginx2 Minutes
- 4.9lab-4 – installation de molecule3 Minutes
- 4.10lab-4 – création du scenario1 Minutes
- 4.11lab-4 – molecule.yml5 Minutes
- 4.12lab-4 – converge.yml2 Minutes
- 4.13lab-4 – verify.yml2 Minutes
- 4.14lab-4 – test du role nginx10 Minutes
- 4.15lab-4 – publication du role nginx sur github2 Minutes
- 4.16lab-5 – énnoncé – molecule webapp1 Minutes
- 4.17lab-5 – molecule webapp10 Minutes
- 4.18lab-5 – héritage d’idempotence3 Minutes
- 4.19lab-5 – publication du code sur github2 Minutes
- Module 03 : github actions14
- 5.1présentation2 Minutes
- 5.2pricing2 Minutes
- 5.3triggers1 Minutes
- 5.4triggers examples2 Minutes
- 5.5composants2 Minutes
- 5.6structure3 Minutes
- 5.7dashboard1 Minutes
- 5.8actions2 Minutes
- 5.9secrets1 Minutes
- 5.10lab-6 – énoncé – intégration continue des rôles ansibles2 Minutes
- 5.11lab-6 – ci du role nginx14 Minutes
- 5.12lab-6 mise en place du badge du role nginx3 Minutes
- 5.13lab-6 – ci du role webapp3 Minutes
- 5.14lab-6 mise en place du badge du role webapp3 Minutes
- Module 04 : tower6
- Module 05 : git submodule1
- Module 06 : ansible collections31
- 8.1analogie9 Minutes
- 8.2ansible2 Minutes
- 8.3ansible addons2 Minutes
- 8.4pourquoi partie 12 Minutes
- 8.5pourquoi partie 23 Minutes
- 8.6qu’est ce qui change pour vous ?3 Minutes
- 8.7organisation d’une collection4 Minutes
- 8.8lab-8 – énoncé – collection webapp2 Minutes
- 8.9lab-8 – création de la collection2 Minutes
- 8.10lab-8 – création des submodules à partir des rôles6 Minutes
- 8.11lab-9 – énoncé – collection release2 Minutes
- 8.12lab-9 – création du pipeline release4 Minutes
- 8.13lab-9 – production de la release3 Minutes
- 8.14lab-10 – énoncé – test de la collection2 Minutes
- 8.15lab-10 – manifest.json3 Minutes
- 8.16lab-10 – suppression de la release2 Minutes
- 8.17lab-10 – build du nouvel artefact de la collection6 Minutes
- 8.18lab-10 – récupération de l’artefact à l’aide du requirements.yml3 Minutes
- 8.19lab-10 – utilisation de la collection dans le playbook10 Minutes
- 8.20lab-11 – énoncé – limite de l’approche2 Minutes
- 8.21lab-11 – création du token github3 Minutes
- 8.22lab-11 – update nginx role pipeline7 Minutes
- 8.23lab-11 – update webapp role pipeline3 Minutes
- 8.24lab-12 – énoncé – déploiement continu2 Minutes
- 8.25lab-12 – mise en place de l’inventaire et du projet3 Minutes
- 8.26lab-12 – création des credentials1 Minutes
- 8.27lab-12 – création du job et déploiement de l’application3 Minutes
- 8.28lab-12 – mise en place du pipeline avec ansible tower cli et github action7 Minutes
- 8.29lab-12 – récupération du statut du job tower4 Minutes
- 8.30lab-12 – simulation d’une erreur dans le code3 Minutes
- 8.31lab-12 – badge3 Minutes
- Module 07 : Ansible-Galaxy1
- Module 08 : workflow idéal13
- 10.1lab-13 – énoncé – workflow complet4 Minutes
- 10.2lab-13 – mise en place de ansible-lint avant le déploiement10 Minutes
- 10.3lab-13 – correction des trailing spaces2 Minutes
- 10.4lab-13 – vérification du fonctionnement du lint1 Minutes
- 10.5lab-13 – mise à jour de l’inventaire en fonction de l’environnement3 Minutes
- 10.6lab-13 – création des pipelines de déploiement en prod preprod et dev5 Minutes
- 10.7lab-13 – activation de l’extra-vars dans tower1 Minutes
- 10.8lab-13 – simulation d’une contribution au code de déploiement de l’application3 Minutes
- 10.9lab-13 – création de la pull request1 Minutes
- 10.10lab-13 – merge de la pull request et déploiement en environnement de preprod3 Minutes
- 10.11lab-13 – création de la release et déploiement en production3 Minutes
- 10.12lab-13 – mise en place des badges3 Minutes
- 10.13lab-13 – limites de l’approche2 Minutes
- Module 09 : mini-projet1
- Module 10 : Conclusion1