ようへいの日々精進XP

よかろうもん

puppet のマニフェストを odokumi でテストする

概要


odokumi とは

  • git の ローカルコミットを hook して cookbook や manifest をテストする為の統合テスト環境w
  • CI ツールには altria を利用
  • 仮想マシンには LXC を利用
  • 詳しくは ここ

基本的な流れ

基本的な流れは chef のテストと同じ。差分だけをメモ。

git の hook スクリプト

altria が実行するシェルスクリプト

LXC コンテナの準備

こちらを参考にして puppet 3 系をインストール。一点だけ注意するならば.../etc/resolv.confdomain hoge.com の設定が無い場合、以下のような warning が出てウザいので注意する。

warning: Could not retrieve fact fqdn

ということで、テスト用のコンテナの /etc/resolv.conf` は以下のように記述しておく。

domain inokara.com
nameserver yyy.yyy.yyy.yyy

デモ

manifest を書いて git commit する

以下のように manifest を書いて test.pp として保存。

notice("hogehoge")

おもむろに git commit すると...

f:id:inokara:20130907055843p:plain

hook スクリプトを使って altria に job を post する。

成功

f:id:inokara:20130907060042p:plain

とりあえず成功。赤線のように結果が表示されている。

失敗

ちょっとしたシンタックスエラー(括弧の閉じ忘れ)で commit すると...

f:id:inokara:20130907060348p:plain

ビルドは失敗してエラー内容が赤線のように表示される。


ということで

  • もう少しちゃんと hook スクリプトを書ければ、個人的にはそれなりに使えるかもしれないと思う
  • chef でも puppet でもほぼ同じ感覚でテスト出来るがお気に入り(個人比)
  • 次は Ansible でやるかな