エンタープライズでも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開発環境の構築について解説します。
「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を適用するものです。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 環境構築自動化の手順と評価検証、Puppetの基礎知識
サーバー構築の自動化で利用される技術、自動化ツールとして「Kickstart」「Puppet」を紹介し、構築から運用まで、システムライフサイクル全体にわたる運用管理の自動化についても解説する連載。 - OpenStackで激変するシステム開発・運用 “抽象化”が実現する「究極の自動化」とは
前回はOpenStackの活用ポイントと、今後のシステム開発・運用に与える影響――特に自動化にフォーカスして紹介した。今回は日本OpenStackユーザ会 会長の中島倫明氏が、「OpenStackによる自動化の仕組みと実施法」を分かりやすく解説する。 - PowerShell Desired State Configuration(DSC)とは(前編)
Windows OSの設定や構成を変更する場合、GUIの管理ツールを使うのが一般的である。だが台数が多かったり、構成変更や以前の構成への復旧などが頻繁だったりするとGUIでは非常に面倒だし、間違いもしやすくなる。こんな場合はPowerShell DSCを使ってインフラ構築作業を自動化するとよい。 - アプリ開発者もインフラ管理者も知っておきたいDockerの基礎知識
オープンソースのコンテナー管理ソフトウェアDockerについて主な機能と特徴、使用技術、動作環境などを紹介。ハイパーバイザー型とコンテナー型の仮想化の違いも解説します。