BETA
Puppet — premiers pas
lab14 h21 étapesdébutant

Puppet est un outil de gestion de configuration : vous décrivez l'état voulu d'une machine (paquets installés, services démarrés, fichiers en place) et Puppet l'applique, puis le maintient dans le temps. Dans ce cours, vous le découvrez en pratique sur des conteneurs Docker jetables plutôt que sur de vrais serveurs : rien à louer, rien à casser.

L'implémentation utilisée est OpenVox, l'édition open source communautaire de Puppet 8, maintenue par Vox Pupuli depuis que l'éditeur Perforce a fermé la distribution de ses binaires en 2025. Le langage, les commandes et les modules sont ceux de Puppet : tout ce que vous apprenez ici s'applique à Puppet Core et à Puppet Enterprise.

Pour qui ?

Ce cours vise un débutant en Puppet. Il suppose que vous savez :

  • utiliser un terminal bash (se déplacer, lancer une commande, lire une erreur) ;
  • lancer et supprimer un conteneur Docker (docker run, docker exec, docker rm) ;
  • ce qu'est un paquet, un service et un fichier de configuration sous Linux.

Il ne suppose aucune connaissance de Puppet ni de Ruby. Si vous connaissez Ansible, le cours fait régulièrement le parallèle : les notions se correspondent presque une à une.

Ce qu'il faut sur votre poste

OutilVersionPourquoi
bashmacOS, Linux, ou WSL 2 sous Windowsles commandes du cours sont des commandes bash
DockerDocker Engine ou Docker Desktop récent, avec Compose v2les machines à configurer sont des conteneurs ; la pile serveur du chapitre 5 est un fichier Compose
curln'importe quelle versiontester les pages web produites
Mémoire4 Go disponibles pour Docker à partir du chapitre 5le serveur Puppet et PuppetDB sont deux applications Java

Puppet lui-même n'est pas à installer sur votre poste : il vit dans les conteneurs. Le premier chapitre vérifie les outils et construit l'image de base.

Comment se déroule le cours

Chaque étape alterne explications, commandes à lancer (bouton ▶) et vérifications : une vérification regarde l'état réel de vos conteneurs et de vos fichiers, pas les commandes que vous avez tapées. Chaque chapitre se termine par un quiz noté qui le valide.

Tous vos fichiers vont dans le dossier atelier/, à la racine de ce dépôt (il est ignoré par git). Ce dossier est monté dans les conteneurs à l'endroit où Puppet attend son code, /etc/puppetlabs/code : vous éditez sur votre poste, Puppet lit dans le conteneur. Les conteneurs que le cours crée s'appellent tous layers-puppet… (et l'image des nœuds layers-openvox-agent) ; ils écoutent sur des ports entre 28140 et 28199, pour ne jamais se mélanger avec vos propres projets.

Le parcours

Les quatre premiers chapitres travaillent sur un seul conteneur, sans serveur Puppet, avec la commande puppet apply : c'est la façon la plus simple d'apprendre le langage. Les suivants ajoutent le serveur, les agents et les données.

  1. Installation et concepts : ce qu'est Puppet, le paysage des outils en 2026, et un premier nœud où l'on interroge l'état réel avec puppet resource.
  2. Premier manifest : un serveur web nginx décrit en trois ressources, l'idempotence, la correction d'une dérive, et l'ordonnancement des ressources.
  3. Le langage : variables, facts, conditions, boucles, et des templates EPP.
  4. Modules et Forge : ranger le code en module avec des classes paramétrées, un manifest principal, puis installer des modules du Forge avec r10k.
  5. Serveur et agents : la pile OpenVox (serveur, PuppetDB, Puppetboard), les certificats, le premier puppet agent -t et les rapports.
  6. Nœuds, facts et Hiera : donner un rôle à chaque nœud, et sortir les données du code.
  7. Rôles, profils et projet final : le pattern roles/profiles et un WordPress complet déployé sur un nœud, une page statique sur l'autre.
  8. Outillage et écosystème : lint, PDK, Bolt, Puppet Enterprise, et où en est Puppet face à Ansible, Chef, Salt et Terraform.

Les chapitres 2 à 4 construisent le même projet dans atelier/, sur le même conteneur : suivez-les dans l'ordre. Le chapitre 5 remplace ce conteneur par la pile Compose, que les chapitres 6 et 7 réutilisent.

Installation et concepts0/2
Puppet en quelques notions
Un premier nœud
Premier manifest0/3
Trois ressources pour un serveur web
Idempotence et dérive
L'ordre des ressources
Le langage0/3
Variables et facts
Conditions et boucles
Templates EPP
Modules et Forge0/4
La structure d'un module
Une classe paramétrée
Le manifest principal
Le Forge et r10k
Serveur et agents0/4
La pile et ses composants
Lancer la pile
Enrôler un agent
Les rapports dans Puppetboard
Nœuds, facts et Hiera0/2
Cibler les nœuds
Les données avec Hiera
Rôles, profils et projet final0/2
Rôles et profils
Projet : un WordPress sur web1
Outillage et écosystème0/1
L'écosystème
0 / 21 étapes0%