さくらのVPSをもう一つ契約したこともあってChef Soloにはまっている。Chef Soloが無敵すぎてヤバイ。
まだ試せていないが使えるならRaspberry Piのセットアップにも使いたいと思う。自宅サーバをRaspberry Piに変えたけど、壊れてもAmazonで購入して次の日Chefでセットアップして復旧という妄想だけはしている。
Chef Soloは基本的にnaoyaさんのKindle本とコミニティのCookbooks読んでたらなんとかなった。プログラミングなんて人のコードを読んで真似して成長していくもんだからサードパーティ製のcookbookがたくさんあるのはありがたい。入門Chef SoloはChefバージョンが少し古いのでChefのサイトとあわせて進めていくと良いと思う。
Boxen+Puppetの時は心が折れたんだけどChef Soloは楽しめてる。初期セットアップだけじゃなくてちょっと設定変えたいときも使えるので重宝している。これまでサーバの設定変える時とかにEvernoteで一生懸命作業ログ書いてたけど今はrecipeやtemplateを書きなおして knife solo
で反映するだけでいいから作業ログを書く必要もなければリモートサーバにログインする必要もない。テキストの作業ログだとマシンごとに微妙に設定変えるときに管理し辛かったんだけどChefならnode(マシン)ごとに属性をもたせられるのでそれで分岐すればいい。履歴はcookbookをリポジトリで管理すればそれで済む。なんかChefが便利すぎて逆に自動化してないエンジニアを見下してしまいそうだ。
「私は常に勉強しているがあなた方は常に時代遅れだ」by ジョゼ・モウリーニョ
Chef Solo入門にはサードパーティ製のcookbookを使うよりもまず自分で書いたほうがブラックボックスにならず良いのでは?とあったがそれは正しかった。最初はその助言を無視して車輪の再発明をする必要はないと使いまくっていたのだが何かすこし道を外れようとすると彷徨って迷子になる。例えばapache2のcookbookが2.2の設定ファイルになっているので2.4入れたらコケるとか。
なのでバランスを取ってあみ出したのは自分で作るけど、とりあえずサードパーティ製のcookbookを読んで参考にできる部分は抜き出すというようにしてる。参考にするから再発明にならないし使うOSが定まっている場合はそれにそってシンプルに書いた方があきらかに保守性で勝る。
あとはcookbook_fileは使わないでtemplateをメインに使った方がいいのかなと思い始めている。最初は静的で済むならとcookbook_fileリソースを使っていたけど、段々node(マシン)によって設定を変えたくなってtemplateに移行することになる。そうなると設定ファイルによってcookbook_fileとtemplateが混在することになって何がどっちにあるかいちいち混乱する。なので動的に変える部分がなくてもtemplateだけ使っていた方がいいんじゃないかと思っているところ。
というわけでまだ使ってない人は時代遅れになる前に試してみると良いと思う。