人形-環境会議

Puppetでは、すべての環境に environment.confファイル。このファイルは、マスターがその特定の環境に割り当てられたノードのいずれかまたはすべてのノードにサービスを提供しているときはいつでも、いくつかのデフォルト設定をオーバーライドできます。

ロケーション

Puppetでは、定義されているすべての環境で、environment.confファイルはホーム環境の最上位、マニフェストおよびモジュールディレクターのすぐ隣にあります。例を考えると、環境がデフォルトのディレクトリにある場合(Vipin/testing/environment)、テスト環境の構成ファイルは次の場所にあります。 Vipin/testing/environments/test/environment.conf

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

フォーマット

Puppetのすべての構成ファイルは、同じ方法で同じINIのような形式を使用します。 environment.confファイルは、他の人がpuppet.confファイルと同じようにINIのような形式に従います。environment.confとの唯一の違いpuppet.confenvironment.confファイルに[main]セクションを含めることはできません。environment.confファイルのすべての設定は、構成セクションの外にある必要があります。

値の相対パス

許可されている設定のほとんどは、ファイルパスまたはパスのリストを値として受け入れます。パスのいずれかが関連するパスである場合、それらは先頭のスラッシュまたはドライブ文字なしで始まります-それらはほとんどその環境のメインディレクトリに関連して解決されます。

値の補間

Environment.conf設定ファイルは、他の設定の値を変数として使用できます。environment.confファイルに補間できる有用な変数が複数あります。ここにいくつかの重要な変数のリストがあります-

  • $basemodulepath−モジュールパス設定にディレクトリを含めるのに便利です。Puppetエンタープライズユーザーは通常、この値を含める必要がありますmodulepath Puppetエンジンはモジュールを使用するため basemodulepath

  • $environment−config_versionスクリプトのコマンドライン引数として役立ちます。この変数は、config_version設定でのみ補間できます。

  • $codedir −ファイルの検索に役立ちます。

許可される設定

デフォルトでは、Puppet environment.confファイルは、リストされている構成の4つの設定のみをオーバーライドできます。

  • Modulepath
  • Manifest
  • Config_version
  • Environment_timeout

モジュールパス

これは、environment.confファイルの重要な設定の1つです。modulepathで定義されたすべてのダイレクタは、デフォルトでPuppetによってロードされます。これは、Puppetがモジュールをロードするパスの場所です。これを明示的に設定する必要があります。上記の設定が設定されていない場合、Puppetの環境のデフォルトのモジュールパスは-になります。

<MODULES DIRECTORY FROM ENVIRONMENT>:$basemodulepath

マニフェスト

これは、メインのマニフェストファイルを定義するために使用されます。これは、Puppetマスターが起動し、環境の構成に使用される定義済みのマニフェストからカタログをコンパイルするときに使用します。これでは、単一のファイル、ファイルのリスト、または定義されたアルファベット順で評価およびコンパイルする必要がある複数のマニフェストファイルで構成されるディレクトリを定義できます。

この設定は、environment.confファイルで明示的に定義する必要があります。そうでない場合、Puppetは環境のデフォルトのマニフェストディレクトリをメインマニフェストとして使用します。

Config_version

Config_versionは、カタログとイベントを識別するために使用される明確なバージョンとして定義できます。Puppetがデフォルトでマニフェストファイルをコンパイルすると、生成されたカタログと、Puppetマスターが定義されたカタログをPuppetノードに適用したときに生成されるレポートに構成バージョンが追加されます。Puppetは、スクリプトを実行して上記のすべての手順を実行し、生成されたすべての出力をConfig_versionとして使用します。

環境タイムアウト

これは、Puppetが特定の環境のデータをロードするために使用する必要がある時間の詳細を取得するために使用されます。値がpuppet.confファイルで定義されている場合、これらの値はデフォルトのタイムアウト値を上書きします。

サンプルenvironment.confファイル

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

上記のコードでは $confdir は、環境構成ファイルが配置されているディレクトリのパスです。 $environment 構成が行われている環境の名前です。

ProductionReady環境の構成ファイル

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