Chef Serverを使って実際にベアメタルマシンへの自動構築を行う
気をつけておきたいこと
最後に、実際にChef Serverを使い始めた方のために、気をつけておきたいことを2点ご紹介します。
(1)ノード設定と認証は別々に管理されていること
Chef Serverは、個別設定やレシピの関連付けを行うノード設定と認証設定を別々に管理します。WebUIやKnifeを使用してこれらの設定を行う際には、図“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”をクリックして削除します。
対応方法(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”の部分を対象ノードに配布します。
上記2点の注意事項以外にも、よく起こりがちなエラーと対策をコミュニティのWikiで紹介しています。エラーが出た時は参考にするとよいでしょう。
最後に
Chef社(2013年12月にOpscode社から社名を変更)は、Microsoft社やIBM社といったOSベンダーの他、Cisco Systems社やJuniper Networks社といったネットワーク機器ベンダーとも協力して開発を進めている様なので、筆者は今後、Chefによる自動化の範囲は広がっていくと期待しています。3回の連載でChefの概要からChef Serverを使用した自動構築の方法までご紹介しましたが、いかがでしたでしょうか。Chefに興味を持って試してみたい!と思って頂ければ嬉しいです。
※記載の会社名、製品名は、それぞれの会社の商標もしくは登録商標です。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- レシピの作成を通してChefの具体的な使用イメージをつかもう
- 大規模システム構築に求められる自動化とChefの基本的な考え方とは
- ChefConf 2017、GE Digitalにみるインフラ自動化の効果とは?
- Serverspecの概要からインストールまで
- ブレードサーバとLinux
- WebUIのデバッグ方法と新規追加
- ChefConf 2017、楽天におけるHabitat導入のポイントとは?
- [実践編] MaaSとJujuによるOSS配備、Ubuntu Serverの運用・管理(後編)
- 分散KVS「okuyama」のインストール
- Elasticsearch Logstash Kibanaの環境構築