Chefクックブックをchef/cookbooks /フォルダーに保存しています。実行時kitchen converge
まだ通知があります
Berksfile, Cheffile, cookbooks/, or metadata.rb not found so Chef will run with effectively no cookbooks. Is this intended?
私は多くのオプションを試しました、例えば:
suites:
- name: default
run_list: recipe[git]
cookbook_path: "chef/cookbooks"
しかし、私は適切な解決策を見つけることができません。クックブックとロールのパスを指定するにはどうすればよいですか?
あなたはあなたのberksfileにパスを入れたいと思うでしょう、それはおそらくそのように見えるでしょう..
source 'https://supermarket.chef.io'
cookbook 'cookbookname', path: 'relative/or/absolute/path/to/cookbook/directory'
Berksfileは、コードをデプロイするときにchefによっても使用されるため、相対ファイル構造がマシン上でchefサーバー上と同じである場合に役立ちます(つまり、すべてのクックブックがディレクトリを共有するため、berksfileはパスを使用できます。/cookbookname ')
プロビジョナーセクションで設定します。
provisioner:
name: chef_zero
require_chef_omnibus: 11.12.2
cookbook_path: whatever/path/to/cookbooks
テストしているクックブックへの参照を含む.kitchen.ymlがあるトップレベルのBerksfileをセットアップします。各クックブックは依存関係を宣言し、トップレベルのberks install
はすべてがインストールされていることを確認します。
(私はchefdk 0.4から始めて同じ問題に遭遇しました)。