これは2013年7月に特定の環境で起きた困ったことへの対策メモです。またあくまで「手っ取り早く」入れる方法なので、参考程度でお願いします。
Vagrant + Chef で開発テスト環境を作って
それと同じ環境を knife-solo でリモートサーバに用意する
というのをやってみてます。
knife-solo はバージョン 0.2 ではなく
0.3 の方が何かとよしなにやってくれていいんだけど、
Mac にインストールするときちょっと詰まったので
また自分でやる時と、何かのご縁でたどり着いた人のためにメモ。
ちょっと前は素直に入ったんだけど、
今の最新版を素直に入れるとどうもうまくいかなかった。
要点は次の3つです。
- コマンドラインツールを入れておく
- Chef の最新版じゃないのを入れる
- knife-solo の最新版を入れる
何かそれ違うでっていうのがあったら教えてください。
Xcode でコマンドラインツールを入れる
インストールに際して Command Line Tools を入れておく必要があるのでインストール。
何やかや開発するのに使うので入ってる人も多いと思うんだけど、
普段と違う Mac でやろうとして
これが入ってないことに気づかず途中でおこられたので。
まず最新版の Xcode が入ってない場合はこちらから。
あとは
Xcode を起動して、Preferences (command + ,) を開き、
“Downloads” にある Command Line Tools を Install する。
Chef のちょっと前のバージョンを入れる
ここからはターミナルを起動して Chef と knife-solo を入れるんだけど、
Chef はこれを書いている時点での最新版 11.6 系ではなく
いっこ前の 11.4.4 にしました。
なぜか最新版だと後で入れる knife-solo が Chef の中に入らずknife solo
コマンドが認識されなかったので。
sudo gem install chef -v 11.4.4
knife-solo のプレリリース版を入れる
これを書いている時点で knife-solo のリリース版は 0.2.0 なので
ここではプレリリース版を入れます。
sudo gem install knife-solo --pre
これで knife-solo-0.3.0.pre5 が入った。
ちゃんと入ってるか確認
Chef のバージョンと knife solo のコマンド一覧が出れば成功。
% chef-solo -v Chef: 11.4.4 % knife solo FATAL: Cannot find sub command for: 'solo' Available solo subcommands: (for details, knife SUB-COMMAND --help) ** SOLO COMMANDS ** knife solo cook [USER@]HOSTNAME [JSON] (options) knife solo init DIRECTORY knife solo prepare [USER@]HOSTNAME [JSON] (options) knife solo bootstrap [USER@]HOSTNAME [JSON] (options) knife solo clean [USER@]HOSTNAME
FATAL
が出るのはまあ必要なサブコマンドを渡してないからですね。
じきに解決すると思うけど
最新版への対応ができたらこんな小細工をする必要もなくなると思います。
この記事が無意味になる日が早く来ますように。