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' }
      
  
  
  
  
コメント