La gestion au quotidien des configurations systèmes et applicatives d’une entreprise représente un travail très fastidieux.
Beaucoup d’entreprises ont édicté des règles de « bonnes pratiques », rares sont celles qui sont en mesure de les mettre en oeuvre.
Puppet simplifie grandement la vie des administrateurs : plus de contrôles et d’interventions à réaliser régulièrement. Puppet se charge d’imposer sur les machines des utilisateurs les configurations « modèles » définies par l’administrateur.
Puppet est un outil de déploiement et de gestion centralisée de configurations pour les environnements Linux, Unix et Windows ; les machines gérées pouvant être physiques ou virtualisées.
C’est un logiciel libre écrit en Ruby et diffusé sous licence Apache 2.0.
Un serveur appelé PuppetMaster contient les différentes configurations souhaitées ; l’administrateur décrit ces configurations via un langage déclaratif sans se soucier des commandes propres à chacun des systèmes d’exploitation.
Sur chacune des machines administrées par Pupet (node), un agent Puppet s’assure périodiquement (par défaut toutes les demi-heures) que la configuration souhaitée est bien celle en place. Si ce n’est pas le cas, l’agent Pupet se charge de l’exécution des commandes système nécessaires au rétablissement de l’état attendu par l’administrateur.
Les communications entre PuppetMaster et les nodes utilisent le protocole HTTPS de Ruby.
Différents frameworks OpenSource complètent les fonctions de Puppet, dont
- MCollective pour effectuer des tâches ponctuelles sur l’ensemble ou une partie des ‘nodes’.
- Augeas pour modifier des fichiers de configuration via la ligne de commande.