2013-11-01 8 views
6

Ich brauche einen Weg, um zu erkennen, dass die Puppe einen ersten Lauf (erfolgreich) beendet hat, also kann ich warten, bevor ich andere Aktionen beim Hochfahren von Maschinen auf AWS EC2 und/oder OpenStack starte. Wie kann ich das überprüfen?So erkennen Sie, dass ein Marionettenlauf abgeschlossen ist

Einige bisher schwebte Ideen sind:

  1. Puppe eine Datei berühren haben, wenn (erfolgreich) beendet ist, kann ich dann für diese Datei nur zuschauen
  2. Puppe eine Tatsache schreiben, wenn (erfolgreich) abgeschlossen, Ich kann Fakten durch mcollective überprüfen. (nicht sicher, ob das Schreiben db zu Marionette aus einem Puppen Lauf ist auch möglich)

Antwort

5
/var/lib/puppet/state/puppetdlock 
/var/lib/puppet/state/state.yaml 
/var/lib/puppet/state/last_run_summary.yaml 

Dies sind die Dateien, die Sie überprüfen möchten.

Die Sperrdatei wird gesetzt, wenn puppetd gerade ausgeführt wird. State und last_run_summary können verwendet werden, um zu sehen, ob vergangene Läufe erfolgreich waren oder nicht.

Siehe auch diese serverfault Frage:

https://serverfault.com/questions/463231/check-if-puppet-agent-is-up-to-date

+1

Wenn Sie Puppet Enterprise verwenden, finden Sie diese Dateien normalerweise unter/var/opt/lib/pe-puppet/state. Verwenden Sie puppet config print vardir, um das Verzeichnis zu finden, wenn Sie es an einem benutzerdefinierten Speicherort installiert haben –

1

Ich versuche, habe es auf CentOS 6.4

Wenn Sie Server/Client-Modus ausführen, überprüfen Sie die Datei existiert:

/var/lib/puppet/state/agent_catalog_run.lock

Wenn Sie es im eigenständigen ausführen, finde ich nicht, dass es eine Sperrdatei gibt. Vielleicht müssen Sie die Protokolldatei für diesen Artikel "Fertiggestellter Katalog in xxx Sekunden" analysieren