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'