Erzwingen, Änderungen durch Puppe auf einen Puppenagenten anzuwenden, durch Meister?

7

Ist es möglich, einen Befehl von der Master-Puppe an einen Knoten zu senden, um den Agenten auszuführen und die neueste Konfiguration darauf anzuwenden?

Ich habe das Passwort für einen Benutzer verloren und kann mich nicht anmelden, aber der Puppet Agent ist auf dem Server installiert und ich kann die Änderungen auf dem Server anwenden, indem ich den Puppet Agent ausführe. Da er jedoch nicht automatisch ausgeführt wird und ich mich nicht anmelden kann Wie kann man es manuell ausführen und die Konfiguration über den Puppet Master anwenden? (wenn möglich)

Farhan
quelle
1
Ähnlich wie Zoredache unten erwähnt, gibt es keine Möglichkeit, das Einchecken des Agenten zu erzwingen, wenn der Agent nicht ausgeführt wird. Puppet ist ein Pull-System, kein Push-System (der Agent entscheidet, wann er eincheckt, nicht der Master). Um die Wahrscheinlichkeit zu verringern, dass dies in Zukunft geschieht, können Sie (a) den SSH-Schlüsselaustausch zwischen dem Puppetmaster und den Clients für die Root-Anmeldung einrichten, (b) Cron-Jobs erstellen, um den Puppet Agent zu starten, wenn er nicht ausgeführt wird.
Mike Renfro
Was ist der Agent ist dämonisiert? Gibt es eine Möglichkeit, die Änderungen zu verschieben?
Farhan
Wenn der Agent auf dem Client ausgeführt wird , können Sie alles tun, indem Sie Manifeste auf dem Puppetmaster bearbeiten und darauf warten, dass der Agent eincheckt: Pakete installieren, SSH-Schlüssel vom Puppetmaster kopieren, Konfigurationsdateien neu schreiben usw. Wenn dies der Agent ist Wenn Sie nicht auf dem Client ausgeführt werden und keine anderen Arbeitsmethoden für den Remotezugriff als Root haben, müssen Sie dies physisch mit einer Rettungs-CD oder einer anderen Methode beheben. Dies wäre eine andere Frage.
Mike Renfro
Schauen Sie sich das an: github.com/alcCapone/doll Sehr
einfach

Antworten:

2

Entsprechend den veralteten Befehlszeilenfunktionen :

[In Puppet 4.0] Der puppet kickBefehl ist nicht mehr vorhanden und der Agentendämon wartet nicht mehr auf eingehende HTTPS-Verbindungen.

Wenn Sie oder Ihre Skripte verwenden puppet kick, müssen Sie entweder MCollective für ein robusteres und paralleles Task-Running-System installieren oder ein paralleles SSH-Tool verwenden, um Puppet-Runs zu starten. Wenn Sie Puppet Enterprise verwenden, können Sie die Orchestrierungsfunktionen bereits verwenden, um Puppet-Läufe auszulösen .

Sie möchten wahrscheinlich Port 8139 schließen, während Sie gerade dabei sind.

(Schwerpunkt Mine beim Schließen von Port 8139)

Matt Borja
quelle
2

Versuchen

puppet kick --host <hostname>

https://docs.puppet.com/puppet/3/man/kick.html

iamauser
quelle
Dies setzt natürlich voraus, dass sein Agent dämonisiert ist. Aber da er erwähnt, dass der Agent nicht automatisch ausgeführt wird, vermute ich, dass dies nicht helfen wird.
Zoredache
Wie ich verstanden habe, sollte Puppet auf dem Client konfiguriert sein, muss aber nicht unbedingt dämonisiert werden. Außerdem muss der Client so konfiguriert sein, dass er Port 8139 auf TCP-Verbindungen überwachen kann. In Verbindung stehender Hinweis, ich erkannte, dass Marionettentritt veraltet ist, weiß nicht, ob es eine verbesserte Methode hat.
Iamauser
hatte den ganzen Tag versucht, kein Erfolg. es gibt Fehler: Auslösen von vpmve.co.uk Host vpmve.co.uk fehlgeschlagen: Verbindung abgelehnt - Verbindung (2) vpmve.co.uk beendet mit Exit-Code 2 fehlgeschlagen: vpmve.co.uk
Farhan
Ja, ich bin auf dasselbe Problem gestoßen, habe mich selbst ausprobiert, habe aber nicht im Detail nachgesehen. Sie können einen Trace verwenden und für den Befehl debuggen, um zu sehen, was los ist. zB puppet kick --trace --host <hostname> --debug
iamauser
4
kickfunktioniert nur, wenn dies listen = trueim Agenten festgelegt ist puppet.conf. Es ist auch veraltet , Sie möchten es wahrscheinlich nicht jetzt verwenden.
Shane Madden