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