- 更新日: 2014年8月16日
- Vagrant & Chef
WARN: MissingCookbookDependencyとChefで警告が出る場合の対処
Chef で作成した Cookbook を knife solo コマンドで対象ホストにプロビジョニング実行する時に遭遇した警告です。WARN: MissingCookbookDependency の警告メッセージ。
依存Cookbookの解決ができない場合に出る警告
knife solo コマンドでプロビジョニング実行中に・・・
1 2 3 4 5 6 7 8 9 |
$ bundle exec knife solo cook example.host ... [2014-08-16T09:23:31+00:00] WARN: MissingCookbookDependency: Recipe `some_app_cookbook::default` is not in the run_list, and cookbook 'some_app_cookbook' is not a dependency of any cookbook in the run_list. To load this recipe, first add a dependency on cookbook 'some_app_cookbook' in the cookbook you're including it from in that cookbook's metadata. |
一応、プロビジョニングは正常に実行できたのですが、上記の WARN: MissingCookbookDependency 警告が出力されました。Chef Cookbook の構成は以下のようにしていました。
wrapper_cookbook から、some_app_cookbook の default レシピを include。
site-cookbooks/wrapper_cookbook/recipes/default.rb
1 2 3 |
# ... include_recipe 'some_app_cookbook::default' |
wrapper_cookbook が some_app_cookbook に依存している状態です。
そして、run_list には wrapper_cookbook::default のみを指定。
nodes/example.host.json
1 2 3 4 5 6 7 8 9 10 |
{ "run_list": [ "recipe[wrapper_cookbook::default]" ], "automatic": { "ipaddress": "example.host" } } |
これだけの設定ですと、プロビジョニングの際に上記の WARN: MissingCookbookDependency 警告が出てしまう。
WARN が出ないようにする解決策
エラーメッセージと https://github.com/redguide/nodejs/issues/11 などの情報を頼りに、wrapper_cookbook/metadata.rb に依存Cookbookの情報を追記しました。
site-cookbooks/wrapper_cookbook/metadata.rb
1 2 3 |
#... depends 'some_app_cookbook' |
これで、WARN: MissingCookbookDependency の警告が出なくなってめでたし。
- Vagrant & Chef の関連記事
- Vagrantで使うVirtualBoxのVM(仮想マシン)を外付けHDDに移動
- Chefで/etc/sysctl.confのkernel.panicを設定
- Chefでtelnetをインストール
- Chefでyumリポジトリを追加する設定
- Chef で iptables の設定
- ChefでSSH接続用の公開鍵をサーバーに設置
- nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
- Chef Recipe でユーザー・グループを作成
- Chef Recipe で CentOS のネットワーク・ホストを設定
- NetworkManager 他不要なパッケージを削除する Chef Recipe
Leave Your Message!