概要
- いきなり
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 だけを転送するんぢゃなかったのね。初めて知りました。