SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

サーバ/アプリケーションの構築自動化&構成管理ツール「Chef」入門

構成管理ツール「Chef」の概要とインストール手順

サーバ/アプリケーションの構成管理ツール「Chef」入門 (1)


  knifeコマンドを使用して、Chef Clientのリポジトリを初期化します。このとき、Web UIのURL(https://ホスト名:443)、各鍵ファイルのパスが、先ほどChef Serverからコピーしたものと一致する必要があります。

chef-ws@workstation:~$ knife configure -i
WARNING: No knife configuration file found
Where should I put the config file? [/home/chef-ws/.chef/knife.rb] /home/chef-ws/chef-repo/.chef/knife.rb*1)
Please enter the chef server URL: [https://workstation:443] https://chef11:443*2)
Please enter a name for the new user: [chef-ws] 指定が無ければそのままエンター*3)
Please enter the existing admin name: [admin] 指定が無ければそのままエンター
Please enter the location of the existing admin's private key: [/etc/chef-server/admin.pem] /home/chef-ws/chef-repo/.chef/admin.pemを入力*4)
Please enter the validation clientname: [chef-validator] エンター
Please enter the location of the validation key: [/etc/chef-server/chef-validator.pem] /home/chef-ws/chef-repo/.chef/chef-validator.pemを入力*5)
Please enter the path to a chef repository (or leave blank): エンター
Creating initial API user...
Please enter a password for the new user: パスワードを入力*6)
Created user[chef-ws]
Configuration file written to /home/chef-ws/chef-repo/.chef/knife.rb

 (*1)knife.rbを作成するディレクトリを入力します。今回は、/home/chef-ws/chef-repo/.chefディレクトリに作成します。

 /home/chef-ws/.chef/knife.rbが作成されていた場合、”/home/chef-ws/.chef/knife.rb? (Y/N) “と聞かれます。”Y”を押下するとknife.rbが上書きされるため注意してください。必要に応じてバックアップを取得してください。

 (*2)Web UIへの接続に利用するものと同じURLを入力します。

 今回は、Chef Serverのホスト名がchef11なので、http://chef11:443と入力します。

 (*3)新規で作成するユーザを指定します。すでに登録されたユーザを指定すると失敗します。

 (*4、5)Chef Serverからコピーした各鍵ファイルのパスを指定します。

 (*6)(*3)で作成するユーザのパスワードを入力してください。Web UIへログイン時に使用します。6文字以上入力しないと失敗します。

 初期化に失敗した場合、次のように出力されます。

 password入力に失敗した場合です。

ERROR: The data in your request was invalid
    Response: Password must have at least 6 characters

  Chef Clientのリポジトリの初期化が完了すると、~/chef-repo/.chef/knife.rbと~/chef-repo/.chef/chef-ws.pemが作成されます。

 作成されたknife.rbは、次のようになります。

chef-ws@workstation:~$ cat ~/chef-repo/.chef/knife.rb
log_level            	:info
log_location         	STDOUT
node_name            	'chef-ws'
client_key               '/home/chef-ws/chef-repo/.chef/chef-ws.pem'
validation_client_name   'chef-validator'
validation_key           '/home/chef-ws/chef-repo/.chef/chef-validator.pem'
chef_server_url      	'https://chef11:443'
syntax_check_cache_path  '/home/chef-ws/chef-repo/.chef/syntax_check_cache'

 Web UIへログインし、[User]タブへ移動すると、chef-wsユーザが登録されたことを確認できます。

 [create]を押下すると、新規ユーザの作成ができます。

 必要項目を入力後、[user create]を押下すると、Public KeyとPrivate Keyが出力されます。

 作成されたPrivate Keyは、~/chef-repo/.chef/に[ユーザ名].pemという名前で保存します。

 次のコマンドを実行しクライアントとユーザの一覧が表示されれば、Chef ServerとClient間の通信ができていることが確認できます。

 knifeコマンドは現在いるディレクトリにある.chef/knife.rbを参照するため、chef-repoディレクトリで実行します。

chef-ws@workstation:~$ cd ~/chef-repo/
chef-ws@workstation:~/chef-repo$ knife client list
chef-validator
chef-webui
chef-ws@workstation:~/chef-repo$ knife user list
admin
chef-ws
test

 以上で、Chef ServerとClientのインストールが完了です。

まとめ

 近年、仮想化やクラウドの普及によりインフラ構築や運用方法が変化してきており、即時に何百台ものサーバを構築しソフトウェアの設定を行う必要性が求められています。

 そのため、時間と人手を抑えて構築や設定を行える自動化ツールが注目されています。

 自動化ツールの一つであるChefを利用することでサーバの台数にかかわらず、必要なサーバやアプリケーションを自動的に構築および調整することができます。

 Chef 11 Serverのインストールに必要なものはOpscode社より提供されており、以前のバージョンと比べて、インストールや設定もよりシンプルに実施することが可能になりました。

 今回は、Chef ServerとClientのインストール方法についての紹介でした。この機会に、実際にインストールしてCookbookを作成し、Chefを試してみてはいかがでしょうか。

 CookbookやRecipeの詳しい説明や作成方法は、次回紹介したいと思います。

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
この記事の著者

須藤 法子(クリエーションライン株式会社)(ストウ ノリコ(クリエーションラインカブシキガイシャ))

クリエーションライン株式会社 エンジニア。インフラエンジニアとして、大規模クラウドサービスのインフラ構築を担当。その際に Chefと出会う。現在は、主にクラウド基盤の運用/サポートと教育、技術支援を担当。 クリエーションライン株式会社クラウド基盤に関する設計・構築に関して多数の実績を持ち、ハイブリ...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/7484 2013/11/20 17:42

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー