次の手順では、構成をインフラストラクチャー内でグローバルに適用するための Puppet サイトマニフェストを記述する方法について説明します。
始める前に
Puppet サイトマニフェストを記述する前に、次を実行する必要があります。
マニフェスト内でどのリソースタイプを宣言するかを決定します。この情報は、指定されたリソースタイプで使用可能なすべての属性とパラメータを表示する puppet describe resource-type コマンドを使用して入手できます。
# puppet describe resource-type
Puppet リソースタイプの説明を参照してください。
Puppet マニフェスト内でリソースを宣言するために使用する基本的な構文について理解します。Puppet リソースの宣言についてを参照してください。詳細は、https://docs.puppet.com/puppet/latest/reference/lang_resources.html を参照してください。
Puppet マニフェスト内で特定の Oracle Solaris システム構成を定義するために使用する構文について理解します。例については、Oracle Solaris での Puppet を使用したシステム構成の管理を参照してください。
Oracle Solaris 11.3 でのユーザーとプロセスのセキュリティー保護 の 割り当てられている管理権利の使用を参照してください。
# touch /etc/puppet/manifests/site.pp
このファイルは、マスター上の /etc/puppet/manifests ディレクトリ内に常に存在させてください。
詳細は、Oracle Solaris での Puppet リソースおよびリソースタイプの操作を参照してください。
# puppet apply -v --noop /etc/puppet/manifests/site.pp
マスター上の Puppet マニフェストに構成を適用します。
冗長モードを使用することを示します。
変更を実際に適用せずにドライランを実行できるようにします。このオプションは、テストのために使用します。
各ノード上で実行されている Puppet エージェントは、構成の変更がないかどうかマスターに定期的に照会したあと、必要なすべての変更をそのノードに適用します。
# puppet agent -t
–t (–-test) オプションを指定すると、詳細ロギングが有効になります。これにより、エージェントデーモンはフォアグラウンドに残り、マスターサーバーの構成が (構文エラーが発生した場合のように) 無効である場合は終了し、そのあとその構成を 1 回実行したあとに終了します。
使用可能なすべての Puppet サブコマンドを表示するには、/usr/sbin/puppet help agent コマンドを使用します。 puppet (8) のマニュアルページも参照してください。
次の例は、Puppet サイトマニフェスト内でリソースを宣言する方法を示しています。この例では、site.pp ファイルがすでに作成され、Puppet マスター上の正しいディレクトリ内に格納されていることを前提にしています。
最初に、site.pp ファイル内でリソースを宣言します。この例では、file リソースタイプが宣言されています。このリソースタイプの場合、ensure と content の 2 つの属性が指定されています。これらの 2 つの属性は、そのノード上の root ディレクトリ内に custom-file.txt ファイルが存在し、そのファイルに単語「Hello World」が含まれていることを確認します。
file { '/custom-file.txt': ensure => 'present', content => "Hello World", }
site.pp ファイルを保存したあと、マスター上の構成の有効性を次のようにテストできます。
# puppet apply -v --noop /etc/puppet/manifests/site.pp Notice: Compiled catalog for master in environment production in 0.16 seconds Info: Applying configuration version '1400794990' Notice: /Stage[main]/Main/File[/custom-file.txt]/ensure: current_value absent, should be present (noop) Notice: Class[Main]: Would have triggered 'refresh' from 1 events Notice: Stage[Main]: Would have triggered 'refresh' from 1 events Notice: Finished catalog run in 0.27 seconds
–v オプションは冗長モードを使用することを指定し、–noop オプションは、実際にはどの変更も行われないようにします。テストのために –noop オプションを使用すると、マニフェストに対して変更を実際に適用せずにドライランを実行できます。
各ノード上で実行されている Puppet エージェントは、構成の変更がないかどうかマスターに定期的に照会したあと、必要に応じて新しい変更をすべて適用します。ノードのログファイル (/var/log/puppet/puppet-agent.log) をチェックして、そのノードが最新の変更を適用したことを確認できます。
# ls -la /custom-file.txt -rw------- 1 root root 16 Mar 22 21:50 /custom-file.txt # cat /custom-file.txt Hello World # tail /var/log/puppet/puppet-agent.log .... 2016-03-22 21:50:17 +0000 /Stage[main]/Main/File[/custom-file.txt]/ensure (notice): created 2016-03-22 21:50:17 +0000 Puppet (notice): Finished catalog run in 0.21 seconds
前の出力は、その構成がノードに適用されていることを示しています。デフォルトでは、エージェントは構成の変更がないかどうか 30 分間隔でマスターをポーリングします。また、custom-file.txt ファイルがノード上に存在するかどうかをチェックすることによって構成を確認することもできます。
オプションで、ノード上で次のコマンドを実行することによって構成の変更を手動で適用します。
# puppet agent -t
Puppet を使用して Oracle Solaris システム構成を定義する方法を示す具体的な例については、Oracle Solaris での Puppet を使用したシステム構成の管理を参照してください。