GUIDE TECHNIQUE · PUPPET
Puppet : Premier manifeste avec puppet apply
Créer son premier manifeste Puppet pour gérer un fichier de configuration, afficher les changements prévus avec --noop et constater l'idempotence. Le laboratoire s'exécute localement sans Puppet Server et sans modifier un service de production.
L’ESSENTIEL EN BREF
Les étapes clés
Ce guide présente 4 étapes, de « Isoler le laboratoire et vérifier le CLI » à « Appliquer puis constater l'idempotence ».
Avant de commencer : Puppet CLI accessible avec puppet --version et un utilisateur autorisé sur la machine de laboratoire.
01 · CADRAGE
Périmètre et résultat visé
Résultat attendu : puppet parser validate valide le manifeste.
Public concerné : Administrateurs Linux, équipes RUN et ingénieurs Infrastructure as Code
Puppet Core récent installé sur un hôte Linux de recette ; les commandes de cet exemple utilisent puppet apply et un répertoire /tmp dédié.
Contrôlez les versions, les droits et les options disponibles dans votre environnement avant de suivre la procédure.
02 · AVANT DE COMMENCER
Prérequis et points de contrôle
- Puppet CLI accessible avec puppet --version et un utilisateur autorisé sur la machine de laboratoire.
- Dossier /tmp/puppet-lab réservé à la démonstration ; aucun fichier métier ne doit partager ce chemin.
- Politique de journalisation connue : les manifests et rapports ne doivent pas contenir de secrets.
03 · VUE D’ENSEMBLE
Comprendre l’architecture et les flux
04 · TUTORIEL
Procédure complète, étape par étape
Suivez les étapes dans l’ordre et contrôlez chaque résultat avant de poursuivre. Renseignez les paramètres adaptés à votre environnement.
ÉTAPE 1 / 4
Isoler le laboratoire et vérifier le CLI
L'exercice doit être réversible et ne pas dépendre d'un serveur Puppet.
- Vérifier la version puis créer un répertoire temporaire dédié.
- Confirmer que le fichier cible n'existe pas et qu'aucune application métier ne l'utilise.
puppet --version
mkdir -p /tmp/puppet-lab
ls -la /tmp/puppet-labÀ vérifier : Un répertoire isolé est prêt.
Point de vigilance : Exécuter les opérations uniquement sur un environnement de recette autorisé, sans secret ni donnée de production.
ÉTAPE 2 / 4
Écrire une ressource file
Une ressource déclarative définit l'état à obtenir, pas une suite d'opérations impératives.
- Créer demo.pp avec une ressource file sans informations sensibles.
- Utiliser ensure, content et mode, puis contrôler la syntaxe.
file { '/tmp/puppet-lab/message.txt':
ensure => file,
content => "Puppet gère ce fichier\n",
mode => '0644',
}À vérifier : Le manifeste se compile avec des paramètres explicites.
Point de vigilance : Exécuter les opérations uniquement sur un environnement de recette autorisé, sans secret ni donnée de production.
ÉTAPE 3 / 4
Prévisualiser avec --noop
La simulation donne l'occasion de relire les opérations proposées avant écriture.
- Exécuter la vérification de syntaxe et puppet apply --noop.
- Vérifier qu'un fichier serait créé sans qu'il ait encore été écrit.
puppet parser validate demo.pp
puppet apply --noop demo.pp
test ! -e /tmp/puppet-lab/message.txt && echo 'non créé'À vérifier : La simulation annonce une création ; le fichier reste absent.
Point de vigilance : Exécuter les opérations uniquement sur un environnement de recette autorisé, sans secret ni donnée de production.
ÉTAPE 4 / 4
Appliquer puis constater l'idempotence
Une seconde exécution sans modification doit conserver l'état actuel.
- Exécuter le manifeste une fois, puis à nouveau sans changement.
- Comparer le contenu et les permissions aux attentes du manifeste.
puppet apply demo.pp
puppet apply demo.pp
cat /tmp/puppet-lab/message.txt
stat /tmp/puppet-lab/message.txtÀ vérifier : La seconde exécution ne rapporte pas de changement et le fichier contient la valeur attendue.
Point de vigilance : Exécuter les opérations uniquement sur un environnement de recette autorisé, sans secret ni donnée de production.
RÉFÉRENCES TECHNIQUES
Documentation officielle
Retrouvez les prérequis, les fonctionnalités et les versions prises en charge par Puppet. Vérifiez les commandes sur un environnement de test avant leur utilisation en production.
05 · RECETTE
Comment vérifier que tout fonctionne ?
puppet parser validate valide le manifeste.
Le premier passage --noop ne crée pas le fichier.
Le second apply est sans changement et le mode attendu est présent.
06 · DIAGNOSTIC
Problèmes fréquents et résolution
Unknown resource type
Cause probable : Ressource mal orthographiée ou module absent
Que faire : Vérifier le type file et les dépendances du catalogue.
Permission denied
Cause probable : Utilisateur non autorisé à écrire dans le chemin
Que faire : Choisir un dossier autorisé plutôt qu'élever sans justification les privilèges.
Le fichier change à chaque exécution
Cause probable : Un autre processus modifie le même fichier
Que faire : Identifier le propriétaire de la configuration et supprimer la concurrence avant la mise en production.
07 · QUESTIONS PRATIQUES
Questions fréquentes
Puppet apply a-t-il besoin d'un serveur ?
Non. La compilation et l'application locales sont possibles pour ce laboratoire.
Que signifie --noop ?
Il calcule et signale les changements prévus sans appliquer les changements de ressources pris en charge.
Pourquoi répéter apply ?
Cela permet de vérifier l'idempotence sur une configuration et un état inchangés.
AUTRES TECHNOLOGIES
Guides complémentaires
VOTRE ENVIRONNEMENT
Besoin d’aller plus loin sur votre environnement ?
Automatisation, sécurité et exploitation : échangeons sur vos pratiques Puppet.
Échanger avec ADN Consulting