Was ist der Unterschied zwischen Include und Require in Puppet?


8

Ich habe eine Puppenklasse, wenn ich den folgenden Code habe:

class A {
  require B

....
} 

Ich erhalte einen Fehler bei zirkulären Abhängigkeiten. Wenn ich habe:

class A {
  include B

....
} 

alles funktioniert gut

Antworten:


18

Eigentlich sind es sehr unterschiedliche Dinge. Zu sagen, dass require BMittel Bvorher kommen müssen A(und daher zu zirkulären Abhängigkeiten führen können, wenn sich etwas Bherausstellt require A). Und wenn Bes überhaupt nicht enthalten ist, führt dies zu fehlenden Abhängigkeitsfehlern.

Auf der anderen Seite wird include Bnur gesagt, Bwird angewendet, wann Aimmer es angewendet wird: Es sagt nichts über die Reihenfolge zwischen ihnen aus.


Bedeutet das nicht require B, dass Bdas vorher kommen muss A?
Sebastian Krysmanski

@SebastianKrysmanski Äh, ja. :)
Daniel C. Sobral

10

Dies wurde gerade auf der Puppen-Mailingliste gefragt (und beantwortet):

Der Unterschied ist offensichtlich, wenn der Katalog angewendet werden muss. Mit include haben Sie den Inhalt zum Zeitpunkt des Include ausgewertet - alle Ressourcen müssen jedoch nach dem Include explizit abhängig gemacht werden. Mit einer Anforderung - die Abhängigkeit wird für Sie erstellt - müssen Sie jedoch vorsichtig sein und sicherstellen, dass dies Ihr gewünschtes Ergebnis ist

- Ken Barber in Require vs Include?

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.