Chefを始めよう #1 どうやってプロビジョニングしているの?

それでは前回のChefを始めよう #0で宣言したとおり、Chefを実際に始めてみます。

と言いましても、言葉が分からなければ何を言っているのか分からないものです。「意味が分からない」という印象の大半はここにあるんじゃないかなーって思います。ですので、まずは用語から軽く触れていきます。前回の記事を読んだ同僚があの文章のことを「完全にプロローグ」と言っていましたが、今回もプロローグレベルかもしれません。今回もそのように言われてしまっても構わない覚悟で行きます。つよく生きたい。

さて、Chefです。Chefは一体何をするものでしょうか。プロビジョニングです。そのためには何が必要でしょうか?

まずプロビジョニングしたい対象(ウェブサーバー、アプリケーションサーバー、データベースサーバーなど)です。当たり前ですね。だってプロビジョニングをするものがChefなのですから。Chefではこのようにプロビジョニングの対象を”ノード(Node)”と呼びます。

そして”ワークステーション(Workstation)”。これはあなたがログインするマシンです。もっと言うとあなたが普段使用しているパソコンです。正確な定義ではありませんが、今はそれぐらいの認識で行きましょう。

基本はこのふたつがあればOKです。なので、この記事をご覧になっているパソコン(携帯機器だったらすみません)でさくら VPSなりを契約すればすぐにでも試すことが出来ます。もちろん、VirtualBoxなどの仮想化ソフトウェアをノードに見立てることも出来ますよ。もっともっと言えば、ワークステーション自身をノードとする場合、つまりあなたが普段使っているパソコンをプロビジョニングすることだって出来ちゃいます。

他にもいろいろな構成がありますが、それは追々説明していきます。

ではどうやってノードをプロビジョニングするのでしょうか。簡単です。キッチンをまず作り、クックブックを用意し、どのレシピを使うかを書いていきます。うーん、さっぱり分からん。言葉で言うのは簡単ってやつですね。

Chefはしばしばプロビジョニングを調理に例えています。要はワークステーションを介してノードを調理してあげるわけです。”レシピ(Recipe)”はその調理手順、つまり”どうやってインストールするか”や”どんな設定を施すか”を記述したもので、実体はRubyで書かれたスクリプトです。そのレシピをまとめたものが”クックブック(Cookbook)”です。クックブックは特定のディレクトリ構成をしていて、レシピがその中に配置されているわけです。そのクックブックを置くところが”キッチン(Kitchen)”と呼ばれます。

具体的な例を挙げましょう。Ruby on Railsで書かれたアプリケーションを動作させるサーバーをプロビジョニングしたいとします。Ruby on Railsのアプリケーションを動作させなければいけないので、rubyのインストールは必須ですよね。そのアプリケーションがMySQLをデータベースとして使うのであれば、少なくともMySQLに接続するためのクライアントも必須になります。

となると、必要なクックブックは”rubyのためのクックブック”と”MySQLのためのクックブック”です。その中から使用するレシピは”rubyをインストールするレシピ”と”MySQLのクライアントをインストールするためのレシピ”です。アプリケーションサーバーの他にデータベースサーバーがある場合、そちらに接続するため、MySQLのサーバーはアプリケーションサーバーにインストールする必要がありません。むしろ余計なものなので、出来る限りインストールしたくありません。ですので、”MySQLのためのクックブック”から”MySQLのクライアントをインストールするためのレシピ”だけを使用するのです。

あとはそのふたつのクックブックを置いて、「このレシピを使うよー」という感じでとりまとめた”アプリケーションサーバーのためのキッチン”があれば都合が良いと思いませんか?これならもし同じ構成のサーバーが増えても、そのキッチンを利用すればまた新たにキッチンを作る必要はありませんからね。

まとめると:

  • プロビジョニングする対象を”ノード”と呼ぶ
  • “ワークステーション”を介してあれやこれをする
  • ノードは”レシピ”を用いて調理する
  • レシピは”クックブック”にまとめられている
  • どのクックブック中のどのレシピを使うかを指定するために”キッチン”を作る

です。

次回はChefサーバーとChef soloについて説明する予定です。それでは〜。

コニョル

キッチンのクックブックのレシピがノードをクック!

One Response to Chefを始めよう #1 どうやってプロビジョニングしているの?

  1. ピンバック: Chefを始めよう #2 Chef ServerとChef Solo | コノルブログ

コメントを残す

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

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