Chef
ChefをWindowsへインストールするときの手順はこちらで公開されている。今回のインストールはこのページを参考にして進めてみた。
こちらからChefのインストーラをダウンロードする。2014/9月時点で使ったのは11.4である。
rubyのバージョンを確認しておく。
$ ruby -v ruby 1.9.3p484 (2013-11-22) [i386-mingw32]
chef 11.4はRuby 2.0とは互換性がない。こちらをみると対応するRubyのバージョンは1.8.7となっている。今回の環境ではRuby 1.9.3p484を使用した。
ダウンロードをしたインストーラを実行する。ひたすら”次へ”をクリックすればよい。インストール手順で難しい箇所はない。chefのインストールが失敗するとしたら手順ではなく、環境周りに問題がある可能性がたかい。
Chefのインストールが正常に完了したかを確認する。
$ chef-client --version Chef: 11.12.8
Vagrant
VagrantはRubyで作られた仮想環境を取り扱うためのフロントエンドになる。Chefを利用して仮想環境を作るときにはフリーであること、インタフェースが用意されていることからVagrant+Virtual Boxを利用することが多い。”Chef実践入門”や”ドットインストール”はこれらの環境を使って記述されている。
VagrantはこちらからWindows版をダウンロードしてインストールする。インストールが完了したらVersionを確認して、正しくインストールされているかを確認する。
$ vagrant -v Vagrant 1.6.4
Virtual Box
Virtual Boxはx86環境で利用できる仮想環境であり現在はOracleでメンテナンスされている。仮想環境としてはVMWare, Citrix, Microsoft Virtual PCなどがある。VagrantにはVirtual Boxのインタフェースがデフォルトでついてくる。この2つをインストールすればすぐに仮想環境を操作することができる。VMWare用のインタフェースは有償になる。
Virtual Boxをこちらからインストールする。
knife-soloその他
chefをインストールしているだけではリモートからのchefは実行できない。Chef Solo環境ではknife-soloを使いクックブックをリモートで実行できる。
knife-soloはgemでインストールする。
$ gem install knife-solo $ knife -v Chef: 11.12.8
インストールが環境したら”knife -v”で正しく完了したことを確認する。
Berkshelfをインストールする。Berkshelfはknife-soloで使うためのツールである。
$ gem install berkshelf
rsync/sshをインストールする
knife-soloコマンドの実行する際には、対象となるマシンにrsync/ssh経由で接続する。Windowsにはデフォルトではインストールされていないために下記のようなエラーがでる。
このマシンではすでにrsyncは別のアプリケーションで利用するためにインストールされていたが、sshがないためにrsyncがsshを実行する際にファイルがないといっている。
$ knife solo cook root@192.168.1.10 Running Chef on 192.168.1.10... Checking Chef version... Enter the password for root@192.168.1.10: Uploading the kitchen... rsync: Failed to exec ssh: No such file or directory (2) rsync error: error in IPC code (code 14) at pipe.c(84) [sender=3.0.7] rsync: connection unexpectedly closed (0 bytes received so far) [sender] rsync error: error in IPC code (code 14) at io.c(603) [sender=3.0.7] ERROR: RuntimeError: Failed to launch command ["rsync", "-rL", "--chmod=ugo=rwX", "--rsh=ssh root@10 .72.20.139", "--delete-after", "--exclude=revision-deploys", "--exclude=tmp", "--exclude=.git", "--e xclude=.hg", "--exclude=.svn", "--exclude=.bzr", "/cygdrive/C/opscode/chef/embedded/lib/ruby/gems/1. 9.1/gems/knife-solo-0.4.2/lib/knife-solo/resources/patch_cookbooks/", ":~/chef-solo/cookbooks-1"]
Windowsでrsync/sshをインストールする方法は二通りある。一つはcwRsync経由でインストールるう。もう一つはcygwinから必要なモジュールを抜き出す。
cwRsyncはこちらからダウンロードして解凍する。解凍したファイルはそのままフォルダにまとめておく。フォルダに対して必ず優先的に読み込まれるようにパスの先頭に場所を書き込む。rsync/sshが別のアプリケーションでインストールされると間違って使われてしまうことがある。こうなると原因不明のエラーが出てしまいはまってしまう。
下記はcygwinを使うインストール方法だがこの方法ではうまくいかなかなった。参考までに記述しておく。
Windowsではrsync/sshをcygwinでインストールする。その手順をまとめておく。
まずcygwinをインストールする。
cygwinのインストールが完了したらcygwinのターミナルを開きsshとrsyncが利用できるかを確認する。
利用できるのが確認できたらrsyncとsshコマンドおよび関連するライブラリをパスが通った場所にコピーする。これによりcygwinターミナル以外のコマンドラインから両方のコマンドが利用できる。
関連するライブラリは15くらいある。コピー先でssh/rsyncを実行すれば見つからないというエラーで返ってくるので、そのdllを適宜コピーすればよい。
今回はコピーしたdllを参考のために記載しておく。
2013/01/01 17:33 459,293 cygasn1-8.dll 2012/11/05 06:43 9,757 cygcom_err-2.dll 2012/05/07 20:18 7,182 cygcrypt-0.dll 2012/09/01 19:13 1,551,872 cygcrypto-1.0.0.dll 2010/08/15 08:54 46,094 cyggcc_s-1.dll 2013/01/01 17:33 183,837 cyggssapi-3.dll 2013/01/01 17:33 10,781 cygheimbase-1.dll 2013/01/01 17:34 20,509 cygheimntlm-0.dll 2013/01/01 17:34 216,093 cyghx509-5.dll 2011/10/16 15:55 35,342 cygintl-8.dll 2013/01/01 17:34 381,469 cygkrb5-26.dll 2002/06/09 14:50 22,528 cygpopt-0.dll 2013/01/01 17:34 52,253 cygroken-18.dll 2012/08/09 04:27 579,101 cygsqlite3-0.dll 2011/10/26 13:26 8,206 cygssp-0.dll 2010/08/15 08:54 791,566 cygstdc++-6.dll 2010/08/31 16:00 2,648,181 cygwin1.dll 2013/01/01 17:34 160,797 cygwind-0.dll 2012/05/13 13:15 72,718 cygz.dll
Visual Studio 2010/2008 redistributableをインストールする
sshとrsyncをインストールしてもエラーが出ている場合にはこれらのモジュールから呼ばれるWindowsのライブラリがない可能性がある。下記からダウンロードしてインストールする。
ライブラリに関してはdependency walkerというアプリケーションがあるので必要なライブラリを確認する。
bsdtarのインストール
vagrant box addでbsdtarが見つからないというエラーがでた場合の対処
box: Progress: 100% (Rate: 55.1M/s, Estimated time remaining: --:--:--) The executable 'bsdtar' Vagrant is trying to run was not found in the %PATH% variable. This is an error. Please verify this software is installed and on the path.
bsdtarはVagrantと一緒にインストールされているがパスを通す必要がある。bsdtarは以下のディレクトリにある。
C:\HashiCorp\Vagrant\embedded\mingw\bin
PATH変数の最後に上記のパスを追加すればよい。