サーバ大量構築時のキモ ~Chef Chefの概要~
Pocket

サーバを大量構築するにあたり『Chef』というものが役に立つと聞いたので、実際に試していく事にした。

そもそも、『Chef』とはどういうものなのだろうか?
まずは解説しているページを探してみた。

構成管理ツール「Chef」の概要とインストール手順

http://codezine.jp/article/detail/7484

Chefで始めるシステム構成管理入門 その1

http://blog.dakatsuka.jp/2011/12/05/chef-introduction.html

Chef入門 | OpenBook

http://openbook4.me/projects/77

Chef入門 (全14回) – プログラミングならドットインストール

http://dotinstall.com/lessons/basic_chef

そして現在『Chef』に関する書籍として唯一存在している入門Chef Solo – Infrastructure as Codeを参照してみた。

その結果、分かった事は以下。

Sponsored Links

1.『Chef』でできること

『Chef』で出来る事、それは一言で言うならば『操作の自動化』であろう。
例えば、複数のマシンを対象に以下のような作業を行わないといけないとする。

  1. ユーザグループ「test-user」を作成
  2. ユーザグループ「test-user」に所属するユーザ「user01」「user02」…「user60」の作成
  3. 作成したユーザのパスワードを設定
  4. パッケージ管理ソフト(aptやyum)でソフトウェアをインストール

このような作業を、1台1台にsshで接続して作業をしなくてもいいのが『Chef』の特徴だ。Chefサーバに命令を投げる事で、ぶら下がっているChefクライアントに対し変更を適用させる事が出来る。
このぶら下がっているChefクライアントの事を『Node』、Chefサーバが入っているサーバを『Server』、Serverに対してコマンド実行させているマシンを『Workstation』と呼ぶようだ。

この辺りの用語については、このページが詳しい。

また、以下のような使い方もある。
サーバの構築時において、Chefサーバを立ち上げる事が出来ない事情(作業用端末機がボロで仮想マシンを立ち上げる事も出来ない場合や、スイッチが無いため作業用端末機と各マシンを直結して作業するしか無い場合など)がある場合、スタンドアローンなマシンに対し直接変更を加えさせる事が出来る。

こちらはChef Soloと呼ばれている。

2.『Chef』の構成方式は2つ

すでに上で書いているが、Chefを利用するには以下の2つの方法がある。

  1. 別々のChefサーバ、Chefクライアントでの構成
  2. Chef Soloを一台のマシンにインストールした構成

それぞれに違いはあるが、共通しているのはクライアント機(構築・設定する対象となるサーバ)にはChefクライアントもしくはChef Soloというソフトウェアを入れる必要がある点だ。

そのため、構築する際に利用する場合はこれらのインストールしてもいいのか、詳細設計の段階で確認する必要があるだろう。

Chefサーバを用いた構成は、数十台〜数百台といったサーバを使う、大規模な構築・運用を行う際に向いている(別に数台でも利用可能だけど)。数台〜十数台程度であればChef Soloの方が向いているだろう。

この辺りについては、こちらの『Chefを構成する各要素~Client/Server、Solo』の方がわかりやすいかもしれない。

3.『Chef』での設定変更

さて、Chefがどういう事を行え、その構成にはどういったものがあるのかはわかった。
では、『Chef』を用いてそれをどのように実現すれば良いのか。

『Chef』は、「その操作についてコードを記述」してChefクライアントに実行させる事で、その操作を自動化させているようだ。
この「その操作についてコードを記述」したファイルを、『Chef』では『レシピ』と呼ばれている。

この『レシピ』のコードはRubyで記述されている。といっても、Rubyで処理をゴリゴリ書いていく訳ではなく、LinuxなどのConfigファイルのような記述のされ方をしている。

少なくとも、簡単なシェルスクリプトを作った経験があれば、あとは分からないとこはググれば対処できるだろう。

そしてこのレシピの適用にも特徴がある。
Chefでは、レシピに「〜をインストールしろ」と書かれていても、既にインストールされている場合はその処理を行わないように記述できる。

べき等性というらしい。こちらについてもこのページに記述されている。

一時期は検索してもあまり情報がなかったけど、最近はかなり色々な情報を手に入れられるようになった。

次回から実際に触っていく事にしよう。

Pocket

Written by blacknon

インフラ系のSE。一時期はプログラマ。 仮想化とオープンソースに興味あり。一日中寝てたい今日このごろ。 スペインとかで働きたいなぁ…(シエスタがあるので)

Leave a Comment

メールアドレスが公開されることはありません。