Aller au contenu

GUIDE TECHNIQUE · PUPPET

Puppet : Créer des classes et modules réutilisables

Structurer la configuration Puppet en classes et modules réutilisables : nommage des fichiers, paramètres typés, classification et contrôle d'un catalogue sur un environnement isolé.

Niveau Intermédiaire3 min de lecture— vuesPuppet

L’ESSENTIEL EN BREF

Les étapes clés

Ce guide présente 4 étapes, de « Concevoir une responsabilité de module » à « Valider le module et tester deux passes ».

Avant de commencer : Laboratoire disposant de Puppet CLI et d'un modulepath local.

01 · CADRAGE

Périmètre et résultat visé

Résultat attendu : L'arborescence du module correspond au nom de classe.

Public concerné : Administrateurs Puppet, DevOps et responsables de configuration Linux

Environnement et versions

Puppet Core et arborescence de module standard avec manifests/init.pp ; les versions de modules Puppet Forge doivent être validées sur la plateforme cible.

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

  • Laboratoire disposant de Puppet CLI et d'un modulepath local.
  • Une convention de noms de modules et de classes définie avant développement.
  • Un changement de configuration réversible sans installation de logiciel sensible.

03 · VUE D’ENSEMBLE

Comprendre l’architecture et les flux

ARCHITECTURE TECHNIQUEComprendre la chaîne de bout en bout
01Module
02Classe paramétrée
03Manifeste racine
04Catalogue
05Vérification
Un module regroupe les manifests et les autres ressources réutilisables. Une classe fournit une responsabilité configurable ; elle doit être déclarée pour figurer dans le catalogue.

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.

01

ÉTAPE 1 / 4

Concevoir une responsabilité de module

Un module maintenable encapsule une capacité clairement bornée.

  1. Créer l'arborescence site_profile/manifests.
  2. Distinguer déclaration de classe et utilisation de la classe.
Exemple techniqueÀ adapter à votre environnement
mkdir -p modules/site_profile/manifests
find modules -type d
Ce qui se passe à cette étape
1Module
2Structure
3Vérification

À vérifier : Le chemin modules/site_profile/manifests est présent.

Point de vigilance : Exécuter les opérations uniquement sur un environnement de recette autorisé, sans secret ni donnée de production.

02

ÉTAPE 2 / 4

Écrire une classe paramétrée

Les paramètres explicites permettent d'utiliser le même code dans plusieurs environnements.

  1. Créer modules/site_profile/manifests/init.pp.
  2. Définir un paramètre typé pour le message et une ressource isolée.
Exemple techniqueÀ adapter à votre environnement
class site_profile (String $message = 'recette') {
  file { '/tmp/puppet-profile.txt':
    ensure  => file,
    content => "${message}\n",
  }
}
Ce qui se passe à cette étape
1Classe
2Paramètre
3Vérification

À vérifier : La classe peut être appelée avec ou sans paramètre.

Point de vigilance : Exécuter les opérations uniquement sur un environnement de recette autorisé, sans secret ni donnée de production.

03

ÉTAPE 3 / 4

Déclarer la classe depuis le manifeste racine

Une classe définie mais jamais déclarée ne configure pas le nœud.

  1. Créer site.pp à la racine de l'exercice.
  2. Référencer la classe et transmettre la valeur voulue.
Exemple techniqueÀ adapter à votre environnement
class { 'site_profile':
  message => 'integration',
}
Ce qui se passe à cette étape
1Appel
2Paramètre
3Vérification

À vérifier : Le catalogue contient la ressource gérée par la classe.

Point de vigilance : Exécuter les opérations uniquement sur un environnement de recette autorisé, sans secret ni donnée de production.

04

ÉTAPE 4 / 4

Valider le module et tester deux passes

Le contrat de la classe doit rester déterministe.

  1. Valider les manifests puis compiler le catalogue en noop avec le modulepath explicite.
  2. Effectuer l'application uniquement sur la machine de recette et relancer.
Exemple techniqueÀ adapter à votre environnement
puppet parser validate site.pp
puppet parser validate modules/site_profile/manifests/init.pp
puppet apply --modulepath=modules --noop site.pp
puppet apply --modulepath=modules site.pp
Ce qui se passe à cette étape
1Validation
2Catalogue
3Vérification

À vérifier : La classe est chargée et gère le fichier de recette.

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.

Consulter la documentation officielle

05 · RECETTE

Comment vérifier que tout fonctionne ?

Résultat attenduContrôles avant de considérer la procédure terminée
01

L'arborescence du module correspond au nom de classe.

02

La classe est résolue par le modulepath.

03

La valeur transmise apparaît dans le fichier et la seconde passe reste stable.

06 · DIAGNOSTIC

Problèmes fréquents et résolution

Could not find class

Cause probable : Modulepath incorrect ou nom de fichier non conforme

Que faire : Contrôler modules/site_profile/manifests/init.pp et le nom site_profile.

Duplicate declaration

Cause probable : La même ressource ou classe est déclarée plusieurs fois

Que faire : Réorganiser les responsabilités et éviter plusieurs propriétaires du même fichier.

Invalid relationship

Cause probable : Dépendance vers une ressource absente du catalogue

Que faire : Vérifier les références et la classification avant déploiement.

07 · QUESTIONS PRATIQUES

Questions fréquentes

Module et classe, quelle différence ?

Le module est un ensemble de fichiers et composants ; la classe est un bloc de déclaration réutilisable.

Faut-il inclure une classe ?

Oui : une définition seule ne l'ajoute pas au catalogue.

Quand utiliser Puppet Forge ?

Pour réutiliser des modules vérifiés, tout en épinglant les versions et en évaluant leur maintenance.

AUTRES TECHNOLOGIES

Guides complémentaires

Tous les guides Puppet

VOTRE ENVIRONNEMENT

Besoin d’aller plus loin sur votre environnement ?

Automatisation, sécurité et exploitation : échangeons sur vos pratiques Puppet.

Échanger avec ADN Consulting

Pour aller plus loin