開発環境を整えるとき、使用するツールが多いと複数PCへ同じ環境を整えるのがとてもめんどいです。仕事上Visual Studioを使用しているけど拡張機能やその他ツールを同じチームで整えないと始まりません。出来れば自動化したいのでChefを使うことにしました。まずは Windows 環境で Chef を使えるようにします。環境はWindows7 64bit、Visual Studio 2010 です。

Chef インストール

下記URLから Windows 版の Chef Client をダウンロードします。
オプションは、[Windows], [2008], [x86_64] でバージョンは最新にしました。
※この時点では 11.8.2-1

http://www.opscode.com/chef/install/#options
最新ならここでもよいみたい http://opscode.com/chef/install.msi

セットアップファイルを実行して Next 連打でインストールすると、C ドライブに chef と opscode フォルダが作成されます。
chef フォルダは作業用で opscode 配下に実行ファイルなどのChef本体があります。
環境設定の PATH はインストール時に設定されるのでコマンドはすぐ実行できます。
コマンドプロンプトで下記を実行するとバージョンが表示されます。

chef-solo -v

Windows 環境用の Cookbook 取得

Windows で使用するための Cookbook を下記URLからダウンロードします。

http://community.opscode.com/cookbooks/windows
http://community.opscode.com/cookbooks/chef_handler

cookbook の保存先として C:¥chef¥repo¥cookbooks フォルダを作成します。
(フォルダ名は何でも良くて2つのフォルダ階層を作ります)

ダウンロードしたファイルは拡張子の無い状態だったりするかもですが、Tar圧縮なので解凍ツールで C:¥chef¥repo¥cookbooks フォルダ配下へ展開します。

chef-solo の設定

Chef 環境を定義する設定ファイルの solo.rb を作成します。
下記の内容で C:¥chef¥solo.rb ファイルを作成します。

cookbook_path ["C:¥¥chef¥¥repo¥¥cookbooks"]

chef で 7-zip を入れる

chef で圧縮ファイルを解凍とかするときにコマンドで実行できる解凍ツールがあると便利なので 7-zip を入れておきます。
下記URLからダウンロードして cookbooks フォルダへ展開します。

http://community.opscode.com/cookbooks/7-zip

C:¥chef¥repo フォルダに下記の内容で 7-zip.json ファイルを作成する。

{
	"run_list": ["recipe[7-zip]"]
}

スタートメニューからコマンドプロンプトを管理者として実行します。
コマンドプロンプトで下記を実行します。

chef-solo -j c:¥chef¥repo¥7-zip.json

インストールが完了すれば C:¥7-zip というフォルダが作成されます。
もし下記のエラーが出るときは管理者としてコマンドプロンプトが実行できていません。
shift キー押しながら右クリックでメニューで管理者として実行しなおしてください。

chef-client doesn’t have administrator privileges on node [host name] This might cause unexpected resource failures.

これで Chef を使う準備はできました。
次は開発で使うツール等の cookbook を作成して環境を構築してみます。

cookbook を git を使って取得する方法は Chef を Windows で使ってみる:その2 を参照してください。

追記:2014/07/26

実行時に下記のエラーが出るときは、

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
SSL validation of HTTPS requests is disabled. HTTPS connections are still
encrypted, but chef is not able to detect forged replies or man in the middle
attacks.

To fix this issue add an entry like this to your configuration file:

  # Verify all HTTPS connections (recommended)
  ssl_verify_mode :verify_peer

  # OR, Verify only connections to chef-server
  verify_api_cert true
To check your SSL configuration, or troubleshoot errors, you can use the knife ssl check command like so:
  knife ssl check -c solo.rb
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

下記の内容を C:¥chef¥solo.rb ファイルへ追記します。

ssl_verify_mode :verify_peer

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*