エンタープライズでもInfrastructure as Code――Chef 12/Chef-Zero/Knife-Zeroの基礎知識とインストールサーバー管理者のためのChef超入門(1)(1/2 ページ)

エンタープライズ向け機能が充実してきたChefを使って高速かつ精度の高いサーバーインフラを構築/管理する方法について解説する連載。初回は、Chef 12、Chef Solo、Chef Server、Chef-Zero、Knife-Solo、Knife-Zeroの概要と、Chef-ZeroをKnife-Zero経由で利用するCookbook開発環境の構築について解説します。

» 2015年02月10日 21時00分 公開
[大喜多利哉@IT]
「サーバー管理者のためのChef超入門」のインデックス

連載目次

「Infrastructure as Code」を実現するサーバー環境構築ツール「Chef」

 Chefは「Infrastructure as Code」を実現するためのツールの一つです。「Infrastructure as Code」とは、手順書を元に手動で行うITインフラの構成管理を、定められたコードの形式として記述し、自動で実行する仕組みのことです。

 従来、サーバー環境の構築は「コマンド」や「スクリプト」を駆使して、それらを「手順書」という形で残す方が多かったかと思いますが、それには、以下のようなさまざまな問題があります。「Infrastructure as Code」の適用によって問題の解決が期待できます。

  • 構築手順書通りに構築しても動作しない
    →Chefにはプラットフォームごとの差分を埋めてくれる機能が実装されている。またサーバー設定を必ずツールを用いて行う運用を徹底することで、手順書の更新漏れを防ぐことができる
  • 本番環境と開発環境で設定の差分が生じる
    →開発環境を構築する際にもChefを用いて構成管理を行っていれば、全く同じ設定を本番環境に適用することができる
  • 管理するサーバー台数が増加し、構築や設定変更に時間がかかる
    →手順がコード化されているので、複数台に一括適用することが可能。またChef Serverは、大量のサーバーを管理することを容易にすることを念頭に置いて開発されている

 本連載では、従来型のサーバーインフラ構築/管理手法からサーバー構成管理ツール「Chef」に移行するに当たって、つまずきやすいポイントについて集中的に取り扱い、高速かつ精度の高いサーバーインフラの構築/管理の手助けをすることを目的とします。

エンタープライズ向け機能が充実してきたChef 12の概要

 2014年にChef 12がリリースされました。その主な特徴について説明します。

  • 商用版とオープンソース版のコードが統一され、商用版の機能(Premium Features)も25ノードまでは無償で利用できるようになった
  • これまではChef Serverの高可用性は物理環境におけるDRBDを用いたデータ同期のみに依存していたが、クラウドでの利用を想定し、物理・仮想・クラウドベースのブロックデバイスをサポートするようになった
  • 24時間365日のサポートを提供する「Chef Enterprise subscription」、ノード単位でサポート契約を行う「Chef subscription」が提供開始された
  • VMware vSphereやVMware vCloud Airに対応した

 かねてよりChef-Soloが廃止され、軽量版Chef Serverである「Chef-Zero」へ移行する必要があることがアナウンスされておりますが(なおChef 12時点では廃止されておりませんし、現時点では明確な廃止時期も提示されておりません)。

 今回のアップデートはChef Serverに開発リソースを集中し、コードの統一により開発効率を向上させ、ChefそのものをChef Serverを中心とした「大規模環境のインフラ管理にフォーカスしたシステム」と位置付けてより進化させようとしていることがうかがえます。

 またChef 12のアップデートにおいても、サブスクリプションモデル・VMware対応などエンタープライズ向けの機能が充実してきたという印象を受けます。

アーキテクチャ図で分かるChefの分類――Chef Solo、Chef Server、Chef-Zero、Knife-Solo、Knife-Zero

 Chefはその実行形式により何種類かのプログラムに分かれます。それぞれのアーキテクチャについて解説します。なお、以降はCookbookを適用する対象のコンピューターを「ノード」と記載します。

Chef Solo

 Chef-ServerなしでノードにCookbookを適用します。Chef Serverとの互換性はなく別のプログラムとして存在しています。

Chef Server

 Chef Serverをコントロールする「Chef Workstation」、構成情報を集中管理し、Clientをコントロールする「Chef Server」、Chef Serverの管理下に置かれる「Chef Client」から構成されるクライアント・サーバー形式のChefアーキテクチャです。

 Chef SoloおよびChef Serverについては以下記事で詳説されていますので、ご参照ください。

Chef-Zero(Chef Client LocalMode)

 Chef ServerなしでローカルサーバーにCookbookを適用します。Chef Serverの仕組みを使ってChef Clientがスタンドアロンで動作しています。

 また上記アーキテクチャのコマンドラインインターフェースとして提供されているのが「knife」と呼ばれるプログラム群です。

Knife-Solo

 レシピ一式をリモートサーバーへ転送し、Chef-Soloをリモートサーバー上で実行しCookbookを適用するものです。Chef SoloではノードにChefのインストールおよびCookbookの配置を手動で実施する必要がありましたが、Knife-Soloを使用することで、Cookbookの開発環境からノードへのChefインストールおよびCookbookの実行が行えるようになっています。

Knife-Zero

 Cookbookの開発環境からノードへのChefインストールおよびCookbookの実行が行えるようになっている点はKnife-Soloと同一ですが、ノード側で実行されるChefがChef SoloからChef-Zero(Chef Client LocalMode)に変更されています。レシピ一式をリモートサーバーへ転送せず、SSH経由でChef Client LocalModeをノード上で実行させCookbookを適用するものです。

       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

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

メールマガジン登録

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