WindowsでChefの環境をお手軽に入れてみたよ
前回記事でChocolateyを使用してお手軽にvagrantの環境を作成しましたが、 途中chefの環境でエラーとなってしまいあたふたしてしまいました。
今回は、そのあと調査の結果Chocolateyでお手軽にchef環境を作成するところをまとめます。
Chefといっても実際に作成するのはknife-soloの環境ををWindows側に作成するのが今回の目的になります。
knife-soloをインストールするためには、rubyとsshとrsyncが必要になります。
まず rubyのインストールですが、ここに落とし穴がありました。 前回のお手本通り
C:\Users\xxx> cinst ruby C:\Users\xxx> cinst ruby.devkit C:\Users\xxx> cgem knife-solo
としたのですが、いざknifeを動かそうと思ったら、 cannot load such file -- yajl/2.0/yajl (LoadError) というエラーになってしまいます。 同じような現象に遭遇した方の記事を見てみるとどうもRuby2.0との相性が良くないみたいです。 実際にインストールされているrubyのバージョンを確認すると確かに Ruby2.0がインストールされていました。 対処方法はあるようなのですが、おとなしくRuby1.93をインストールして解決しようとしました。
C:\Users\xxx> chocolatey list ruby
で検索してみましたが、ruby 単独でv1.93のものはなく
.... ruby 2.0.0.24700 ruby.devkit 4.5.2.20111230 ruby.devkit.ruby193 4.52 ....
近いものだと上記のようなものになっていました。 試しに
C:\Users\xxx> cinst ruby.devkit.ruby193
としたところ一緒にruby193もインストールできましたのでこれで進めます。
rsyncですが 前回のお手本通り
C:\Users\xxx> cinst cwrsync
とすると7z.exeが見つからない旨のエラーとなりインストールできませんでした。 ですので一旦
C:\Users\xxx> chocolatey uninstall cwrsync C:\Users\xxx> cinst 7zip
とします。しかしどうも7zipは自動的にパスが通らないみたいなので手動で環境変数のPATHに追加してあげて
C:\Users\xxx> cinst cwrsync
で無事インストールができました。後で必要になるsshも一緒に入るようです。
グダグダになりましたがお手軽にwindowsにchef環境入れるには
C:\Users\xxx> cinst ruby.devkit.ruby193 C:\Users\xxx> cinst 7zip ここで7z.exeの実行パスを環境変数に追加 (私の環境では C:\Program Files\7-Zip) C:\Users\xxx> cinst cwrsync C:\Users\xxx> cgem knife-solo
これでOK。(2013/8/27現在)
ただ、他の開発用に他のバージョンのrubyが複数あったりするとknifeうまく動かないみたいです。