ようへいの日々精進XP

よかろうもん

knife solo に -VV オプションをつけて実行して判ったこと

概要

  • いきなり knife solo が動かなくなってしまったので --verbose オプションをつけて実行した
  • 脱初心者は程遠い...

判ったこと

solo.rb はちゃんと書くこと

knife solo を実行する環境の solo.rb をそのまま rsync で転送しており、適切に cookbook_path 等が設定されていないと...

Chef::Exceptions::CookbookNotFound: Cookbook setup not found. If you're loading setup from another cookbook, make sure you configure the dependency in your metadata

と怒られる。

はい。すいません。

ということで、上記のように solo.rb をちゃんと書くこと。

knife.rb に指定した cookbook_path 以下の cookbook を丸ごと rsync している

run_list に記載された cookbook 以外に knife.rb に指定した cookbook_path 以下に保存されている cookbook を全部 rsync しているみたい。

以下、knife solo を実行する環境の cookbook_path に保存された cookbook 達。

$ tree -L 1 my-cookbooks
my-cookbooks
├── ansible_install_cookbook
├── db_benchmark
├── hoge_cookbook
├── lamp
├── mariadb_install_cookbook
├── memcached
├── mysql_install_cookbook
├── redis_1_cookbook
├── redis_2_cookbook
└── setup

以下、knife solo によって chef-solo が実行される環境の cookbook_path に保存された cookbook 達。

# pwd
/tmp/chef-solo
# tree -L 1 my-cookbooks/
my-cookbooks/
├── ansible_install_cookbook
├── chef_solo_patches
├── db_benchmark
├── hoge_cookbook
├── lamp
├── mariadb_install_cookbook
├── memcached
├── mysql_install_cookbook
├── redis_1_cookbook
├── redis_2_cookbook
└── setup

ん、run_list に書かれた cookbook だけを転送するんぢゃなかったのね。初めて知りました。