web-dev-qa-db-ja.com

.kitchen.ymlファイルでクックブックのパスを指定するにはどうすればよいですか?

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"

しかし、私は適切な解決策を見つけることができません。クックブックとロールのパスを指定するにはどうすればよいですか?

15
tsusanka

あなたはあなたのberksfileにパスを入れたいと思うでしょう、それはおそらくそのように見えるでしょう..

source 'https://supermarket.chef.io'
cookbook 'cookbookname', path: 'relative/or/absolute/path/to/cookbook/directory'

Berksfileは、コードをデプロイするときにchefによっても使用されるため、相対ファイル構造がマシン上でchefサーバー上と同じである場合に役立ちます(つまり、すべてのクックブックがディレクトリを共有するため、berksfileはパスを使用できます。/cookbookname ')

14
JackChance

プロビジョナーセクションで設定します。

provisioner:
  name: chef_zero
  require_chef_omnibus: 11.12.2
  cookbook_path: whatever/path/to/cookbooks
3
sethvargo

テストしているクックブックへの参照を含む.kitchen.ymlがあるトップレベルのBerksfileをセットアップします。各クックブックは依存関係を宣言し、トップレベルのberks installはすべてがインストールされていることを確認します。

(私はchefdk 0.4から始めて同じ問題に遭遇しました)。

1
syrnick