Wie deaktiviere ich automatisch geplante Puppet-Läufe, die alle 30 Minuten stattfinden?

8

Ziel

Ziel ist es, automatische Puppet-Agent-Läufe zu deaktivieren, die alle 30 Minuten stattfinden. Es ist möglich , das Intervall zu ändern , aber die automatischen Puppet-Agent-Läufe sollten vollständig deaktiviert sein.


Versuchen Sie es

Gemäß dieser Dokumentation sollte es möglich sein, automatische Puppet-Agent-Läufe zu deaktivieren, indem Folgendes konfiguriert wird:

/etc/puppet/puppet.conf

[agent]
daemonize=false

führt zu

Notice: Run of Puppet configuration client already in progress; 
skipping  (/var/lib/puppet/state/agent_catalog_run.lock exists)

Wenn die Puppe im Standardlaufintervall von 30 Minuten manuell ausgeführt wird.


Versuch zwei

user@hostname:~$ sudo puppet agent --disable

führt zu

user@hostname:~$ sudo puppet agent -t
Notice: Skipping run of Puppet configuration client; 
administratively disabled (Reason: 'reason not specified');
Use 'puppet agent --enable' to re-enable.

Versuch drei

Diese Dokumentation wurde gefunden, nachdem die Frage dieser Fragen und Antworten gegoogelt wurde, aber die bereitgestellten Informationen beantworteten die Frage nicht.

030
quelle
2
Versuch man sollte arbeiten. Wenn es bereits lief, müssen Sie es selbst stoppen. Dies verhindert lediglich, dass zukünftige Instanzen dämonisiert werden. Wenn mir etwas fehlt, klären Sie bitte, warum dies nicht funktioniert hat. Sie können auch chkconfig puppet off && service puppet stopauf Red Hat und Derivate.
Aaron Copley
@ AaronCopley Vielen Dank für den Rat. Ich habe die Puppe deaktiviert und gestoppt und werde alle 30 Minuten überwachen, ob sie nicht erneut ausgeführt wird. Die daemonize=falseEinstellung befindet sich immer noch im Abschnitt Agent in /etc/puppet/puppet.conf
030
@AaronCopley Könnten Sie den Kommentar als Antwort posten?
030

Antworten:

10

"Versuch eins" hätte funktionieren sollen. Wenn es bereits lief, müssen Sie es selbst stoppen. Dies verhindert lediglich, dass zukünftige Instanzen dämonisiert werden. Wenn mir etwas fehlt, klären Sie bitte, warum dies nicht funktioniert hat. Sie können auch chkconfig puppet off && service puppet stopauf Red Hat und Derivate.

Aaron Copley
quelle
Vielleicht hat es beim ersten Mal nicht funktioniert, da der Marionettenagent nicht neu gestartet wurde. Morgen werde ich überprüfen, ob das Problem durch Ausführen des angegebenen Befehls behoben wurde.
030
4

Sie müssen sicherstellen, dass der Marionettenagent nicht als Dienst gestartet wird. Befehle wie systemctloder chkconfigsind hier dein Freund (zB systemctl disable puppetoderchkconfig puppet off ). Ich bin mir bei den meisten Distributionen nicht sicher.

Dann sollten Sie auch sicherstellen, dass der Agent gestoppt ist. ZB systemctl stop puppetoder service stop puppet.

Sie können auch einfach eine Puppe verwenden, um Folgendes zu erreichen:

puppet apply <(echo "service { puppet: ensure => false, enable => false }")

Wenn es immer noch nicht funktioniert, pkill puppetversuchen Sie es erneut, wenn es immer noch nicht funktioniert - starten Sie es neu.

Chutz
quelle
3

Suchen Sie einen Befehl wie:

