Puppet est un outil de gestion de configuration et de déploiement. Découvrez ce fameux mouvement DevOps, et quelles sont les raisons qui font le succès de Puppet.
11. Quels produits ?
Chef (créé en 1993, développé en Erlang)
Puppet (créé en 2005, développé en Ruby)
Ansible (créé en 2012, développé en Python)
CFEngine (créé en 2013, développé en C)
13. Puppet
- Logiciel libre (Apache 2.0)
- Existe en version “Enterprise”
- Support des machines virtuelles Amazon EC2
- Dashboard centralisé
- Fonctionne sous GNU/Linux, Windows et MacOS X
- Version actuelle : 4.0, publiée le 16 avril 2015
- Communication HTTPS entre le serveur et les agents
16. Installation de l’agent
- “apt-get install puppet”
- Configuration dans /etc/puppet/puppet.conf :
[main] server=puppet.versusmind.eu
- Génération du certificat côté “Agent” et soumission au serveur Puppet
- Approbation (ou non) de la part du serveur Puppet
- puppet agent -t
17. Un agent Puppet
root@monserveur ~ # puppet agent -t
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Loading facts
Info: Caching catalog for monserveur.example.com
Info: Applying configuration version '1431791808'
Notice: /Stage[main]/Common::Install/Package[htop]/ensure: created
Notice: Finished catalog run in 7.66 seconds
21. Ressources natives
File : créer un fichier ou un répertoire
Bien plus d’attributs sur https://docs.puppetlabs.com/references/4.0.latest/type.html
22. Ressources natives
Package : installer un paquet
Providers :
- apt (Debian / Ubuntu)
- apple (Systèmes OS X)
- gem (Pour Ruby)
- pip (pour Python)
- macports (MacPorts sur OS X)
- pacman (ArchLinux)
- windows
- ...
23. Ressources natives
Service : gérer les services
Attributs :
- enable : service activé au démarrage du système
- hasrestart : le script possède un paramètre “restart”
- restart : spécifier une commande de restart
manuellement
- ...
Support :
- Debian
- Windows
- OS X
- ...
24. Ressources natives
User : créer un utilisateur
Attributs :
- uid / gid : ID (numérique) pour l’utilisateur et son
groupe
- Home : le répertoire par défaut
- ...
25. Ressources natives
Une multitude de ressources :
- cron : déclarer une tâche planifiée
- group : ajouter un groupe
- interface : déclarer une interface réseau
- exec : exécuter une commande personnalisée
La suite sur https://docs.puppetlabs.com/references/latest/type.html
27. Composants : Git / Git Flow
- Git
- Git Flow (develop, master, …)
- Une branche par nouveau module
- Pull Request !
28. Composants : Hiera
- Séparer les données “variables” des modules
- Fichiers .yaml
29. Hiera - Data bindings
- Charger automatiquement les paramètres depuis Hiera
30. Noop / Environnements
Noop :
- /etc/puppet/puppet.conf :
[agent] noop = true
- Ne pas appliquer automatiquement le catalogue Puppet
- puppet agent -t --no-noop
Gestion des environnements :
- Un environnement par utilisateur / feature
- Une branche Git par environnement
31. Composants : Foreman
ENC : External Node Classifier
- Programme appelé par le serveur Puppet au moment ou l’agent demande
son catalogue
The Foreman :
- Interface Web
- Rassemble les rapports d’erreurs / succès
- Statistiques sur l’ensemble de vos agents
- Gestion des “groupes d’hôtes” : rôles
- Gestion des environnements
Puppet :
Logiciel libre
Fait en ruby
diffusé sous licence Apache 2.0 depuis la version 2.7.0
Pour les développeurs, Gepetto http://docs.puppetlabs.com/geppetto/latest/index.html
Un IDE basé sous Eclipse
How Puppet Works
http://fr.slideshare.net/PuppetLabs/manageable-puppet-infrastructure?qid=b9e5faa1-f204-459a-8af4-b9321a20ad96&v=qf1&b=&from_search=13
http://fr.slideshare.net/PuppetLabs/puppet-camp-2015
http://fr.slideshare.net/PuppetLabs/getting-started-with-puppet-puppetconf-2013?qid=b9e5faa1-f204-459a-8af4-b9321a20ad96&v=default&b=&from_search=30
http://fr.slideshare.net/PuppetLabs/puppet-introlukelondon?qid=b9e5faa1-f204-459a-8af4-b9321a20ad96&v=default&b=&from_search=25
Revenons un peu sur l’historique.
Il y a encore peu de temps, on pouvait se représenter le monde de l’informatique comme coup éen deux : les développeurs d’un côté, et les administrateurs sytèmes de l’autre.
Bien souvent, le développeur ne se soucie pas des ressources nécessaires au bon fonctionnement de son programme, ni de l’état de santé de son application lorsqu’elle est en production.
Etude CA Technologies 2014
49 % des entreprises mettent le cap sur le DevOps
95% des entreprises françaises planifient actuellement la mise en oeuvre du DevOps.
La France, leader dans le domaine (un des meilleurs)
Etude CA Technologies 2014
49 % des entreprises mettent le cap sur le DevOps
95% des entreprises françaises planifient actuellement la mise en oeuvre du DevOps.
La France, leader dans le domaine (un des meilleurs)
Enterprise :
Support de VMware
Interface graphique de gestion
Orchestration des déploiements
Gérer plus finement les droits utilisateurs
Version 4.0 :
Dépréciation de bcp de choses
Packagé avec sa propre de version de Ruby
Concentré de code et de donnée
2 types de modules :
Les modules génériques (Apache, Jboss, PHP, …)
Les modules “personnels”
Orienté objet : classes / héritage