Marionette - Umwelt Conf

In Puppet haben alle Umgebungen die environment.confDatei. Diese Datei kann mehrere Standardeinstellungen überschreiben, wenn der Master einen der Knoten oder alle dieser bestimmten Umgebung zugewiesenen Knoten bedient.

Ort

In Puppet befindet sich die Datei environment.conf für alle definierten Umgebungen auf der obersten Ebene ihrer Heimumgebung direkt neben den Direktoren für Manifest und Module. Betrachten Sie ein Beispiel, wenn sich Ihre Umgebung in Standardverzeichnissen befindet(Vipin/testing/environment)Dann befindet sich die Konfigurationsdatei der Testumgebung unter Vipin/testing/environments/test/environment.conf.

Beispiel

# /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

Alle Konfigurationsdateien in Puppet verwenden auf dieselbe Weise dasselbe INI-ähnliche Format. environment.confDie Datei hat dasselbe INI-ähnliche Format wie andere die Datei puppet.conf. Der einzige Unterschied zwischen environment.conf undpuppet.confDie Datei environment.conf darf den Abschnitt [main] nicht enthalten. Alle Einstellungen in der Datei environment.conf müssen sich außerhalb eines Konfigurationsabschnitts befinden.

Relativer Pfad in Werten

Die meisten zulässigen Einstellungen akzeptieren den Dateipfad oder die Pfadliste als Wert. Wenn einer der Pfade ein relevanter Pfad ist, beginnen sie ohne einen führenden Schrägstrich oder einen Laufwerksbuchstaben. Sie werden meistens relativ zum Hauptverzeichnis dieser Umgebung aufgelöst.

Interpolation in Werten

Die Einstellungsdatei Environment.conf kann Werte anderer Einstellungen als Variable verwenden. Es gibt mehrere nützliche Variablen, die in die Datei environment.conf interpoliert werden können. Hier ist eine Liste einiger wichtiger Variablen -

  • $basemodulepath- Nützlich, um Verzeichnisse in die Modulpfadeinstellungen aufzunehmen. Puppet Enterprise-Benutzer sollten normalerweise diesen Wert von angebenmodulepath da die Puppet Engine Modul in der verwendet basemodulepath.

  • $environment- Nützlich als Befehlszeilenargument für Ihr Skript config_version. Sie können diese Variable nur in der Einstellung config_version interpolieren.

  • $codedir - Nützlich zum Auffinden von Dateien.

Zulässige Einstellungen

Standardmäßig darf die Datei Puppet environment.conf nur vier Einstellungen in der aufgeführten Konfiguration überschreiben.

  • Modulepath
  • Manifest
  • Config_version
  • Environment_timeout

Modulepath

Dies ist eine der Schlüsseleinstellungen in der Datei environment.conf. Alle in modulepath definierten Direktoren werden standardmäßig von Puppet geladen. Dies ist der Pfad, von dem aus Puppet seine Module lädt. Man muss dies explizit einrichten. Wenn diese obige Einstellung nicht festgelegt ist, lautet der Standardmodulpfad einer Umgebung in Puppet -

<MODULES DIRECTORY FROM ENVIRONMENT>:$basemodulepath

Manifest

Dies wird verwendet, um die Hauptmanifestdatei zu definieren, die Puppet Master beim Starten und Kompilieren des Katalogs aus dem definierten Manifest verwendet, das zum Konfigurieren der Umgebung verwendet werden soll. Hier können wir eine einzelne Datei, eine Liste von Dateien oder sogar ein Verzeichnis definieren, das aus mehreren Manifestdateien besteht, die in einer definierten alphabetischen Reihenfolge ausgewertet und kompiliert werden müssen.

Diese Einstellung muss explizit in der Datei environment.conf definiert werden. Wenn nicht, verwendet Puppet das Standardmanifestverzeichnis der Umgebung als Hauptmanifest.

Config_version

Config_version kann als bestimmte Version definiert werden, mit der Kataloge und Ereignisse identifiziert werden. Wenn Puppet standardmäßig eine Manifestdatei kompiliert, fügt es den generierten Katalogen sowie den Berichten eine Konfigurationsversion hinzu, die generiert wird, wenn der Puppet-Master einen definierten Katalog auf Puppet-Knoten anwendet. Puppet führt ein Skript aus, um alle oben genannten Schritte auszuführen, und verwendet die gesamte generierte Ausgabe als Config_version.

Umgebungs-Timeout

Es wird verwendet, um Details über die Zeit abzurufen, die Puppet zum Laden von Daten für eine bestimmte Umgebung verwenden sollte. Wenn der Wert in der Datei puppet.conf definiert ist, überschreiben diese Werte den Standardwert für das Zeitlimit.

Beispieldatei environment.conf

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

Im obigen Code $confdir ist der Pfad des Verzeichnisses, in dem sich Umgebungskonfigurationsdateien befinden. $environment ist der Name der Umgebung, für die die Konfiguration durchgeführt wird.

Produktionsbereite Umgebungskonfigurationsdatei

# 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'