====================
serverspec
何をするツール?
サーバの設定をテストするツール
設定をテストするにはどうするの?
ソフトのテストになぞらえると
- 構文チェック
- ユニットテスト
- chefspec
- rspec-check
- 結合テスト←今回はここ
- minitest cheaf handler
- cucumber chef
- serverspec ← New!!
serverspec
- 既存ツールは機能が多すぎる=複雑
- 他のツールに依存したくない(puppet,chef)
なんでテストが必要?
- 一度書いたら設定変更しない?いやする
- 変更が入るなら、テストしなきゃ!
- 設定のリファクタリング
- 継続的にやるには自動化!
- テストコードの読みやすさ
- テストツールはシンプルであるべき
serverspecってなにさ
- サーバのテストを「簡潔」に書くための仕組み
- 書式はrspec
- テスト対象のサーバがリモートの場合はssh経由でコマンド実行
- 概念は「スマートにかけるシェルテスト」
serverspecのはじめかた
gem install serverspec rake
serverspec-init
rake spec
簡単
- sshconfigの設定をちゃんと読んでくれる
- 意図的にユーザを指定するときは、helperのソースで指定しましょう
- .rspec に color を書いておこう
- 設定ファイルの中身も(ある程度)チェックできるよ
serverspecが生まれた経緯
1.puppet使って設定してみた
2.テスト報告書はExcelにあるコマンドをひたすら手実行
3.めんどう。assurerを使ってみたけど、これもめんどう
4.puppetマニフェストのリファクタリング(モジュール化)の必要に迫られた
5.既存のツールは、モジュールがないと出来ない
6.じゃぁ、puppet走らせた後の状態を確認するのがいいんじゃない?
7.作っちゃった
プログラム内部のお話
- コールスタック例[type/file.rb → backend/exec.rb → commands/redhat.rb]
- フォーク→ブランチ→コード書いてプッシュ→プルリクエスト
- 途中で、方針、やり方の確認をしたいときは、[WIP]を付けましょう。
tips
- テスト対象のサーバを増やすときは「spec」以下にサーバ名のフォルダを掘る
- ukigumoとか、簡単でいいよね