Ich habe eine benutzerdefinierte Ressource geschrieben sshd_allow_groups
, dass es Aktionen einige der Attribute des Knotens ändern, und diese werden bei der Erstellung der verwendet Vorlage für /etc/sshd_config
im Standardrezept (in dem die benutzerdefinierte Ressource gehostet wird). Da die benutzerdefinierte Ressource normalerweise von anderen Kochbüchern aus aufgerufen wird, kann ich jedoch nicht garantieren, dass die Vorlagenressource aufgerufen wird, nachdem die Änderungen an den Attributen vorgenommen wurden, wodurch eine Situation entsteht, in der zwei Kochdurchläufe benötigt werden gewünschte Änderung.CHEF: Richten Sie eine Ressource einmal am Ende auf einen Aufruf einer anderen (benutzerdefinierten) Ressource
Ich bin auf der Suche nach einer Möglichkeit zum Auslösen der Vorlage Ressource nach dem Aufruf der Ressource und am Ende ausgeführt werden (falls die Ressource mehrmals aufgerufen wird). notifies
funktioniert nicht, weil die Aktion für die Vorlage nicht :nothing
ist, noch sollte es sein, denn wenn für einen bestimmten Knoten diese Ressource nicht benötigt wird, muss die Vorlage noch geschrieben werden.
meine benutzerdefinierte Ressource:
sshd_allow_groups "bob" do
action :append
end
Benachrichtigen Sie einfach verzögert von Ihrem benutzerdefinierten Ressourcenaufruf, wird es die Vorlage zweimal schließlich rendern, aber immer noch die richtige Datei am Ende. Das heißt, benutze kein normales Level, wenn du nicht genau weißt, was du tust, oder du wirst Überraschungen bekommen, wenn du jemanden aus der Gruppe entfernen willst. Alles in allem klingt das nach einem [XY-Problem] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem), wo Sie nach einer Lösung für eine nicht effektive Lösung fragen dein echtes Problem. – Tensibai
Das 'notifies' hat nicht funktioniert (ich dachte irgendwann, dass ich dies verwenden muss, um zu beheben: http://StackOverflow.com/questions/21176576/how-to-i-get-a-chef-custom-lwrp- zu implementieren-benachrichtigt-und-nicht-wenn). Was ich wirklich will, ist, dass ich überhaupt nichts "benachrichtigen" muss, so dass die Ressource selbst sich darum kümmert (ein mehr DRY-Code).Und warum ist das Ihrer Meinung nach ein XY-Problem? Was denkst du ist mein X? –
Soweit ich das beurteilen kann, möchten Sie die sshd_config-Datei verwalten. Sie teilen dies zwischen einer benutzerdefinierten Ressource auf, um Attribute zu aktualisieren, und einer Vorlage woanders. Wenn das Ziel darin besteht, die Attributaktualisierung zu erleichtern, dann gehen Sie zu einer Hilfsbibliothek, die für jedes Kochbuch zur Kompilierzeit verfügbar ist konvergiere das tatsächliche Problem, bei dem Attribute zu spät berechnet werden. – Tensibai