Itamae + Serverspec でTDD的にMacの環境構築する
する.
少し前に,Itamaeを利用してLinuxの環境構築を自動化するという記事を書いた.
Macもクリーンインストールすることが,多々あるのでこの際Mac用のItamaeも書いておこうと思い,書いた話.
今回は,サーバーの構成をテストできるServerspecを利用してみた.
先に,できたやつを置いておく.
ほとんど,パッケージのインストールになっている.
テストを書く
Serverspecをインストールして,
$ serverspec-init
を実行して雛形を生成する.
あとは, spec/*/*_spec.rb
を書いていけば良い.
ここを見れば,どんな感じに書くか分かる.
今回は, Homebrewがインストールされているか,各パッケージがインストールされているか,dotfilesが$HOME以下にあるかぐらいしかテストしていないので,特にハマることはなかった.
Itamaeを書く
テストが書けたので,
$ rspec
が通るようにItamaeを書いていく.
今回はMacなので,パッケージのインストールが主になったが,Linuxサーバーをテストファーストで構築できるの良い.
迷ったこと
Itamae と Serverspecから,同じ変数を参照したいみたいになった時に,今回は Common::BasePackages
みたいなのを両方から参照するようにしたけど, Node Attributesを利用するのが普通なのだろうか....
しかし,Macの環境構築ぐらいではこれで困らなさそう.
まとめ
普段Rubyを書かないので,もちろんRSpecも書いたことがなかったが,スラスラ書けて良かった.今まで,Serverspecの存在は知っていたけど,いつ使うのかなと思っていた.友人から,TDD的にサーバー構築できますよと言われてなるほどなぁって感じ.これから,Itamaeを利用する時はServerspecも利用しようと思う.