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' }


コメント