大規模なプロジェクトに最適なアプローチを見つけようとしています。include_recipe
にレシピを追加するのではなく、を使用してレシピ内にレシピを追加するのが適切なのはrun_list
いつですか? 良い経験則はありますか?
2 に答える
私が見ているように、レシピは空のマシンで単独で実行できるはずです。したがって、レシピ A がその前に実行されたレシピ B に依存している場合は、常に include_recipe を使用します。
例: 2 つのクックブック、Tomcat と Java。Tomcat には Java が必要です。
一部のユーザーが tomcat をインストールしたい場合、そのユーザーはそれをインストールするために他のクックブックが実際に必要であることを知らないかもしれません。Tomcat レシピを実行すると、「Java が見つかりません」などのまったく役に立たないエラー メッセージが表示されて失敗するか、さらに悪いことに、成功しますが、Java がインストールされていないため、もちろんユーザーは Tomcat を起動できません。
しかし、Tomcat クックブックに行があり、メタデータに
include_recipe 'java'
も行が必要なdepends 'java'
場合、ユーザーが tomcat をインストールしようとすると、「クックブック Java が見つかりません」というわかりやすいエラー メッセージが表示されます。このようにして、実際にユーザーは、実際にレシピを実行せずにメタデータを読み取らずに、自分で (または自動ツールを使用して) 依存関係をダウンロードできます。
すべてのロジックは実行リストで制御する必要があります。クックブックは、人々が考えているほど再利用可能ではありません。すべてinclude_recipe
は、ユーザーが実行リストが何をするのかを理解するために見なければならない別の場所を追加して、それを明示的にして実行リストに入れることです。