Introduction DevOps.
- L'origine du mouvement DevOps
- Le besoin d'industrialisation pour l'opérationnel
- Tour d'horizon des outils
- Positionnement de Puppet dans le paysage actuel.
Présentation de Puppet.
- Fonctionnement du catalogue, architecture de l'ensemble
- L'architecture autonome (stand-alone) avec Puppet apply
- L'architecture agent/maître (agent/master)
- Implications sécuritaires
- Installation, présentation des répertoires de configuration
Atelier pratique : installation du Puppet master, mise en place d'un catalogue trivial.
Découverte du langage.
- Les ressources dans Puppet
- La couche d'abstraction des ressources (RAL) : types, attributs, valeurs
- Les manifestes
- Idempotence, états souhaités
- Ordonnancement des ressources
- Variables, faits (facts, avec Facter) et conditions
- Les classes et les modules : introduction.
Atelier pratique : écriture de manifestes mettant en jeu les ressources de base, création de classes, découverte des modules.
Puppet dans l'infrastructure.
- Organisation du manifeste : retour sur les classes et modules
- La définition des modèles (templates ERB) pour les fichiers
- Configuration avancée du Puppet master pour la production
- Utilisation du serveur de fichiers intégré à Puppet
- Classification des nœuds avec Hiera.
Atelier pratique : mise en place de modules personnalisés, paramétrage du serveur, paramétrage de nœuds complets hétérogènes via Puppet.
Outils graphiques : IDE et tableau de bord.
- Installation de l'IDE Gepetto avec Eclipse
- Création de projet Puppet dans Gepetto, versionning avec git ou SVN
- Présentation du Puppet Dashboard : le tableau de bord pour le puppet master.
Atelier pratique : mise en place de Gepetto, reprise d'un module dans l'interface, déploiement du dashboard.
Configuration de production avancée.
- Détail de la configuration en mode production
- La gestion des certificats SSL avec Puppet
- Configuration avec plusieurs maîtres, répartition de charge
- Optimisation des ressources avec PuppetDB
Atelier pratique : configuration apache2+passenger, gestion de certificats, mise en place de PuppetDB.
Utilisation de Facter.
- Rappel de l'utilisation des faits Puppet
- Création de faits avec résolutions simples et complexes
- Bonnes pratiques sur la structuration des faits Puppet
Atelier pratique : définition de Facts personnalisés, exploitation dans un scénario réaliste.
Programmation plus avancée avec Puppet.
- Écrire du code réutilisable avec Puppet
- Les classes paramétrées
- Les types définis, ou « super-classes »
- Un peu de Ruby pour les templates
- Aller plus loin avec Hiera
Atelier pratique : écriture de manifestes complexes, découverte des modules de la forge Puppet, mise en place d'un scénario grandeur nature avec Hiera.
MCollective : orchestration et parallélisation.
- Orchestration, exécution parallèle de jobs
- L'architecture du Marionnette Collective : ActiveMQ, SSL, authentification
- Configuration des serveurs et des clients
- Déploiement de plugins
- Exécutions parallèles, ligne de commande avec mco
Atelier pratique : déploiement de Mcollective, utilisation de plugins courants pour des tâches simples.