結論
Chef Soloを使う場合、Chefは公式からではなくgemから入れる。
理由
Mac OS Xで、Chefとknife-soloをそれぞれ以下のコマンドでインストールするとする。
$ curl -L https://www.opscode.com/chef/install.sh | sudo bash
$ sudo gem install knife-solo
このとき、以下のようなことが生じる。
-
curl -L 〜により、/opt/chefにknifeコマンドがインストールされる -
sudo gem 〜により、knife-soloの依存であるchefもインストールされる - システムの
knifeコマンドは、gemのChefではなく/opt/chefを参照している -
/opt/chefからは、gemであるknife soloは見えないのでエラーとなる
ひとことでいうと、2つのknifeコマンドが共存している状態になる。
ここでknife solo prepare 〜などとしても、knifeからはknife soloが見えない。
このとき、タイトルのとおり以下のようなエラーが生じる。
FATAL: Cannot find sub command for: ‘solo'
公式から入れずとも、gem install knife-soloさえすれば自動的に依存であるchefもインストールされる。
なので、Chef Soloを使うときはgem install knife-soloをすればよい。
※ 認識違いがあればコメントください!m(_ _)m