2013年12月9日月曜日

puppetのインストールとサンプルの実行

■環境
CentOS 5.9
puppet 2.6.18 ( puppetd, puppetmasterd ともに同じバージョンです )

■インストール
yum -y install puppet
yum -y install puppet-server
※epelのリポジトリの登録が必要です

■puppetmasterdサーバ起動
vim /etc/puppet/puppet.conf
main 部分に以下を記載
※servernameにはpuppetmasterdが動作するサーバのホスト名またはIPアドレスを入力してください
server = servername
puppetmasterd --no-daemonize --d
  • --no-daemonizeを指定することでフォアグランドで動作します
  • -dはデバッグログを出力するためのオプションです
  • Ctrl + c で停止できます
  • バックグラウンドで実行した場合に停止する際はkillで停止してください

■マニュフェストファイルの作成
上記puppetmasterdは起動したまま以下の作業を続けます
今回はhostsファイルの権限を変更するサンプルを実行してみます
touch /etc/puppet/manifests/site.pp
emacs /etc/puppet/manifests/site.pp
file { '/etc/hosts':
    owner => 'root',
    group => 'root',
    mode  => 644,
}
※.ppファイルの名前が「site」でないとうまく動作しない可能性があります

■puppetdクライアント実行
実行する前にhostsファイルの権限を777とかに変更しておいてください
実行後にhostsファイルを確認すると権限が644になっているかと思います
puppetd --server [servername] --no-daemonize -d
※[servername]にはpuppetmasterdを起動しているサーバのIPもしくはホスト名を入力してください

■参考

●いろんなresourceを使ったサンプルマニュフェスト
1. ファイルを作成する
file { 'test.txt':
  path => '/var/tmp/test.txt',
  ensure => present,
  mode => 644,
  content => "これはテスト用のファイルです",
}
pathはフルパスでファイル名まで記載します
mode, contentは記載しなくてもOKです、ない場合は空のファイルを作成するだけです
contentに記載の内容はファイルに書き込まれます、日本語も使えます

2. コメントアウト
先頭に「#」をつけることで1行のコメントアウト、「/* ... */」で囲うことで複数行のコメントアウトができます

3. chkconfigをON/OFFにする
service { 'tomcat':
  enable => false,
}
/etc/init.dで管理されている必要があります

4. puppetをpuppetmasterdなしに単独で実行する方法
puppet apply localhost.pp -d
とするとpuppetmasterdが起動していなくてもクライアント単独でpuppetを実行させることが可能です
「-d」を付けることでデバッグログを出力することができます
chefでいうところにchef-soloにあたるのかなと思います

5. serviceの起動と停止をする方法
service { 'tomcat':
  #ensure => 'running',
  ensure => 'stopped',
}

6. マニュフェスト内で変数を使用する方法
$process_name = 'tomcat'
$file_name = 'test2'

service { $process_name:
  #enable => false,
  enable => true,
  ensure => 'running',
  #ensure => 'stopped',
}

file { "/var/tmp/$file_name":
  ensure => 'directory',
}
変数を文字列と結合して参照する場合はダブルクオートで囲うことで変数が展開されます


0 件のコメント:

コメントを投稿