Vagrand, Puppet, Guard
ええと以下なリポジトリにあるナニを試してみているのですが
どうも一度 vagrand up したソレに Puppet などでパケジ導入などをヤッてしまうと、導入したパケジは以降そのまんまになっちゃうらしい。当たり前っちゃ当たり前ですが。
で、今 vagrant package して雛形を作り、それを元に box add とかしてやれ、と思っているのですが、試験を kickoff する度に Guard あたりが setup/teardown な処理として vagrant box add/remove してくれないかなぁ、と。
もうひとつ
なエントリにもある通り、試験をパスするためには apt-get update を実行しなければ、Puppet が apache2 を導入することができないようです。
こちらも Puppet 方面から何とかならないか、と試行錯誤した結果、puppet-repo/modules に aptsetup/manifest というディレクトリを掘って init.pp というファイル名で以下な情報を投入して
class aptsetup { exec { subscribe-echo: command => "/usr/bin/apt-get update", logoutput => true } }
あとは modules/truth/manifests/enforcer.pp に include aptsetup を追加すれば guard の中で apt-get update していることを確認してます。以下に一部のみ引用。
class truth::enforcer { group { "puppet": ensure => "present", } include aptsetup if has_role("webserver") {
vagrant 云々な問題はありますが、これでようやくスタート地点に立てた模様。とりあえず、apt-get update なナニは commit を作って pull request 投げてみようかな。
# 作法を知らんのだけど大丈夫かな
追記
上記の方法だと vagrant up した時に apt-get update が動くみたい。困ったなぁ。