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ユーザーでやるの?
  • ソフトのバージョンアップとかはどういう感じでやるの?

Comments


Option