Les entreprises sont à la recherche de solutions conciliation innovation et stabilité. L’innovation est au cœur même de l’ADN des sociétés qui réussissent et la réalisation de cette dernière est étroitement liée à l’infrastructure IT. Pour preuve, les entreprises investissent massivement dans la digitalisation afin d’être plus performante et surtout répondre aux besoins sans cesse en évolution de leur client.
Afin de soutenir de besoins d’innovation, les services informatiques doivent redoubler d’effort et proposer de nouvelles méthodologies de gestion de projet. On a vu arriver l’agilité avec le SCRUM, qui permettait aux équipes de développement d’être plus efficientes et réactives aux besoins du client.
Néanmoins subsistait un dernier rempart, l’équipe Opérationnel, garante la stabilité et la sécurité du système d’information. Les Devs produisent plus vite mais les Ops ne déploient pas à la même fréquence que la production des livrables applicatifs.
C’est pour résoudre ce problème que le DevOps est né afin de rassurer les deux parties (Dev et Ops) sur le fait qu’elles peuvent collaborer de façon plus proactive et répondre conjointement aux défis liés à la livraison de l’application en continue. Deux concepts majeurs sont nés, la CI (Intégration Continue) et la CD (Déploiement Continu). Grâce à ces dernières les passages en production étaient plus sûres et les retours en arrières mieux gérés.
La CD pour son bon fonctionnement a besoin d’être automatisée afin de réaliser les tâches suivantes
- Provisionner l’environnement de test de façon automatique
- Installer les prérequis systèmes et applicatifs
- Installer l’application
- Vérifier le fonctionnement de l’application
- Patcher l’application
- Upgrader l’application
- Backuper l’application
Bien évidement l’ensemble de ces tâches de type Ops doivent être tracées et validées en amont de leur réalisation. Afin de garantir la stabilité du système, il fallait un outil qui nous permette de déclarer l’infrastructure et son état souhaité via des fichiers descripteurs, on appelle cela de l’Infrastructure As Code (IaC). Plusieurs outils existent sur le marché afin de répondre à ces problématiques de centralisation de la gestion de l’infrastructure, le plus connu étant Ansible (dont vous pourrez trouver une formation sur le site eazytraining.fr). Mais avant Ansible, les entreprises utilisaient d’autres technologies, en l’occurrence chef et puppet.
Après plusieurs années en tant que consultants, j’ai pu observer que de nombreuses entreprises utilisent encore Puppet, solution proposée par PuppetLabs qui nous permettra d’automatiser notre infrastructure.
A la fin de cette formation, vous serez capable d’automatiser votre infrastructure à l’aide de Puppet. Nous verrons les modules suivants :
- Pourquoi Puppet et quel est son lien avec le DevOps ?
- Prérequis, Architecture et Installation de Puppet Master
- Configuration de puppet et commandes de base
- Ecriture de manifests *.pp
- Variabilisation de nos déploiements avec les facts et les built-in variables
- Création de module afin de distribuer notre code
- Installation et configuration des agents Puppet et gestions de plusieurs environnements (Dev, Production)
Afin de mettre en œuvre nos infrastructures virtualisées de labs, Vagrant aura besoin d’un outil qu’il va piloter, et dans notre cas se sera Virtualbox, outil de virtualisation très connu et OpenSource. Virtualbox sera le socle qui hébergera nos infrastructures.
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 :
- Les bases sur linux et dans l’IT de façon générale
Durée de la formation : 4 Heures
NB : Cette formation est activement mise à jour
Formateur : Dirane TAFEN (Consultant et Instructeur dans le Cloud et le DevOps)
Détails
- 13 Sections
- 112 Lessons
- Durée de vie
- Module 00 : présentation de la formation7
- 1.1Merci d’avoir choisi cette formation3 Minutes
- 1.2Présentation de la formation3 Minutes
- 1.3Présentation des prérequis1 Minutes
- 1.4AJUSTER LA QUALITE DE LA VIDEO EN FONCTION DE VOTRE DEBIT INTERNET2 Minutes
- 1.5support de cours et lien github contenant la correction des labs
- 1.6Attention à la version de puppet
- 1.7restons connectés
- Module 01 : pourquoi puppet ?5
- Module 02 : installation de puppet11
- 3.1architecture de puppet5 Minutes
- 3.2package manager2 Minutes
- 3.3firewall2 Minutes
- 3.4dns resolution3 Minutes
- 3.5java memory2 Minutes
- 3.6lab-1 – énoncé – déploiement de la VM puppet master2 Minutes
- 3.7lab-1 – Déploiement de la VM avec vagrant3 Minutes
- 3.8lab-1 – vérification du fonctionnement de la VM4 Minutes
- 3.9lab-2 – énoncé – installation de puppet master1 Minutes
- 3.10lab-2 – inatallation de puppet server5 Minutes
- 3.11lab-2 – vérification de l’installation de puppet server3 Minutes
- Module 03 : puppet config3
- Module 04 : standalone puppet command9
- 5.1resource workflow3 Minutes
- 5.2resource command3 Minutes
- 5.3apply command2 Minutes
- 5.4lab-4 – énoncé – installation de nginx1 Minutes
- 5.5lab-4 – retrouvez l’aide sur les ressources3 Minutes
- 5.6lab-4 – installation de nginx4 Minutes
- 5.7lab-4 – démarrage du service3 Minutes
- 5.8lab-4 – vérification du fonctionnement de nginx1 Minutes
- 5.9lab-4 – modification de l’application5 Minutes
- Module 05 : manifests8
- 6.1pourquoi les manifests3 Minutes
- 6.2extensions et apply3 Minutes
- 6.3best practises writing3 Minutes
- 6.4relationship metaparameter2 Minutes
- 6.5lab-5 – énoncé – nginx-v1.pp1 Minutes
- 6.6lab-5 – réalisation de notre premier manifest nginx-v1.pp10 Minutes
- 6.7lab-6 – énoncé – nginx-v2.pp avec metaparamater1 Minutes
- 6.8lab-6 – notify et subscribe6 Minutes
- Module 06 : variables15
- 7.1user defined variables2 Minutes
- 7.2facts3 Minutes
- 7.3built-in variables1 Minutes
- 7.4variables scope3 Minutes
- 7.5conditions2 Minutes
- 7.6templates3 Minutes
- 7.7lab-7 – énoncé – nginx-v3.pp avec variable nginx1 Minutes
- 7.8lab-7 – variable nginx5 Minutes
- 7.9lab-7 – content variable2 Minutes
- 7.10lab-8 – énoncé – nginx-v4.pp avec condition if1 Minutes
- 7.11lab-8 – facter2 Minutes
- 7.12lab-8 – if osfamily4 Minutes
- 7.13lab-9 – énoncé – nginx-v5.pp avec templating1 Minutes
- 7.14lab-9 – écriture et test du template5 Minutes
- 7.15lab-9 – déploiement du template5 Minutes
- Module 07 : modules11
- 8.1pourquoi les modules4 Minutes
- 8.2structure d’un module3 Minutes
- 8.3puppet forge partie 13 Minutes
- 8.4puppet forge partie 22 Minutes
- 8.5les classes2 Minutes
- 8.6environments definition2 Minutes
- 8.7lab-10 – énoncé – module nginx
- 8.8lab-10 – création du module nginx5 Minutes
- 8.9lab-10 – définition des variables de la classe2 Minutes
- 8.10lab-10 – création du manifest final1 Minutes
- 8.11lab-10 – variable scope3 Minutes
- Module 08 : Agent21
- 9.1installation2 Minutes
- 9.2DNS1 Minutes
- 9.3certificat2 Minutes
- 9.4puppet-bolt2 Minutes
- 9.5environment1 Minutes
- 9.6lab-11 – énoncé – déploiement de la VM client-11 Minutes
- 9.7lab-11 – déploiement de la VM avec vagrant2 Minutes
- 9.8lab-11 – vérification de la disponibilité de la VM1 Minutes
- 9.9lab-12 – énoncé – installation de l’agent puppet1 Minutes
- 9.10lab-12 – installation de puppet bolt3 Minutes
- 9.11lab-12 – installation de l’agent puppet via puppet bolt2 Minutes
- 9.12lab-12 – vérification de l’état de l’agent puppet2 Minutes
- 9.13lab-12 – gestion des certificats4 Minutes
- 9.14lab-12 – application des manifests sur les agents de façon automatique3 Minutes
- 9.15lab-12 – vérification du fonctionnement de l’application1 Minutes
- 9.16lab-13 – énoncé – création de l’environnement de Dev1 Minutes
- 9.17lab-13 – création de l’environnement de Dev1 Minutes
- 9.18lab-13 – module nginx version dev environment2 Minutes
- 9.19lab-13 – manifest de l’environnement de Dev1 Minutes
- 9.20lab-13 – assignation du client-1 à l’environnement de Dev1 Minutes
- 9.21lab-13 – vérification de la prise en compte de l’environnement de Dev1 Minutes
- Module 09 : Docker + Puppet10
- 10.1introduction2 Minutes
- 10.2présentation de l’architecture de déploiement3 Minutes
- 10.3explication du code6 Minutes
- 10.4déploiement de la stack1 Minutes
- 10.5vérification de l’installation de puppet2 Minutes
- 10.6présentation du module docker4 Minutes
- 10.7activer les firewalls1 Minutes
- 10.8déploiement de docker4 Minutes
- 10.9vérification de l’installation de docker2 Minutes
- 10.10déploiement du conteneur nginx à l’aide de puppet5 Minutes
- Module 10 : PuppetDB et PuppetBoard10
- 11.1pourquoi puppetdb5 Minutes
- 11.2pourquoi puppetboard3 Minutes
- 11.3puppetdb – explication du déploiement5 Minutes
- 11.4puppetbd – installation de docker4 Minutes
- 11.5puppetdb – déploiement de postgres via docker2 Minutes
- 11.6puppetdb – installation de puppetdb à l’aide du module2 Minutes
- 11.7puppetdb – vérification du fonctionnement de puppetdb1 Minutes
- 11.8puppetboard – explication du déploiement5 Minutes
- 11.9puppetboard – déploiement de puppetboard4 Minutes
- 11.10puppetboard – vérification du fonctionnement du dashboard puppet5 Minutes
- Module 11 : mini-projet1
- Module 12 : Conclusion1