脳みそスワップアウト

揮発性なもので。おもにPHPのこととか。

Cygwin on Vagrant + chef-solo + Berkshelf インストール編

Cygwinが絡むと毎回色々悩んでいるのでメモ。

Windows7 64bit
Cygwin 1.7.25 32bit
Vagrant 1.6.2 Windows
VirtualBox 4.3.12.r93733 Windows
Chef 11.8.0 Windows
Berkshelf 2.0.16 Windows

Chefは元々入っていたのを使うので少し古め。
Berkshelfはバージョン2と3で使い方が違うようなので使い慣れた2の最新を選択。


Vagrantは普通に入れる。

$ vagrant --version
Vagrant 1.6.2

プラグインも入れる。

$ vagrant plugin install sahara
$ vagrant plugin install vagrant-omnibus

VirtualBoxはインストール後、Vagrantから起動するためにPATHに追加しておく。

$ VBoxManage.exe -v
4.3.12r93733

Chefはインストール後、Cygwin経由で起動できるようaliasを定義しておく。
~/.bashrc

# alias for cygwin-chef
CHEF_ROOT="/cygdrive/g/apps/opscode/chef"
CHEF_RUBY="${CHEF_ROOT}/embedded/bin/ruby"
alias chef-solo="${CHEF_RUBY} $(cygpath -m ${CHEF_ROOT}/bin/chef-solo)"
alias knife="${CHEF_RUBY} $(cygpath -m ${CHEF_ROOT}/bin/knife)"
alias chef-client="${CHEF_RUBY} $(cygpath -m ${CHEF_ROOT}/bin/chef-client)"
alias berks="${CHEF_RUBY} $(cygpath -m ${CHEF_ROOT}/embedded/bin/berks)"

確認

$ chef-solo-version
Chef: 11.8.0

$ chef-client -v
Chef: 11.8.0

$ knife -v
Chef: 11.8.0

Berkshelf。
Windowsのcmd.exeで、chef同梱のrubyにインストール。

set PATH=%PATH%;g:\apps\opscode\chef\embedded\mingw\bin
cd g:\apps\opscode\chef\embedded\bin
gem install berkshelf -v '2.0.16'

berks.bat -v
Berkshelf (2.0.16)

これもCygwin経由で起動できるよう、aliasを定義しておく。

alias berks="${CHEF_RUBY} $(cygpath -m ${CHEF_ROOT}/embedded/bin/berks)"

確認

$ berks -v
Berkshelf (2.0.16)


あとはいつもの。

cd hoge
berks install -p ./chef_solo/cookbooks
vagrant up