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 を参照してください。