323.1 ホスト構成管理 [Puppet]
323.1 ホスト構成管理 [Puppet]
重要度 2
説明 ホスト構成管理を行うRCSとPuppetの使用方法に精通していること。
主要な知識範囲
・Puppet
重要なファイル、用語、ユーティリティ
- puppet
- puppetd
- puppetmasterd
- /etc/puppet/
Puppet
Puppetとは、システムの設定を管理できるツールです。Puppetには次のような特徴があります
- システムの自動管理ができる
- LinuxやUNIXなどのOSに対応している
- システムの設定をするためのマニフェストを使用する(マニフェストはPuppet独自の宣言言語で記述する)
- クライアント・サーバ型のシステム
マニフェストの基本的な書式
書式
リソース { 'リソース識別名’:
パラメータ1 => 値1,
パラメータ2 => 値2, …
}
例
[ /etc/sample.txt ]は、リソース識別名、[owner], [group], [mode] のパラメータ、[root], [root], [644] はパラメータの値
file { '/etc/sample.txt' : owner => 'root', group => 'root', mode => '644' }
コメンド記述
マニフェストのコメントは、# の後に記述
# test hoge file { '/etc/sample.txt' : owner => 'root', group => 'root', mode => '644' }
node
特定のPuppetクライアントにのみマニフェストを適用する場合は、node を利用します。
以下の例では、client.example.com に適用しています
node 'client.example.com' { file { '/etc/passwd': owner => 'root', group => 'root', mode => 644; } }
複数のノードを宣言することももちろん可能です。
node 'mail.example.com' { file { '/etc/passwd': owner => 'root', group => 'root', mode => 644; } } node 'www.example.com' { file { '/etc/passwd': owner => 'root', group => 'root', mode => 644; } }
node の継承
nodeを継承したマニフェストは、次の例のように記述します
nodeを継承する場合は、inheritsを使用します
node sample { file { '/etc/sample.txt' : owner => 'root', group => 'root', mode => '644' } } node 'www.sample.com' inherits sample { }
クラスの宣言と使用
マニフェストでクラスを宣言して使用する場合は、次のように記述します
class unix { file { '/etc/passwd': owner => 'root', group => 'root', mode => 644; } file { '/etc/shadow': owner => 'root', group => 'root', mode => 440; } exec { 'blah': path => '/usr/bin', cwd => '/tmp', } } # このままではクラスが宣言されただけで,マニフェストの内容は適用されません。 # 適用するにはinclude関数(include クラス名)を実行します。 node client.example.com { include 'unix' }
ディスカッション
コメント一覧
まだ、コメントがありません