Chef-solo の設定 =================================================================================================== Chef-solo をインストールすると、 ``chef-solo`` コマンドが使えるようになります。 ただし、現時点では何も設定していないので、以下のようにエラーが発生して終了します。 .. image:: ./images/chef-first-start.JPG :width: 500px まずは Chef-solo を動作させるために必要な設定をしましょう。 Chef リポジトリの作成 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Chef で使用するファイルは、ソースコードのようにバージョン管理することが推奨されています。 このチュートリアルでは Git でバージョン管理します。 .. hint:: ディレクトリは任意の場所で構いません。このチュートリアルでは、 ``C:\chef-repo`` にリポジトリを作成します。以降は自分のディレクトリに読み替えてください。 GitHub for Windows を起動して、 ``add`` ボタンをクリックします。 .. image:: ./images/chef-repo-create-01.JPG :width: 500px 以下のように入力して、 ``create`` ボタンをクリックします。 * リポジトリ名 : ``chef-repo`` * 説明 : ``chef-solo repository`` * ディレクトリ : ``C:\chef-repo`` (右の ``…`` ボタンをクリックして、 ``C:\`` を選択します) .. image:: ./images/chef-repo-create-02.JPG :width: 500px 現時点のディレクトリは以下のようになっているはずです。 .. image:: ./images/chef-repo-create-03.JPG :width: 500px まだリポジトリを作成しただけでコミットしてないので、コミットしておきましょう。 GitHub for Windows で作成したリポジトリを選択します。 .. image:: ./images/chef-repo-create-04.JPG :width: 500px 最初のコミットなので、コミットメッセージとして ``Init`` を入力します。これは好きなメッセージで構いません。 .. image:: ./images/chef-repo-create-05.JPG :width: 500px リポジトリの作成は以上です。 .. image:: ./images/chef-repo-create-06.JPG :width: 500px solo.rb +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Chef-solo の設定は ``C:\chef-repo\solo.rb`` に記述します。 最低限必要なのは ``file_cache_path`` と ``cookbook_path`` です。 以下のように記述しましょう。 .. code-block:: ruby :linenos: file_cache_path File.join(Dir.pwd, 'cache') cookbook_path File.join(Dir.pwd, 'cookbooks') 以上で Chef-solo の設定は終わりですが、 Windows 向けにもう少し設定を続けましょう。 Windows 用 Resource 有効化 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 参考リンクにもあるとおり、 Windows にはパッケージマネージャーがありません。それを補う Resource を有効化するため、 `opscode が公開している recipe `_ から Cookbook をダウンロードしましょう。 * `opscode-cookbooks/chef_handler · GitHub `_ * `opscode-cookbooks/windows · GitHub `_ * `opscode-cookbooks/powershell · GitHub `_ .. image:: ./images/opscode-win-recipe-01.JPG :width: 500px ダウンロードした ZIP を解凍してできた ``chef_handler`` と ``windows`` を ``C:\chef-repo\cookbooks`` に移動します。 .. image:: ./images/opscode-win-recipe-02.JPG :width: 500px 次にこの Cookbook / Recipe を使うような設定ファイル ``win_default.json`` を作成します。 .. code-block:: none :linenos: cd C:\chef-repo echo >> win_default.json notepad.exe win_default.json ``win_default.json`` は以下のように記述します。 .. code-block:: javascript :linenos: { "run_list" : [ "recipe[windows]" ] } 管理者権限でコマンドプロンプトを立上げ、 Chef-solo を実行しましょう。以下 Chef-solo 実行時は同様に管理者権限で実行してください。 .. code-block:: none :linenos: cd C:\chef-repo chef-solo -c solo.rb -j win_default.json これで準備完了です。この状態の Chef リポジトリを忘れずにコミットしておきましょう。 次は実際に Recipe を実行してみます。