0

test-kitchenとを使用しBerkshelfて、現在のクックブックをキャプチャして配布したいと考えています。

チームメイトに をインストールするように伝えた後berkshelf、次のオプションが考えられます。

  1. Berksfileクックブックごとに opscode リポジトリを介してクックブックを取得する
  2. berks package必要なすべてのクックブックを tar ボールに実行します。次に、開発者は tarball を解凍し、Berksfile は次の方法で各クックブックを取得します。cookbook X, path: 'cookbooks/X'
  3. ???

どのオプションが最適で、その理由は?

4

2 に答える 2

2

なぜクックブックを配布したいのですか?Berkshelf/Bundler のようなツールの要点は、クックブックを共有する必要がないようにすることです。

クックブックを Berkshelf でインストールすると、Berkshelf はロックファイルを生成します。このロックファイルには、すべてのクックブックとその場所のリストが含まれています。次に、そのロックファイルをソース管理にチェックインします。チームメイトがリポジトリを複製/更新すると、そのロックファイルが取得されます。その後 を実行するberks installと、Berkshelf はロックファイルのすべての制約とバージョンを尊重します。

非標準の場所 (つまり、パス、github、svn、hg など) は推奨されません。それらはグラフの解決をほぼ不可能にし、リポジトリの移植性を低下させます。

以下も参照してください。

ソース:

  • コアチーム
于 2014-04-23T12:30:35.807 に答える
1

最良の選択は、クックブックを誰に配布するかによって決まると思います。

  1. 他の開発者?
    • 最も簡単な解決策は、コードと一緒に Berkfile.lock をコミットすることです
    • ある時点での依存関係をキャプチャします
  2. サードパーティ
    • (Berkshelf を使用して) tarball を作成し、Nexusなどのバイナリ リポジトリ マネージャーにアップロードします。
    • ユーザーは、chef サーバーで使用されているクックブックの明示的なコピーをダウンロードできます。顧客が企業のファイアウォールの内側にいる場合に役立ちます。

Jamie Windsor は、ブログ投稿でさまざまなアプローチについて説明しています。

于 2014-04-23T10:49:44.113 に答える