記念すべき Itamae meetup 第1回の開催!ということで参加してきました。 各社での Itamae 事例を聞きたいとのことだったので、うちでの事例の話をしてきました。
meetup の内容ですが、全社的には Chef や Ansible を使っているが、自己責任で Itamae を使っている、という事例の話が多かったですね。うちもそうなんですがw
あと、itamae のロゴできてGood╭( ・ㅂ・)و ̑̑
自分の話の内容を少しだけ資料から切り出して書いておくと、Itamae には標準のディレクトリ構成というものがないのですが、Itamae Best Practice にはオススメ構成が書いてあって、それに従うと
$ itamae ssh --host host001 roles/web.rb
のように実行する形になります。ただ、自分としては、
$ itamae host001
$ serverspec host001
のようにホストだけ指定すれば、所属 role を解決してくれて、その role に適用すべき recipe を解決してくれるような仕組みにしたいと思って、ディレクトリ構成含めて、ラッパーを設計して公開しました。
=> https://github.com/sonots/kondate
発表の時に話し忘れたんですが、ホスト名だけを指定するとレシピの組み合わせ、すなわち「献立」を決めてくれる、という意図で kondate という名前にしています。
最初はてきとうに sushi という名前にしていたのですが、itamae meetup にあわせて gem 化しようとしたら、すでに sushi という gem が存在していて、直前になってひねりだしました ^^;
kondate を使うと、フレームワークと名乗っているだけあって、ある程度ディレクトリ構成を規定してくれます。itamae のディレクトリ構成を規定するのに悩みたくない、という方々にとっては良いツールかなと思っています。一方で、Itamae のディレクトリ構成が決まっていない点を、自由度が高い利点だと捉えている自分のような層の人には fit しないかもしれません。まぁ、そういう人は自分で作るだろうから気にしなくていいかなと。
Itamae と Chef との比較ですが、個人的には Itamae はデバグしやすい所が特に気に入っていて、chef の knife-solo で実行しているような場合だと、cookbook がリモートに転送されて、実際にはリモートで chef-solo が実行されるので、byebug のようなデバガを仕込めなかったのですが、itamae ssh はローカルで動くので、ブレークポイントを貼ってデバグできます。itamae ssh 便利\\\\ ٩( ˘ω˘ )و ////
その他発表の詳細は資料を見てもらえると良いですね。Enjoy itamae!