Marionnette - Conf Environnement

Dans Puppet, tous les environnements ont environment.conffichier. Ce fichier peut remplacer plusieurs paramètres par défaut chaque fois que le maître dessert l'un des nœuds ou tous les nœuds affectés à cet environnement particulier.

Emplacement

Dans Puppet, pour tous les environnements définis, le fichier environment.conf est situé au niveau supérieur de son environnement d'origine, tout à côté du manifeste et des directeurs des modules. Prenons un exemple, si votre environnement est dans les répertoires par défaut(Vipin/testing/environment), puis le fichier de configuration de l'environnement de test se trouve dans Vipin/testing/environments/test/environment.conf.

Exemple

# /etc/testingdir/code/environments/test/environment.conf  
# Puppet Enterprise requires $basemodulepath; see note below under modulepath". 
modulepath = site:dist:modules:$basemodulepath  
# Use our custom script to get a git commit for the current state of the code: 
config_version = get_environment_commit.sh

Format

Tous les fichiers de configuration de Puppet utilisent le même format de type INI de la même manière. environment.confLe fichier suit le même format de type INI que d'autres comme le fichier puppet.conf. La seule différence entre environment.conf etpuppet.confCe fichier environment.conf ne peut pas contenir la section [main]. Tous les paramètres du fichier environment.conf doivent être en dehors de toute section de configuration.

Chemin relatif dans les valeurs

La plupart des paramètres autorisés acceptent le chemin du fichier ou la liste des chemins comme valeur. Si l'un des chemins est un chemin pertinent, il commence sans barre oblique ni lettre de lecteur - ils seront principalement résolus par rapport au répertoire principal de cet environnement.

Interpolation dans les valeurs

Le fichier de paramètres Environment.conf est capable d'utiliser les valeurs d'autres paramètres comme variables. Il existe plusieurs variables utiles qui pourraient être interpolées dans le fichier environment.conf. Voici une liste de quelques variables importantes -

  • $basemodulepath- Utile pour inclure des répertoires dans les paramètres du chemin du module. L'utilisateur d'entreprise Puppet doit généralement inclure cette valeur demodulepath puisque le moteur Puppet utilise le module dans le basemodulepath.

  • $environment- Utile comme argument de ligne de commande pour votre script config_version. Vous ne pouvez interpoler cette variable que dans le paramètre config_version.

  • $codedir - Utile pour localiser les fichiers.

Paramètres autorisés

Par défaut, le fichier Puppet environment.conf ne peut remplacer que quatre paramètres de la configuration, comme indiqué.

  • Modulepath
  • Manifest
  • Config_version
  • Environment_timeout

Modulepath

Il s'agit de l'un des paramètres clés du fichier environment.conf. Tous les directeurs définis dans modulepath sont chargés par défaut par Puppet. Il s'agit de l'emplacement du chemin à partir duquel Puppet charge ses modules. Il faut explicitement configurer cela. Si ce paramètre ci-dessus n'est pas défini, le chemin d'accès par défaut de tout environnement dans Puppet sera -

<MODULES DIRECTORY FROM ENVIRONMENT>:$basemodulepath

Manifeste

Ceci est utilisé pour définir le fichier manifeste principal, que Puppet Master utilisera lors du démarrage et de la compilation du catalogue à partir du manifeste défini qui sera utilisé pour configurer l'environnement. En cela, nous pouvons définir un seul fichier, une liste de fichiers ou même un répertoire composé de plusieurs fichiers manifestes qui doivent être évalués et compilés dans une séquence alphabétique définie.

Il faut définir explicitement ce paramètre dans le fichier environment.conf. Sinon, Puppet utilisera le répertoire du manifeste par défaut de l'environnement comme manifeste principal.

Config_version

Config_version peut être défini comme une version définie utilisée pour identifier les catalogues et les événements. Lorsque Puppet compile un fichier manifeste par défaut, il ajoute une version de configuration aux catalogues générés ainsi qu'aux rapports qui sont générés lorsque le maître Puppet applique un catalogue défini sur les nœuds Puppet. Puppet exécute un script pour effectuer toutes les étapes ci-dessus et utilise toute la sortie générée en tant que Config_version.

Délai d'expiration de l'environnement

Il est utilisé pour obtenir des détails sur le temps que Puppet doit utiliser pour charger les données pour un environnement donné. Si la valeur est définie dans le fichier puppet.conf, ces valeurs remplaceront la valeur de délai d'expiration par défaut.

Exemple de fichier environment.conf

[master] 
   manifest =  $confdir/environments/$environment/manifests/site.pp 
   modulepath =  $confdir/environments/$environment/modules

Dans le code ci-dessus $confdir est le chemin du répertoire dans lequel se trouvent les fichiers de configuration d'environnement. $environment est le nom de l'environnement pour lequel la configuration est effectuée.

Fichier de configuration de l'environnement prêt pour la production

# The environment configuration file  
# The main manifest directory or file where Puppet starts to evaluate code  
# This is the default value. Works with just a site.pp file or any other  
manifest = manifests/  
# The directories added to the module path, looked in first match first used order:  
# modules - Directory for external modules, populated by r10k based on Puppetfile  
# $basemodulepath - As from: puppet config print basemodulepath  
modulepath = site:modules:$basemodulepath  
# Set the cache timeout for this environment.  
# This overrides what is set directly in puppet.conf for the whole Puppet server  
# environment_timeout = unlimited  
# With caching you need to flush the cache whenever new Puppet code is deployed  
# This can also be done manually running: bin/puppet_flush_environment_cache.sh  
# To disable catalog caching:  
environment_timeout = 0  
# Here we pass to one in the control repo the Puppet environment (and git branch)  
# to get title and essential info of the last git commit
config_version = 'bin/config_script.sh $environment'