Windows/Linuxで使えるシステム構築・設定の自動化ツール「Chef」とは?Windows Insider用語解説

システム管理者を悩ませる煩雑で面倒なシステム設定。その自動処理を実現するツール「Chef」の特徴やメリットを、Windows管理者の視点で短くまとめる。

» 2014年08月11日 17時01分 公開
[島田広道デジタルアドバンテージ]
Windows Insider用語解説
Windows Server Insider


「Windows Insider用語解説」のインデックス

連載目次

 「Chef」とは、システム構築を自動化するためのソフトウェアツールあるいは枠組み(フレームワーク)の一種。システムの各種設定を変更したり、アプリケーションやミドルウェア、コンポーネントなどのソフトウェアをインストールしたりする作業を自動化できる。WindowsやLinux、Mac OS Xなど複数のプラットフォームに対応している。

効率良く正確にシステムを構築する仕組みが求められている

 システム管理者であれば、複数台のコンピューターを同一構成にセットアップしたり、似たようなセットアップ手順を繰り返し実行したりした経験があるだろう。そのとき、手動でGUI画面を操作したりしていると、設定ミスが生じやすいし、時間もかかる。特にコンピューターの台数や設定回数が多いと、ロスも膨大になってくる。

 同様のことは、設定や構成を変更する場合や、現在の設定がどうなっているか確認する場合にも当てはまるだろう。

Chefの特徴

 上記のような問題を解決することが「Chef」の目的の1つだ。Chefは米Chef Software社を中心に開発されているソフトウェアで、オープンソース版が同社サイトより無償で提供されている。

●ChefはRubyを利用する

 Chefの特徴として挙げられるのは、まずスクリプト言語の「Ruby」を利用して自動構成を実現していることだ(Windows版Chefをインストールすると、Rubyもインストールされる)。自動構成のための設定ファイル集「Cookbook(クックブック)」は、基本的にRubyの文法で記述する。Rubyの場合と同様の感覚で、自動化のための設定ファイルを記述・実行できるわけだ。

●設定手順ではなく「あるべき構成」の実現を自動化する

 もう1つは、自動化する作業手順を記述するのではなく、「システム構成をこのようにしたい」という「あるべき構成」を記述する、という点だ。例えばWebサイトを1つ用意する場合、

  1. 未インストールならWebサーバーのプログラムをインストール
  2. 該当するWebサイトがなければ新たに作成
  3. 特定のHTMLファイルを配置
  4. Webサーバーのサービスを起動

というような「作業の手順」ではなく、

  • Webサーバーのプログラムがインストールされている
  • Webサイトが1つ存在する
  • そのWebサイトには特定のHTMLファイルが配置されている
  • Webサーバーのサービスは起動している

というように「こうなってほしいという状態」を記述する。こうした仕組みが後述するメリットにもつながっている。

 ちなみに上記内容が記載されるのが「Recipe(レシピ)」と呼ばれる設定ファイルで、Cookbookに含まれる設定ファイルの中で中心的な役割を果たす。

●多数のコンピューターの構成もサポート

 Chefの運用形態には2種類ある。1つは、設定対象のコンピューター(ノード)上に前述の設定ファイルを用意して適用する「スタンドアロン型」だ。もう1つは、設定ファイルを管理サーバーから各ノードに対して配布・適用する「クライアント・サーバー型」で、多数のノードの自動構成を管理できる。ただし現時点では、管理サーバーにはLinuxサーバーが必要だ(Windows Serverでは運用できない)。

Chefのメリット

●Windowsでも利用できる

 Chefのクライアントすなわち自動構成の対象として、Windows 7/Windows 8.x、Windows Server 2003 R2/2008/2008 R2/2012/2012 R2がサポートされている。またMicrosoft AzureもChefへの対応を始めており、仮想マシンの作成時にChefの設定が可能だ。

Microsoft AzureもChefに対応している Microsoft AzureもChefに対応している
これはAzureでWindows Serverの仮想マシンを作成するウィザードの途中の画面。
  (1)標準でChefによる自動構成が可能だ。

●設定ファイルを再利用しやすい

 例えば、あるシステムをChefで自動構成した場合、Chefクライアントをインストールしてあれば、他のシステムにも同じ設定ファイルを適用することで同じ自動構成が簡単に実現できる。Linuxのディストリビューションの種類やインストール済みコンポーネントの構成といった程度の違いであれば、共通のCookbookで自動構成することが可能だ。

 また、既存の設定ファイルをベースに、構成や処理を少し書き換えて別の自動構成を実現する、といったことも比較的容易にできる。

 さらに開発元のChef Software社では、同社や他の開発会社/開発者が作成した設定ファイルを公開している。Chefのユーザーは、ライセンスの範囲内でこれらを無償でダウンロードして利用できる。

Microsoft AzureもChefに対応している Chefの設定ファイル集(Cookbook)をダウンロードできるサイト(Chef Software社)
これはIISに関するCookbookを探してみたところ。

●「現在」のシステム設定を簡単に調べられる

 前述のようにChefでは、「あるべき構成」を設定ファイルに記述し、それをシステムに適用することで自動構成を実現している。そのため、設定ファイルが正しく適用されていれば、現在のシステム設定はChefの設定ファイルの内容と合致する。つまり、「現在の」設定状態を調べるには、単にChefの設定ファイルを確認すればよい。手動設定のように、いちいちGUIの設定画面を見たりレジストリを調べたりする必要はない。


 Windows管理者にとってChefは、RubyのようにWindows標準でもMicrosoft開発でもないオープンソース系ツールを相手にしなければならないため、ハードルが高く感じられるかもしれない。特に、Windows標準の自動構成ツールである「PowerShell DSC」と比べると、これはデメリットに見える。

 しかしその一方で、ChefならLinuxでもWindowsでも同じ手法でインストールや設定を自動化できるというメリットがある(設定ファイルが必ず両方のプラットフォームで使えるわけではないが)。特にクラウド環境では、どちらかといえば非Windowsプラットフォームが多く、そこに展開するアプリケーションもLinux系の方が便利なことがよくある。そのため、WindowsではなくLinux環境を選択せざるを得ない機会があるかもしれない。だが、Chefに慣れておけば比較的対応しやすいだろう(もちろん「Chefが使える=Linuxが使える」ではないが)。そうした点でも、自動構成ツールの標準になり得るChefには注目していく方がよいだろう。

■関連リンク


「Windows Insider用語解説」のインデックス

Windows Insider用語解説

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。