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の詳しい説明や作成方法は、次回紹介したいと思います。



