はじめに
example.comは各自のドメインに置き換えてご覧下さい。
また、Subversionを使用してデータファイルの管理を行うので予めSubversionを導入しておいて下さい。
インストール
$ sudo portinstall sysutils/puppet
初期設定
rc スクリプトの有効化
$ sudo sh -c 'printf "\n# puppet server" >> /etc/rc.conf'
$ sudo sh -c 'printf "\npuppetmasterd_enable=\"YES\"" >> /etc/rc.conf'
$ sudo sh -c 'printf "\n# puppet client" >> /etc/rc.conf'
$ sudo sh -c 'printf "\npuppetd_enable=\"YES\"" >> /etc/rc.conf'
受け入れ先ホストの設定
$ sudo touch /usr/local/etc/puppet/namespaceauth.conf
$ sudoedit /usr/local/etc/puppet/namespaceauth.conf
# server side
[puppetmaster]
allow *.example.com
[puppetreports]
allow *.example.com
[fileserver]
allow *.example.com
# client side
[puppetrunner]
allow *.example.com
自動署名ホストの設定
$ sudo touch /usr/local/etc/puppet/autosign.conf
$ sudoedit /usr/local/etc/puppet/autosign.conf
*.example.com
マニフェストの定義
ルートマニフェストファイル
$ sudo touch /usr/local/etc/puppet/manifests/site.pp
$ sudoedit /usr/local/etc/puppet/manifests/site.pp
# $Id$
#
# Puppet Manifests
# FreeBSD Class
class freebsd {
import "freebsd/*"
package { portaudit: ensure => present, provider => freebsd }
}
case $operatingsystem {
freebsd: { freebsd {} } # # apply the solaris class
}
マスターサーバの起動
$ sudo /usr/local/etc/rc.d/puppetmasterd start
接続テスト
試しに/etc/hostsのパーミッションを600にして接続してみる。
$ sudo chmod 600 /etc/hosts
$ sudo puppetd --server puppetmaster.example.com --verbose --test
notice: Ignoring --listen on onetime run
notice: Ignoring cache
info: No classes to store
info: Caching catalog at /var/puppet/state/localconfig.yaml
notice: Starting catalog run
notice: //File[/etc/hosts]/mode: mode changed '600' to '644'
Changes:
Total: 1
Resources:
Applied: 1
Out of sync: 1
Scheduled: 9
Total: 10
Time:
Config retrieval: 0.57
File: 0.00
Filebucket: 0.00
Schedule: 0.00
Total: 0.58
notice: Finished catalog run in 0.02 seconds
以下のようにパーミッションを変更した旨が出力されていれば成功。
notice: //File[/etc/hosts]/mode: mode changed '600' to '644'
Tips
vimのヘルパーモードを有効にする
$ mkdir -p ${HOME}/.vim/plugin/
$ cd ${HOME}/.vim/
$ fetch https://reductivelabs.com/svn/puppet/trunk/ext/vim/filetype.vim
$ cd ${HOME}/.vim/plugin/
$ fetch https://reductivelabs.com/svn/puppet/trunk/ext/vim/puppet.vim
この他にも以下のSubversionリポジトリから便利なツール類がダウンロード出来る。
https://reductivelabs.com/svn/puppet/trunk/ext/
参考リンク
puppet - Trac
Puppet FreeBSD - puppet - Trac
連載:オープンソースなシステム自動管理ツール Puppet|gihyo.jp … 技術評論社
puppet wiki (パペウィキ) - Trac
OSC2007
ネットワーク上でのシステム管理を容易にするPuppet - SourceForge.JP Magazine
Puppet - nabeken - Trac