knife soloを動かすようになるまでのメモ

knife soloを動かすために四苦八苦したので経由メモ

 

chef DKを入れる

Chef-DK という Chef を利用する際に必要なツールをひとまとめにしたキット

Chef DKをいれるとknife soloも動くのかと思っていたけど、動かない。

 

FATAL: Cannot find subcommand for: 'solo init chef-repo'
Available subcommands: (for details, knife SUB-COMMAND --help)

 

以下の記事を参照

gem install knife-solo

 

// knife soloで「FATAL: Cannot find sub command for: ‘solo'」というエラーが出る場合の解決策
https://qiita.com/kami_zh/items/7e4eac152df6945ffa48

 

 

$ knife solo init chef-repo

/opt/chefdk/embedded/lib/ruby/site_ruby/2.4.0/rubygems/specification.rb:2290:in `raise_if_conflicts': Unable to activate knife-solo-0.6.0, because net-ssh-4.1.0 conflicts with net-ssh (< 4.0, >= 2.7) (Gem::ConflictError) from /opt/chefdk/embedded/lib/ruby/site_ruby/2.4.0/rubygems/specification.rb:1410:in `activate'

 

net-sshがコンフリクトした。

何回かいれなおしたり、コンフリクトした部分を削除しようと試行錯誤したけどうまくいかず、

pre版をいれるとひとまず動くという記事を見たので、試すとrubyのバージョンが低くてエラーがでた

 

d.hatena.ne.jp

 

sudo gem install knife-solo --pre

ERROR:  Error installing knife-solo: chef-zero requires Ruby version >= 2.3.1.

 

rubyのバージョンを上げる(以下の記事のrbenb導入部分を参考にした)

メモ .bash_profile  に正しく設定はれてなくて、延々とrubyのバージョンが変わらないという現象がおき、少しはまった

qiita.com

rubyのバージョンをあげてから、再度インストールを試す

 

 

 

再度インストールを試みる

sudo gem install knife-solo --pre
Password:
Fetching: mixlib-shellout-2.3.2.gem (100%)
Successfully installed mixlib-shellout-2.3.2

.......

 

動作検証

sudo knife solo init chef-repo

Password:

Creating kitchen...Creating knife.rb in kitchen...Creating cupboards...0

$ls

Vagrantfile chef-repo

 

リポジトリができあがっている!

 

=========================

 メモ

knife soloはknifeコマンドのプラグインっぽい。

Chefのコマンドまわりはchef soloとかzeroとかいろいろあって把握できていなかった

(chef soloからzero に移行してね、という記事を何かで読んで、

knife soloも同じように廃止されたのかと思っていた)。