Sunzi: Server provisioning utility for minimalists
"The supreme art of war is to subdue the enemy without fighting." - Sunzi
いわゆるchefのようなサーバープロビジョニングツール。
特徴
- レシピはshell script
 - 冪等性?犬にくれてやれ!
 - root前提
 - デフォルト設定との差分だけを設定する
 - サーバー側に入れなきゃいけないソフトは無し(shell scriptだから)
 
ミニマリスト向けツールに見えますが意外と高機能で、基本的にknife-soloのようにクライアントからサーバーに対して使うの前提だし、berkshelfのようにリモートのrecipeを取り込む機能があるし、erbのテンプレートやweb, dbみたいなrole機能もあります。
そもそも俺はdebian(今だったらwheezy)しか使わないし、冪等性とか要らないし、VPSをサクッと設定したいだけなのでちょうどハマりました。
recipes/ruby.sh:
apt-get install -y ruby1.9.3
例えばrubyのrecipeはこんな感じ(少しだけ賢いsunzi.installの方がおすすめですが)。shell scriptなので他人のrecipeがいきなり読めるのがおっさんエンジニアには嬉しい。ちょっとした設定書き換えをsedでやってるの見るとホッとします。
これだったらちょこっと設定してcapistranoでrailsアプリデプロイするとこまで道筋がすごく見えやすいです。
vagrantでsandbox rollbackしながらrecipeを書いてくのが快適です。
疑問
仕事に使おうとしてるんですがいくつか疑問点が。
- 鍵認証のrootユーザー、sshはデフォルトの22番で運用するのが普通?
 - capistranoでdeploy(=appサーバーの実行者)もrootユーザーでやるの?
 - ソフトのバージョンアップとかはどういう感じでやるの?
 
