Ich möchte mysql_tzinfo_to_sqlimmer dann ausführen, wenn sich das tzinfo- Paket (unter Ubuntu Server) ändert. Ich dachte, Puppet kann sich darum kümmern.
Ich dachte, dass entweder Puppet auf eine Änderung der Paketversion reagieren würde oder, wenn nicht, auf eine Änderung der Zeitstempel einer im Paket enthaltenen Datei.
Die einzige Möglichkeit, dies zu tun, besteht darin, eine Ressource ohne direkte Aktion und eine davon abhängige Exec zu haben.
Die Fragen, die ich habe, sind:
- Ist es möglich, eine Datei zu definieren, die nur zum Benachrichtigen einer anderen Ressource (z. B. exec ) verwendet wird?
- Ist es möglich, eine Paketressource so zu definieren, dass eine andere Ressource (z. B. exec ) aktiviert wird, wenn sich das Paket ändert oder aktualisiert?
- Ist es möglich, eine Exec- Ressource zu definieren , die anstelle eines Befehls aus dem Dateisystem eine Shell-Befehlszeile ausführt (z. B. mit Pipes und Umleitung)?
Alles in allem scheint es überwältigend.
FOLLOWUP : Fantastische Antworten! Der Vollständigkeit halber (und für die Aufzeichnung) sollte ich Folgendes beachten:
- Der vollständige Shell-Befehl von Interesse ist
mysql_tzinfo_to_sql | mysql -u root -p password(er lädt tzinfo in eine MySQL-Datenbank für die Verwendung mit MySQL). - Die Prüfung von
/etc/tzinfowäre zwecklos, da dies lediglich die lokale Zeitzonenkonfiguration ist. Ziel ist es, auf Änderungen in den tzinfo-Daten selbst zu achten (also auf das Beobachten von/usr/share/zoneinfo). - Ebenso wäre der Inhalt falsch anzusehen - da er sich wahrscheinlich nicht ändert; Am besten sehen Sie sich die mtime oder alle an, da sich die Dateizeitzeiten nach jedem tzinfo-Update ändern sollten.
Auch James Turnbull schrieb alles über die Prüfung , wenn es eingeführt wurde. Die Metaparameter-Referenz enthält eine kurze Beschreibung der Funktionsweise des auditParameters.