Aller au contenu

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.

Niveau Intermédiaire3 min de lecture— vuesPuppet

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

Environnement et versions

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

ARCHITECTURE TECHNIQUEComprendre la chaîne de bout en bout
01Code de classe
02hiera.yaml
03Données common
04Données environnement
05Lookup
06Catalogue
Une clé Hiera est recherchée selon la hiérarchie active ; les données ne changent pas le catalogue tant qu'une classe ou un lookup ne les consomme.

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

Identifier les paramètres à externaliser

La hiérarchie doit porter des variations utiles, pas dupliquer la logique Puppet.

  1. Lister les valeurs stables et les valeurs qui changent selon l'environnement.
  2. Exclure mots de passe, tokens et clés privés non chiffrés des fichiers YAML.
Exemple techniqueÀ adapter à votre environnement
# Exemple de clé de configuration :
site_profile::message: 'recette'
Ce qui se passe à cette étape
1Configuration
2Données
3Vérification

À 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.

02

ÉTAPE 2 / 4

Définir la hiérarchie

L'ordre des niveaux détermine la source retenue.

  1. Créer une configuration hiera.yaml adaptée au root du module ou de l'environnement.
  2. Définir le backend yaml_data et des emplacements explicites.
Exemple techniqueÀ adapter à votre environnement
version: 5
defaults:
  datadir: data
  data_hash: yaml_data
hierarchy:
  - name: 'Commun'
    path: 'common.yaml'
Ce qui se passe à cette étape
1Hiera config
2Niveau common
3Vérification

À 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.

03

É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.

  1. Créer data/common.yaml avec une valeur non sensible.
  2. Préparer la classe site_profile pour que son paramètre corresponde au nom de la clé.
Exemple techniqueÀ adapter à votre environnement
# data/common.yaml
site_profile::message: 'pilotage-recette'
Ce qui se passe à cette étape
1YAML
2Lookup
3Vérification

À 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.

04

É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.

  1. Utiliser puppet lookup dans l'environnement qui charge hiera.yaml.
  2. Contrôler la provenance de la valeur, puis compiler un catalogue noop avant diffusion.
Exemple techniqueÀ adapter à votre environnement
puppet lookup site_profile::message --explain
puppet apply --noop site.pp
Ce qui se passe à cette étape
1Lookup
2Explain
3Vérification

À 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.

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

Une seule clé résolue est observée dans la hiérarchie choisie.

02

puppet lookup --explain montre la provenance attendue.

03

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

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