Chefを始めよう #2 Chef ServerとChef Solo

前回は#1 どうやってプロビジョニングしているの?でした。どのようにChefがプロビジョニングをしているか、なんとなく掴めたでしょうか?

今回はプロビジョニングをどうやって行うか、について話していきます。「それ前回もやったじゃん」って思われるかもしれませんが、前回はあくまで仕組みで、今回はいわばその仕組みをどう運用するか、ってところでしょうか。

Chefにはそれがふたつ用意されています。”Chef Server”と”Chef Solo”です。まずはChef Serverから見ていきます。

Chef Serverはその名前の通り、サーバー(ノードでもワークステーションでもない)があります。サーバーは、各ノードがプロビジョニングするための情報を返します。各ノードはそのサーバーのクライアントとなり、クライアントからサーバーにアクセス、プロビジョニングするための情報を受け取ってプロビジョニングしています。

Chef Serverの特長はプロビジョニング対象のノードがたくさんあっても、各ノードに対してひとつずつ操作を実行しなくて良く、サーバーが返す内容を最新に保つだけで各ノードのプロビジョニングが行われる点です。つまり大規模な環境に向いています。ちなみに”サーバーが返す内容を最新に保つ”方法については今後話していきます。

ただこのChef Server、たしかに便利な仕組みですが、対象のノードが極少数しかないような小規模な環境ではちょっとおおげさだと思いませんか?そこでChef Soloの出番です。こちらも”Solo(ソロ)”という名前の通りで、対象ノードが自身でプロビジョニングするための情報を生成し、自身に対してプロビジョニングを行います。よってサーバーは不要です。規模に合わせて使い分けていきましょう、という話ですね。

ただChef Soloはノード単独で動作させるため、対象のノードへsshなりでログインする必要があります。手動でプロビジョニングするときには至って普通の行為ですが、自動化させようと奮闘しているところで「プロビジョニングを実行するときは対象のノードへログインします」って言われたらげんなりします。

そこでKnife Soloの出番です。Knifeはクックブックの雛形を作成したり、Chef Serverのサーバーにクックブックをアップロードしたり、他いろいろ出来るツールです。Chefを少し調べたことがある方なら名前は聞いたことあるんじゃないでしょうか。それのChef Solo用がKnife Soloです。前回ワークステーションは”あなたが普段使用しているパソコン”と説明しつつ、”正確な定義ではありません”と付け加えました。実際のところはこのKnife(Knife Solo)がインストールされているマシンをワークステーションと呼びます。

Knife Soloの話でしたね。これを使えばワークステーション上にあるキッチンの内容をノードに送り、Chef Soloを実行させることが出来るのです。sshでログインする必要がない!素敵ですね。

まとめると:

  • プロビジョニングは”Chef Server”または”Chef Solo”で実行できる
  • Chef Serverは大規模な環境向け
  • Chef Soloは小規模な環境向け
  • “Knife Solo”を使えばワークステーション上からChef Soloでプロビジョニングできる

です。

次回はChef Zeroについて説明する予定です。それでは〜。

コニョル

ソロって言われると寂しさが込み上げる

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>