GUIDE TECHNIQUE · PUPPET
Puppet : Hiera : gérer les données par environnement
Séparer le code Puppet des paramètres d'environnement avec Hiera, hiérarchiser les données YAML et vérifier la résolution des valeurs sans stocker de secrets en clair.
L’ESSENTIEL EN BREF
Les étapes clés
Ce guide présente 4 étapes, de « Identifier les paramètres à externaliser » à « Tester la résolution et les priorités ».
Avant de commencer : Module de laboratoire avec classe paramétrée.
01 · CADRAGE
Périmètre et résultat visé
Résultat attendu : Une seule clé résolue est observée dans la hiérarchie choisie.
Public concerné : Équipes plateformes, administrateurs Puppet et responsables de standards de configuration
Puppet et Hiera 5 intégré ; les conventions de hierarchy et les chemins de données dépendent du projet et de son environnement Puppet.
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
- Module de laboratoire avec classe paramétrée.
- Répertoires data/ et manifests/ versionnés dans une branche de recette.
- Une convention d'environnements (recette, intégration, production) et un coffre-fort dédié aux 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
Identifier les paramètres à externaliser
La hiérarchie doit porter des variations utiles, pas dupliquer la logique Puppet.
- Lister les valeurs stables et les valeurs qui changent selon l'environnement.
- Exclure mots de passe, tokens et clés privés non chiffrés des fichiers YAML.
# Exemple de clé de configuration :
site_profile::message: 'recette'À vérifier : La clé attendue et sa politique de gestion sont documentées.
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
Définir la hiérarchie
L'ordre des niveaux détermine la source retenue.
- Créer une configuration hiera.yaml adaptée au root du module ou de l'environnement.
- Définir le backend yaml_data et des emplacements explicites.
version: 5
defaults:
datadir: data
data_hash: yaml_data
hierarchy:
- name: 'Commun'
path: 'common.yaml'À vérifier : La hiérarchie charge data/common.yaml depuis le datadir configuré.
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
Définir une valeur et l'utiliser
La recherche par nom qualifié permet de renseigner automatiquement des paramètres de classe compatibles.
- Créer data/common.yaml avec une valeur non sensible.
- Préparer la classe site_profile pour que son paramètre corresponde au nom de la clé.
# data/common.yaml
site_profile::message: 'pilotage-recette'À vérifier : Le YAML est valide et le nom qualifié correspond au paramètre.
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
Tester la résolution et les priorités
Une valeur Hiera erronée peut produire un changement sur un grand nombre de nœuds.
- Utiliser puppet lookup dans l'environnement qui charge hiera.yaml.
- Contrôler la provenance de la valeur, puis compiler un catalogue noop avant diffusion.
puppet lookup site_profile::message --explain
puppet apply --noop site.ppÀ vérifier : La valeur résolue correspond à la hiérarchie voulue.
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 ?
Une seule clé résolue est observée dans la hiérarchie choisie.
puppet lookup --explain montre la provenance attendue.
Aucun secret en clair n'est ajouté à Git.
06 · DIAGNOSTIC
Problèmes fréquents et résolution
No such key
Cause probable : Fichier YAML non chargé ou clé mal orthographiée
Que faire : Vérifier hiera.yaml, datadir et le contexte de l'environnement.
Valeur inattendue
Cause probable : Un niveau plus prioritaire surcharge common.yaml
Que faire : Inspecter l'ordre de la hiérarchie et l'explication de lookup.
YAML syntax error
Cause probable : Indentation ou quoting incorrect
Que faire : Valider la syntaxe YAML et relancer le lookup avant compilation.
07 · QUESTIONS PRATIQUES
Questions fréquentes
Hiera remplace-t-il les classes ?
Non, Hiera fournit des données ; les manifests définissent les ressources.
Peut-on mettre des secrets dans common.yaml ?
Pas en clair. Employer un backend chiffré approprié ou un gestionnaire de secrets autorisé.
Pourquoi tester --explain ?
Pour comprendre quelle source et quelle priorité fournissent réellement chaque valeur.
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