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

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

気をつけておきたいこと

最後に、実際にChef Serverを使い始めた方のために、気をつけておきたいことを2点ご紹介します。

(1)ノード設定と認証は別々に管理されていること

Chef Serverは、個別設定やレシピの関連付けを行うノード設定と認証設定を別々に管理します。WebUIやKnifeを使用してこれらの設定を行う際には、図“Chef Client WebUIのNodesとClients”に示す様に表示が似ているため、初めは混同しやすいと思いますので違いを理解しておきましょう。

図10:Chef Client WebUIのNodesとClients(クリックで拡大)

(a)ノード設定

ノード設定では、各ノードの個別設定値やランリストの設定を行います。Chef Serverは、各ノードのJSONファイルを一元管理します。WebUIでは、Nodesタブ。Knifeでは、nodeサブコマンドで設定を行います。

(b)認証設定

chef-clientの認証登録・削除を行います。chef-clientの認証登録を行うと、認証のための暗号鍵が生成されますので、それをノードに配布します。配布された鍵を使用することで、chef-clientはChef Serverから認証登録済みのクライアントとして承認されます。なお、この登録は既にご紹介したchef-validatorの鍵を使用すると簡単に行うことができます。WebUIでは、Clientタブ。Knifeでは、clientサブコマンドで設定を行います。

(2)ノード再構築時における認証の再登録

検証環境では同じ環境を何度も作り直すこともよくあると思いますが、初期構築時に認証登録を行ったユーザーが登録されたままの状態で再登録を試みるとHTTP 403(Forbidden)のエラーになります。

このような時の対応方法には、認証リストの再登録と認証キーの再作成があります。Knifeコマンドを使用する方法とWebUIを使用する方法をそれぞれでご紹介しましょう。

対応方法(1):認証リストの再登録

再度chef-validatorの鍵を使用してchef-client認証登録をやり直します。再登録のためには、認証登録済みchef-clientのリストから対象のchef-clientを削除する必要があります。削除方法は以下の通りです。

Knifeコマンドを使用する場合は、“client delete”サブコマンドを使用します。

$ knife client delete <chef-client名>
Do you really want to delete <chef-client名>? (Y/N) Y
Deleted client[<chef-client名>]
$

WebUIを使用する場合は、赤枠部分の“Delete”をクリックして削除します。

図11:chef-clientの一覧(クリックで拡大)

対応方法(2):認証キーを再作成する

認証キーを再作成します。作成後、秘密鍵(PRIVATE KEY)を対象ノードに配布します。(/etc/chef/client.pemのファイル名で配布します。)

Knifeコマンドを使用する場合は、“client reregister”サブコマンドを使用します。

$ knife client reregister <chef-client名> 
-----BEGIN RSA PRIVATE KEY-----
・・・省略・・・ 
-----END RSA PRIVATE KEY-----
[knife01@knife ~]$

WebUIを使用する場合は、図の赤枠に示す通り“Clients”タブの“Edit”から“Private Key”にチェックを入れて“Save Client”をクリックします。クリックすると“Public Key”と“Private Key”が表示されますので、“Private Key”の部分を対象ノードに配布します。

図12:chef-clientの認証再登録(クリックで拡大)

上記2点の注意事項以外にも、よく起こりがちなエラーと対策をコミュニティのWikiで紹介しています。エラーが出た時は参考にするとよいでしょう。

> Common Errors

最後に

Chef社(2013年12月にOpscode社から社名を変更)は、Microsoft社やIBM社といったOSベンダーの他、Cisco Systems社やJuniper Networks社といったネットワーク機器ベンダーとも協力して開発を進めている様なので、筆者は今後、Chefによる自動化の範囲は広がっていくと期待しています。3回の連載でChefの概要からChef Serverを使用した自動構築の方法までご紹介しましたが、いかがでしたでしょうか。Chefに興味を持って試してみたい!と思って頂ければ嬉しいです。

※記載の会社名、製品名は、それぞれの会社の商標もしくは登録商標です。

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

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

連載バックナンバー

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

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

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

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