Go to main content
Oracle® Solaris 11.3 での Puppet を使用した構成管理の実行

印刷ビューの終了

更新: 2016 年 7 月
 
 

Puppet 構成が SMF によって管理される方法

Puppet のインストールの一部として、Puppet マスターと、Puppet エージェントを実行するノードの両方に Puppet SMF サービスがインストールされます。この SMF サービスには、Puppet マスター用の svc:/application/puppet:master と Puppet エージェント用の svc:/application/puppet:agent の 2 つのインスタンスがあります。Puppet が SMF によって管理されるようにすると、システム更新中に構成を保持するために役立つ階層化された構成を利用できます。

次の出力に示すように、デフォルトでは、両方の Puppet SMF サービスインスタンスが無効になっています。

# svcs -a | grep puppet
disabled       Feb_18   svc:/application/puppet:agent
disabled       Feb_18   svc:/application/puppet:master

初期の Puppet 構成ファイル (etc/puppet/puppet.conf) は、SMF ステンシルを使用して生成されます。これにより、SMF リポジトリ内に格納されているすべての構成が Puppet 構成ファイル内に格納されている構成に正しくマップするようになります。

Puppet は、application/puppet サービスインスタンスで設定されたプロパティーからではなく、/etc/puppet/puppet.conf ファイルから構成情報を読み取ります。必要な構成ファイルを提供するために、各 puppet インスタンスは、ステンシルファイルと configfile プロパティーグループを提供します。configfile プロパティーグループは svcio ユーティリティーに、動作して指定された構成ファイルを作成するよう指示します。ステンシルファイルはそのあと、正しい形式を使用してサービスプロパティー値のデータを構成に書き込むために使用されます。ステンシルの詳細は、Oracle Solaris 11.3 でのシステムサービスの開発 の 第 6 章, ステンシルを使用した構成ファイルの作成を参照してください。

次の例は、configfile プロパティーグループに含まれているすべての puppet サービスプロパティーを示しています。

# svcprop -g configfile puppet
svc:/application/puppet:master/:properties/puppet_stencil/mode astring 0444
svc:/application/puppet:master/:properties/puppet_stencil/path astring /etc/puppet/puppet.conf
svc:/application/puppet:master/:properties/puppet_stencil/stencil astring puppet.stencil
svc:/application/puppet:agent/:properties/puppet_stencil/mode astring 0444
svc:/application/puppet:agent/:properties/puppet_stencil/path astring /etc/puppet/puppet.conf
svc:/application/puppet:agent/:properties/puppet_stencil/stencil astring puppet.stencil

前の出力では、puppet サービスの両方のインスタンスが、同じ値を持つ同じ configfile プロパティーを備えています。各 puppet サービスインスタンスは、構成ファイルへのパス、構成ファイルのモード、およびステンシルファイルへのパスを提供します。

次の例は、これらのインスタンスプロパティーが親サービスから継承されていることを示しています。

# svccfg -s puppet listprop -l all puppet_stencil
puppet_stencil          configfile  manifest
puppet_stencil/mode    astring     manifest              0444
puppet_stencil/path    astring     manifest              /etc/puppet/puppet.conf
puppet_stencil/stencil astring     manifest              puppet.stencil

puppet.conf ファイルに対して構成の変更を行う場合は、このファイルを手動で編集しないでください。次の例に示すように、代わりに SMF コマンドを使用します。

# svccfg -s puppet:agent
svc:/application/puppet:agent> setprop config/report=true
svc:/application/puppet:agent> setprop config/pluginsync=true
svc:/application/puppet:agent> refresh
svc:/application/puppet:agent> exit

SMF コマンドを使用して行なった変更はすべて、Puppet エージェントサービスインスタンスを再起動したときに puppet.conf ファイルに自動的に反映されます。

# svcadm restart puppet:agent
# cat /etc/puppet/puppet.conf
# WARNING: THIS FILE GENERATED FROM SMF DATA.
#     DO NOT EDIT THIS FILE.  EDITS WILL BE LOST.
#
# See puppet.conf(5) and http://docs.puppetlabs.com/guides/configuring.html
# for details.

[agent]

logdest = /var/log/puppet/puppet-agent.log
pluginsync = true
report = true

svccfg(1M) および svcadm(1M) のマニュアルページを参照してください。

puppet.conf ファイルに適用されるすべての構成設定の完全なリストについては、https://docs.puppet.com/puppet/3.6/reference/configuration.html を参照してください。