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

印刷ビューの終了

更新: 2016 年 7 月
 
 

Puppet サイトマニフェストを記述する方法

次の手順では、構成をインフラストラクチャー内でグローバルに適用するための Puppet サイトマニフェストを記述する方法について説明します。

始める前に

  1. Puppet Management 権利プロファイルが割り当てられた管理者になるか、または root 役割になります。

    Oracle Solaris 11.3 でのユーザーとプロセスのセキュリティー保護 の 割り当てられている管理権利の使用を参照してください。

  2. Puppet マスター上で site.pp ファイルを作成します。
    # touch /etc/puppet/manifests/site.pp

    このファイルは、マスター上の /etc/puppet/manifests ディレクトリ内に常に存在させてください。

  3. Puppet サイトマニフェスト (site.pp) 内で指定された構成を定義し、変更を保存します。

    詳細は、Oracle Solaris での Puppet リソースおよびリソースタイプの操作を参照してください。

  4. site.pp ファイルに加えた構成の変更が永続的に適用される前に、それらの変更をテストします。
    # puppet apply -v --noop /etc/puppet/manifests/site.pp
    apply

    マスター上の Puppet マニフェストに構成を適用します。

    –v

    冗長モードを使用することを示します。

    –noop

    変更を実際に適用せずにドライランを実行できるようにします。このオプションは、テストのために使用します。

    各ノード上で実行されている Puppet エージェントは、構成の変更がないかどうかマスターに定期的に照会したあと、必要なすべての変更をそのノードに適用します。

  5. 各ノード上のログファイル (/var/log/puppet/puppet-agent.log) をチェックして、最新の構成の変更が取得されていることを確認します。
  6. (オプション) 最新の構成の変更を手動で適用するには、ノード上で次のコマンドを実行します。
    # puppet agent -t

    –t (–-test) オプションを指定すると、詳細ロギングが有効になります。これにより、エージェントデーモンはフォアグラウンドに残り、マスターサーバーの構成が (構文エラーが発生した場合のように) 無効である場合は終了し、そのあとその構成を 1 回実行したあとに終了します。

    使用可能なすべての Puppet サブコマンドを表示するには、/usr/sbin/puppet help agent コマンドを使用します。 puppet (8) のマニュアルページも参照してください。

使用例 2  Puppet マニフェストの記述

次の例は、Puppet サイトマニフェスト内でリソースを宣言する方法を示しています。この例では、site.pp ファイルがすでに作成され、Puppet マスター上の正しいディレクトリ内に格納されていることを前提にしています。

最初に、site.pp ファイル内でリソースを宣言します。この例では、file リソースタイプが宣言されています。このリソースタイプの場合、ensurecontent の 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 を使用したシステム構成の管理を参照してください。