Puppet-environment-conf

提供:Dev Guides
移動先:案内検索

Puppet-環境設定

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.conf の唯一の違いは、environment.confファイルに[main]セクションを含めることができないことです。 environment.confファイルのすべての設定は、configセクションの外部にある必要があります。

値の相対パス

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

値の内挿

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

  • $ basemodulepath -モジュールパス設定にディレクトリを含めるのに便利です。 Puppetエンジンは basemodulepath のモジュールを使用するため、通常、Puppetエンタープライズユーザーはこの値 modulepath を含める必要があります。
  • $ environment -config_versionスクリプトのコマンドライン引数として便利です。 この変数は、config_version設定でのみ補間できます。
  • $ codedir -ファイルの検索に役立ちます。

許可された設定

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

  • モジュールパス
  • マニフェスト
  • 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 は、構成が行われている環境の名前です。

実稼働環境の構成ファイル

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