※旧ブログから移植。

Chef-Soloが無くなるので、他の何かに乗り換える必要があるのか。 という話に対してKnife-Zeroをダシに何か言っておこう。

最初に言っておくと、今Chef-Solo、Knife-Soloを使っている人、多分何もしなくていい。

登場人物一覧

  • Chef-Solo
    • Chef-Server無しでローカルサーバにChefのレシピを適用する。Chef-Server非互換(11でほぼ改善)。
  • Chef-Client LocalMode
    • Chef-Server無しでローカルサーバにChefのレシピを適用する。Chef-Server互換。
  • Knife-Solo
    • レシピ一式を転送し、Chef-Soloをリモートサーバに適用する。
    • (追記)全体のワークフローは、VagrantのProvisionerに近い。
  • Knife-Zero
    • レシピ一式を転送せず、SSH越しにChef-Client LocalModeを実行する。
    • (追記)従来のClient/Serverワークフローを踏襲。

全てのChef-Solo関連がにChef-Zero(Chef-Client LocalMode)に変更されるというのは飛躍的な判断

なんとなく騒がれているのは、これの元記事からなのかしら。

基本的にこれはサーバのローカルで実行する場合についての話でしょう、まあそれならChef-Client LocalModeに変えるのはほとんど何も変更はいらないのでよくわかります。

参考: Chef-RFC031 『This means that chef-solo using “local mode” must be 100% backwards-compatible with existing chef-solo usage.』

で、リモートでやるKnife-Soloについて考えた時に、”Chef-Solo無くなる”=”Knife-Solo使えなくなる”でもないわけです。 Knife-Soloは単なる非公式のプラグインであって、公式がこういう記事でいちいち言及しないでしょうね。

少なくともKnife-SoloはChef-Soloと心中なんてしないだろう

日本でKnife-Soloがそこそこ広い認知度を持っているのは、伊藤直也さんの入門Chef Solo - Infrastructure as Codeによるところが大きいでしょう。多分そう、部分的にそう。

この本で覚えたフローや使い方が今後できなくなるかって言うと多分そんなことはなくて。 Knife-Solo開発陣はChefの動向をちゃんと追っています。

add local_mode to solo.rb · Issue #353 · matschaffer/knife-solo

(関連ディレクトリをまるまる転送、リモートでLocalMode相当の実行形式に変更など)

ということでKnife-Soloでやっているものは、基本的にそのまま使い続けることもできそうだと思ってます。 実際Chef-Soloって無くなるのかも不明、もしかしたらChef14とか15になれば居なくなるのかもしれませんね。

Knife-ZeroはミニマムなChef-Server環境とのアップ/ダウングレード移行パス

じゃあKnife-Zeroはどういう位置かというと、Chef-Server環境との相互移行がやりやすいChefの導入方法(の一つ)です。 SSH越しにリモートで実行されるChef-ClientはLocalModeではなく、通常のClientモードとしてChef-Server(SSH元のChef-Zero)に対して接続します。

なのでKnife-Solo(そもそも私は使ってない)の代わりではなく、既存のChef-Serverを畳む用途で作りました。

  • Knife-Zeroではじめて、Node数が増えてきたらChef-Serverへ
  • Node数が少ないChef-ServerをたたんでKnife-Zeroへ

Knife-Zeroは、概ねお一人様用Chef-Serverという感じです。node情報ををgit管理できたり、エディタで手元からしれっとattributeを追加できたりという利点とかありますが。 大人数で保守する場合や、継続的にChef-Clientを実行したい場合、Nodeがとても多い場合は多分Chef-Serverのほうがよいのかと思います。

Knife-Zero豆知識

つらつらと書きましたが、Knife-Zeroは色々と楽をできるように作ったので、新規のシステムをChefで作り始めるとか、既存のシステムにChefを導入するとかならKnife-Zeroをおすすめします。