Chef Serverを使って実際にベアメタルマシンへの自動構築を行う

2014年1月22日(水)
喜納 健

第2回では、Chefの使用イメージをつかむためchef-soloを使用しました。chef-soloは各ノードに設定されたレシピをそれぞれのマシンに配布する必要があるため、構築・運用台数が多くなってくると、レシピとノードの関連付け設定が大変になります。一方、Chef Serverはレシピやノードの管理を一元化できるため、台数の多い環境でも管理が簡単です。

第3回では、オープンソース版Chef Serverの基本的な仕組みと使用イメージ、特徴について説明した後、Chef Serverを活用したベアメタルマシン(何も書き込まれていない状態のマシン)に対する自動構築方法についてご紹介します。

Chef Serverの基本的な仕組み

まず、Chef Serverの基本的な仕組みについてご紹介します。

(1)Chefの構成要素

Chef Serverを使用するには、次の3つの構成要素を理解する必要があります。以下、順にご紹介しましょう。

(a)Workstation

Workstationは、CUIツールのKnifeを使用してクックブック作成やChef Serverの設定を行う操作端末です。Chef Serverの設定とは、認証やレシピとノードの関連付け等の設定を指します。

(b)Chef Server

Chef Serverは、内部DBを持ち、クックブックやノードのデータを1元管理するサーバです。

(c)ノード

ノードは、chef-clientによって構築・設定変更が行われるマシンです。chef-clientは、ノード上でレシピにもとづいてシステム構築・設定(状態)変更を行うエンジンです。

図1:Chef Serverのアーキテクチャ(クリックで拡大)

(2)Chef Serverを使用した自動構築の流れ

Chef Serverを使用してレシピを適用する流れは以下の通りです。

(a)レシピの作成

Workstationでクックブックを作成します。クックブックの作成は、第2回でご紹介した通りKnifeを使用します。

(b)レシピのアップロード

Knifeを使用して作成したクックブックをChef Serverにアップロードします。

図2:レシピの作成とアップロード(クリックで拡大)

(c)レシピとノードの関連付け

Chef Serverでノードオブジェクト(論理インスタンス)を作成し、アップロードしたクックブックとオブジェクトとの関連付けを行います。これはChef Server上で行われる論理的な設定です。

図3:レシピとノードの関連付け設定(クリックで拡大)

(d)レシピにもとづいた構築・設定

ノードでchef-clientを実行します。chef-clientには、あらかじめノード名を設定しておきます(デフォルトは、FQDN)。chef-clientは、ノード名をキーにしてChef Serverにリクエストを行い、自身に関連付けられたクックブックとランリストを取得した後、レシピにもとづいて構築・設定を行います。

図4:chef-clientの実行(クリックで拡大)

設定変更を行う場合は、Workstationでレシピ(またはクックブック)を修正後Chef Serverにアップロードしchef-clientを実行します。すると、chef-clientが修正されたレシピを取得し設定変更を行います。

株式会社 日立ソリューションズ

(株)日立ソリューションズ、オープンソース技術開発センタにてクラウド関連技術の調査に従事。Hadoop関連のプロジェクトで大規模クラスタの構築を担当したことを機に、システム構築・運用自動化について調査を行っている。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています