Puppet
Overview
Puppet est un outil de configuration management orienté état souhaité (desired state), historiquement très utilisé dans les grandes infrastructures. Il repose sur un modèle agent/serveur : un agent Puppet est installé sur chaque nœud géré et communique avec un Puppet Server central.
Les configurations sont décrites dans un langage déclaratif propre à Puppet (manifests), qui définit les ressources (packages, services, fichiers, utilisateurs, etc.) et leurs relations. L’agent applique régulièrement la configuration décrite et remonte l’état vers le serveur, ce qui facilite le suivi de conformité à grande échelle.
Puppet est particulièrement adapté aux environnements avec de nombreux serveurs, des exigences de conformité fortes et un besoin de contrôle fin des changements.
Informations essentielles
| Propriété | Valeur |
|---|---|
| Site officiel | https://www.puppet.com/ |
| Licence | Puppet Open Source (Apache 2.0) + offres commerciales |
| Nationalité | États-Unis |
| Type | Configuration management déclaratif, agent-based |
| Déploiement | On-prem, cloud, hybride |
| Difficulté | Intermédiaire à avancé |
| Technologies | Ruby, DSL Puppet |
TL;DR
Puppet est adapté si tu dois gérer un grand parc de serveurs avec un modèle centralisé et un suivi de conformité régulier. Le langage déclaratif Puppet permet de modéliser des configurations complexes et de gérer les dépendances entre ressources. Le modèle agent/serveur facilite l’application continue de la configuration sans déclenchement manuel. En contrepartie, l’infrastructure serveur Puppet ajoute de la complexité opérationnelle et de la maintenance. La courbe d’apprentissage du DSL Puppet et de l’écosystème associé est significative pour une équipe non familière.
Compatibilité et intégrations
- Systèmes : Linux, Unix, certains systèmes Windows
- Cloud : intégrations avec AWS, Azure, GCP, VMware, OpenStack, etc.
- Intégration avec des outils de reporting et de conformité
- Modules communautaires via Puppet Forge
- Intégrations possibles avec des chaînes CI/CD et des SCM (Git, GitLab, GitHub)
Avantages
- Modèle déclaratif puissant pour décrire des infrastructures complexes
- Agent qui applique régulièrement la configuration (drift management)
- Gestion des dépendances entre ressources avancée
- Écosystème de modules partagés (Puppet Forge)
- Bon pour les environnements nécessitant des rapports de conformité détaillés
Limites
- Nécessite l'installation et la maintenance d'une infrastructure Puppet Server
- Langage spécifique (DSL Puppet) à apprendre et à maîtriser
- Mise en place initiale plus lourde que des outils agentless
- Peut être perçu comme rigide ou verbeux pour de petites infrastructures
- Moins adapté aux scénarios très éphémères ou orientés conteneurs-only
Ressources
- Site officiel : https://www.puppet.com/
- Documentation : https://www.puppet.com/docs
- Puppet Forge : https://forge.puppet.com/
- Repository GitHub (Puppet) : https://github.com/puppetlabs/puppet
- Bonnes pratiques Puppet : https://www.puppet.com/docs/pe/latest/best_practices.html