puppet agent --disable
TomOnTime
quelle
Vielen Dank für die Beantwortung. Das Ausführen dieses Befehls führt zuError: Could not parse application options: invalid option: --disable
030
1
sollte Marionettenagent sein
deaktivierbar
@dmourati Dieser Befehl wurde ausgeführt. sudo puppet agent -tErgebnisse inNotice: Skipping run of Puppet configuration client; administratively disabled (Reason: 'reason not specified'); Use 'puppet agent --enable' to re-enable.
030
@TomOnTime Dies wurde bereits versucht. Sobald dieser Befehl ausgeführt wurde, ist es nicht mehr möglich, Puppet manuell auszuführen (Dokumentation von Versuch2 in der Frage)
030
1
Das wollten Sie: Administrativ deaktiviert. Wenn Sie manuell ausführen müssen, während Sie administrativ deaktiviert sind: Puppet Agent --enable; Marionettenagent - Test; Marionettenagent
dmourati
2

Ich würde nicht erwarten, dass die Daemonize-Option dies beeinflusst - ich würde erwarten, dass dies steuert, ob das Programm selbst einen Hintergrund hat und sich vom Terminal löst.

https://docs.puppetlabs.com/references/stable/configuration.html#runinterval sagt ...

Runintervall

Wie oft Puppet Agent den Katalog anwendet. Beachten Sie, dass ein Laufintervall von 0 "kontinuierlich laufen" bedeutet und nicht "nie laufen". Wenn Sie möchten, dass der Puppet Agent niemals ausgeführt wird, sollten Sie ihn mit der Option --no-client starten. Diese Einstellung kann ein Zeitintervall in Sekunden (30 oder 30 s), Minuten (30 m), Stunden (6 h), Tagen (2d) oder Jahren (5 j) sein.

was relevanter erscheint (der Verweis darauf, mit zu beginnen --no-clientund nicht die Einstellung selbst).

Wenn wir die Marionette daran hindern müssen, regelmäßige Änderungen vorzunehmen, beenden wir einfach den Dienst auf dem verwalteten Knoten. Das bedeutet natürlich, dass Sie in der Lage sein müssen, einen einmaligen Lauf über einen anderen Mechanismus aufzurufen (wir tun dies nicht oft, also laufen Sie einfach von der Shell aus).

Mit diesem Setup läuft Puppetd, führt aber keine regelmäßigen Updates durch (das ist meine Erwartung - ich versuche dies auf einem Testcomputer, aber es ist noch nicht genug Zeit vergangen).

Das Ausführen puppet agent --testverursacht einen einzelnen Lauf, plant jedoch keine zukünftigen Läufe.

Paul Haldane
quelle
Vielen Dank für die Beantwortung. Bedeutet dies, dass wenn jemand versehentlich läuft, z. B. sudo puppet agent -tder geplante Lauf reaktiviert wird?
030
Nein, das -timpliziert no-daemonize. (Neben onetime, verbose, ignorecache, no-usecacheonfailure, detailed-exit-codes, no-splay, und show_diff.) Sie können diese sehen in der Ausgabe puppet agent help.
Aaron Copley
1

sudo service puppet stop Wenn Sie den Puppet-Daemon ausführen

Oder löschen Sie den Cronjob, wenn Sie ihn so konfiguriert haben.

dmourati
quelle
Führt die Installation eines Puppet-Agenten auch zur Installation eines Cron-Jobs? Ich habe keinen Cronjob konfiguriert, um Puppet selbst auszuführen.
030
Nein, eine Standardinstallation führt nicht zu einem erstellten Cron-Job. Wenn Sie Puppet ohne den daemonisierten Dienst ausführen möchten, können Sie selbst einen Cron-Job erstellen .
Aaron Copley
1
puppet --version

kehrt zurück

5.3.3

puppet resource service puppet ensure=stopped enable=false

kehrt zurück

Notice: /Service[puppet]/ensure: ensure changed 'running' to 'stopped'
service { 'puppet':
  ensure => 'stopped',
  enable => 'false',
}

Das Gegenteil von stoppedist running. Das Gegenteil von falseist true. ;)

uav
quelle
0

Wie ich in der verknüpften Frage erwähnt habe , eine Möglichkeit, Puppet-Agent ausgeführt und den Konfigurationslauf deaktiviert zu haben, ändert sich runintervalder Wert auf einen sehr großen Wert, z. B. 10 Jahre oder so ähnlich. Diese Lösung löst jedoch nach dem Neustart des Agenten immer noch einen Konfigurationslauf aus.

Alexander Tolkachev
quelle