はじめに

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