Puppetのincludeとrequireの違いは何ですか


8

次のコードがある場合、私は人形のクラスを持っています:

class A {
  require B

....
} 

循環依存エラーが発生します。私が持っている場合:

class A {
  include B

....
} 

すべてうまくいきます

回答:


18

実際、それらは非常に異なるものです。つまり、require B手段Bは前に来る必要があるA(したがって、何かがにB変わった場合に循環依存が発生する可能性がありますrequire A)。そして、Bまったく含まれていない場合、依存関係の欠落エラーが発生します。

一方、include Bちょうど言うBたびに適用されますA適用されます:それは、それらの間のオーダーで何も言います。


require B実際にそれBが前に来なければならないという意味ではありませんAか?
セバスチャンクリスマンスキー

@SebastianKrysmanskiええと、はい。:)
ダニエルC.ソブラル

10

これは、puppetメーリングリストで質問(および回答)されたばかりです。

違いは、カタログを適用する必要があるときに明らかです。インクルードを使用して、インクルード時にその内容を評価しました-ただし、リソースはインクルード後に明示的に依存する必要があります。requireを使用すると、依存関係が作成されますが、これが目的の結果であることを注意して確認する必要があります

-ケンバーバーが必要かインクルードか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.