人権真骨頂

とくがたかいことでゆうめい

Itamae + Serverspec でTDD的にMacの環境構築する

serverspec.org

する.

少し前に,Itamaeを利用してLinuxの環境構築を自動化するという記事を書いた.

upamune.hatenablog.com

Macクリーンインストールすることが,多々あるのでこの際Mac用のItamaeも書いておこうと思い,書いた話.

今回は,サーバーの構成をテストできるServerspecを利用してみた.

先に,できたやつを置いておく.

github.com

ほとんど,パッケージのインストールになっている.

テストを書く

Serverspecをインストールして,

$ serverspec-init

を実行して雛形を生成する.

あとは, spec/*/*_spec.rb を書いていけば良い.

ここを見れば,どんな感じに書くか分かる.

serverspec.org

今回は, Homebrewがインストールされているか,各パッケージがインストールされているか,dotfilesが$HOME以下にあるかぐらいしかテストしていないので,特にハマることはなかった.

Itamaeを書く

テストが書けたので,

$ rspec

が通るようにItamaeを書いていく.

今回はMacなので,パッケージのインストールが主になったが,Linuxサーバーをテストファーストで構築できるの良い.

迷ったこと

Itamae と Serverspecから,同じ変数を参照したいみたいになった時に,今回は Common::BasePackages みたいなのを両方から参照するようにしたけど, Node Attributesを利用するのが普通なのだろうか....

しかし,Macの環境構築ぐらいではこれで困らなさそう.

まとめ

普段Rubyを書かないので,もちろんRSpecも書いたことがなかったが,スラスラ書けて良かった.今まで,Serverspecの存在は知っていたけど,いつ使うのかなと思っていた.友人から,TDD的にサーバー構築できますよと言われてなるほどなぁって感じ.これから,Itamaeを利用する時はServerspecも利用しようと思う.