CentOS 5.9
puppet 2.6.18 ( puppetd, puppetmasterd ともに同じバージョンです )
puppet 2.6.18 ( puppetd, puppetmasterd ともに同じバージョンです )
■インストール
yum -y install puppet
yum -y install puppet-server
※epelのリポジトリの登録が必要です
yum -y install puppet-server
※epelのリポジトリの登録が必要です
■puppetmasterdサーバ起動
vim /etc/puppet/puppet.conf
main 部分に以下を記載
※servernameにはpuppetmasterdが動作するサーバのホスト名またはIPアドレスを入力してください
main 部分に以下を記載
※servernameにはpuppetmasterdが動作するサーバのホスト名またはIPアドレスを入力してください
server = servernamepuppetmasterd --no-daemonize --d
- --no-daemonizeを指定することでフォアグランドで動作します
- -dはデバッグログを出力するためのオプションです
- Ctrl + c で停止できます
- バックグラウンドで実行した場合に停止する際はkillで停止してください
■マニュフェストファイルの作成
上記puppetmasterdは起動したまま以下の作業を続けます
今回はhostsファイルの権限を変更するサンプルを実行してみます
touch /etc/puppet/manifests/site.pp
emacs /etc/puppet/manifests/site.pp
今回は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もしくはホスト名を入力してください
実行後にhostsファイルを確認すると権限が644になっているかと思います
puppetd --server [servername] --no-daemonize -d
※[servername]にはpuppetmasterdを起動しているサーバのIPもしくはホスト名を入力してください
■参考
puppetで指定できるリソースの一覧
http://docs.puppetlabs.com/references/latest/type.html#file-attributes
リソースのcookbooksサンプル集
http://www.puppetcookbook.com/posts/ensure-service-started-on-boot.html
http://docs.puppetlabs.com/references/latest/type.html#file-attributes
リソースのcookbooksサンプル集
http://www.puppetcookbook.com/posts/ensure-service-started-on-boot.html
●いろんなresourceを使ったサンプルマニュフェスト
1. ファイルを作成する
2. コメントアウト
3. chkconfigをON/OFFにする
4. puppetをpuppetmasterdなしに単独で実行する方法
5. serviceの起動と停止をする方法
6. マニュフェスト内で変数を使用する方法
file { 'test.txt':
path => '/var/tmp/test.txt',
ensure => present,
mode => 644,
content => "これはテスト用のファイルです",
}
pathはフルパスでファイル名まで記載します
mode, contentは記載しなくてもOKです、ない場合は空のファイルを作成するだけです
contentに記載の内容はファイルに書き込まれます、日本語も使えます
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で管理されている必要があります
enable => false,
}
/etc/init.dで管理されている必要があります
4. puppetをpuppetmasterdなしに単独で実行する方法
puppet apply localhost.pp -d
とするとpuppetmasterdが起動していなくてもクライアント単独でpuppetを実行させることが可能です
「-d」を付けることでデバッグログを出力することができます
chefでいうところにchef-soloにあたるのかなと思います
とするとpuppetmasterdが起動していなくてもクライアント単独でpuppetを実行させることが可能です
「-d」を付けることでデバッグログを出力することができます
chefでいうところにchef-soloにあたるのかなと思います
5. serviceの起動と停止をする方法
service { 'tomcat':
#ensure => 'running',
ensure => 'stopped',
}
#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',
}
変数を文字列と結合して参照する場合はダブルクオートで囲うことで変数が展開されます
$file_name = 'test2'
service { $process_name:
#enable => false,
enable => true,
ensure => 'running',
#ensure => 'stopped',
}
file { "/var/tmp/$file_name":
ensure => 'directory',
}
変数を文字列と結合して参照する場合はダブルクオートで囲うことで変数が展開されます
0 件のコメント:
コメントを投稿