Chefの運用をする際の鉄則一条

手動で設定してはならない

手動で設定してはならない。
コレ。
大事なことなので二度言いました。

少なくともChefのカバーする設定範囲を手動で直接触ってはいけない。
一度でも手動で設定を行うと、次にChefを動かすのが怖くなる。(間が開くとなおさら)

加えて例え例外的にでも手動設定を許すと、他にChefで管理しているインフラに関しても、手動設定をしていないと言い切れる自信がなくなり、いつでもChefを実行して大丈夫という勇気が持てなくなる。

逆に必ずChef経由で行うことを守っていればTDDライクにサーバー構築できる楽しいChefライフが送れます。

後で必ずChefのレシピに反映しておけばいいんじゃないの

忘れるから。絶対忘れるから。

Chefの実行に時間がかかるんだけど

run_listに対象のレシピだけを含んだjsonを作って実行してあげればOK

緊急事態なんだ!

なら仕方ない。何にでも例外はある。

だがその前にちょっと考えて欲しい。
その作業はChefで行ってもいいのではなかろうか。

例えばApacheの単純な設定変更などであれば手間は以下のように手動でもChefでもそんなに変わらない。

  • 手動: 直接設定ファイルを変更して再起動する
  • Chef: Cookbook内の設定ファイルを変更してChefを走らせる

一方で関連するレシピが複雑でどう考えても手で変更した方が速いよ、という時もあるだろう。
ただその場合も鉄の掟を犯したという意識は忘れずに。
Chefのレシピに反映するまでが緊急対応です、くらいな気持ちでいるのがよいと思う。