Chef更新とcygwinから使うメモ。
概要
Chefの新バージョンが出ていたので新しく入れることにした。
インストール
http://www.getchef.com/download-chef-client/ から.msiをダウンロードする。
インストール先は C:\apps\opscode\chef-11.16.0
にした。
このようなツリーになる。
C:\apps\opscode\chef-11.16.0\ |- chef | |- bin | |- embedded
動作確認(cmd.exe)
Windows版のChefは相変わらずインストール先変更に対応していない。
Rubyのパスが、デフォルトのインストール先のままなのだ。
bin/chef-shell.bat
@ECHO OFF IF NOT "%~f0" == "~f0" GOTO :WinNT @"ruby.exe" "c:/opscode/chef/bin/chef-shell" %1 %2 %3 %4 %5 %6 %7 %8 %9 GOTO :EOF :WinNT @"ruby.exe" "%~dpn0" %*
だからこうやって使う(cmd.exe)
> c:\apps\opscode\chef-11.16.0\chef\embedded\bin\ruby.exe ^ C:\apps\opscode\chef-11.16.0\chef\bin\chef-solo --version Chef: 11.16.0
cygwin用ブリッジ作成
ブリッジ本体。
/usr/local/bin/chef_bridge
#!/bin/bash #CHEF_HOME=/cygdrive/c/apps/opscode/chef-11.8.0/chef CHEF_HOME=/cygdrive/c/apps/opscode/chef-11.16.0/chef RUBY_BIN=$CHEF_HOME/embedded/bin/ruby.exe EB_GEM_BIN_DIR=$CHEF_HOME/embedded/lib/ruby/gems/1.9.1/bin/ RUBY_SCRIPT=${0##*/} $RUBY_BIN $(cygpath -m $EB_GEM_BIN_DIR/$RUBY_SCRIPT) $*
実行権をつけて、chef-solo のリンク作成。
$ chmod 755 /usr/local/bin/chef_bridge $ cd /usr/local/bin $ ln -s ./chef_bridge ./chef-solo $ /usr/local/bin/chef-solo --version Chef: 11.16.0
knife-soloインストール
$ cd /cygdrive/c/apps/opscode/chef-11.16.0/chef/embedded/bin/ $ ./ruby ./gem install knife-solo Thanks for installing knife-solo! If you run into any issues please let us know at: https://github.com/matschaffer/knife-solo/issues If you are upgrading knife-solo please uninstall any old versions by running `gem clean knife-solo` to avoid any errors. See http://bit.ly/CHEF-3255 for more information on the knife bug that causes this. Successfully installed knife-solo-0.4.2 1 gem installed Installing ri documentation for knife-solo-0.4.2... Building YARD (yri) index for knife-solo-0.4.2... Installing RDoc documentation for knife-solo-0.4.2...
knifeのブリッジ作成
$ cd /usr/local/bin $ ln -s ./chef_bridge ./knife $ /usr/local/bin/knife solo --help FATAL: Cannot find sub command for: 'solo --help' Available solo subcommands: (for details, knife SUB-COMMAND --help) ** SOLO COMMANDS ** knife solo bootstrap [USER@]HOSTNAME [JSON] (options) knife solo clean [USER@]HOSTNAME knife solo cook [USER@]HOSTNAME [JSON] (options) knife solo init DIRECTORY knife solo prepare [USER@]HOSTNAME [JSON] (options)
cygwin + Windows版Chef で気をつけること
ssh_configの書きかた
Chef(というかRuby?)がWindows版なので、RSA鍵の指定のしかたが違う。
IdentityFile /home/pen/.ssh/vagrant.id_rsa
ではだめで、
IdentityFile C:\cygwin\home\pen\.ssh\vagrant.id_rsa
としないといけない。
むむー・・。
もしかしたら /home
のマウント位置次第では回避できるのかもしれない。
プロンプトは扱えない
Windows版なのでプロンプトはcmd.exe用。
cygwinからプロンプト入力(idやパスワードなど)はできない。
nopassのRSA鍵が必須。
むむー・・。