323.1 ホスト構成管理 [Puppet]

2017-03-06

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

スポンサーリンク