
Ich habe Probleme, meinen Puppet-Agenten zu starten. Ich werde den Agenten mit dem Parameter --onetime verwenden, da ich möchte, dass der Agent seine Konfiguration zieht, anstatt dass der Puppet-Master sie pusht.
Ich verwende Puppet Version 2.73 sowohl für Master als auch für Agent auf einem Debian-Host.
Ich befinde mich in einer Umgebung, in der jede Benutzeraktion im Hinblick auf die Ausführung des Puppet-Agenten aufgezeichnet werden muss. Daher scheint sudo die naheliegende Wahl zum Starten des Puppet-Agenten zu sein.
Beim Starten des Puppet-Agenten als sudo erhalte ich jedoch einige Fehlermeldungen:
user@puppetagent$ sudo puppet agent --onetime
/usr/lib/ruby/vendor_ruby/facter/kernel.rb:14: command not found: /bin/uname -s
/usr/lib/ruby/vendor_ruby/facter/kernel.rb:14: command not found: /bin/hostname
/usr/lib/ruby/vendor_ruby/facter/kernel.rb:14: command not found: /bin/uname -s
/usr/lib/ruby/vendor_ruby/facter/kernel.rb:14: command not found: /bin/hostname
/usr/lib/ruby/vendor_ruby/facter/kernel.rb:14: command not found: /bin/dnsdomainname
/usr/lib/ruby/vendor_ruby/puppet/util.rb:215: command not found: /bin/hostname
/usr/lib/ruby/vendor_ruby/facter/kernel.rb:14: command not found: /bin/uname -s
/usr/lib/ruby/vendor_ruby/facter/kernel.rb:14: command not found: /bin/uname -s
/usr/lib/ruby/vendor_ruby/facter/kernel.rb:14: command not found: /bin/uname -s
/usr/lib/ruby/vendor_ruby/facter/kernel.rb:14: command not found: /bin/uname -s
/usr/lib/ruby/vendor_ruby/facter/kernel.rb:14: command not found: /bin/uname -s
/usr/lib/ruby/vendor_ruby/facter/kernel.rb:14: command not found: /bin/uname -s
/usr/lib/ruby/vendor_ruby/facter/kernel.rb:14: command not found: /bin/uname -s
/usr/lib/ruby/vendor_ruby/facter/kernel.rb:14: command not found: /bin/uname -s
/usr/lib/ruby/vendor_ruby/facter/kernel.rb:14: command not found: /bin/uname -s
Could not prepare for execution: could not create PID file: /var/run/puppet/agent.pid
Wenn ich dieselbe Aktion als Root ausführe, treten keine Probleme auf.
Ich habe die Dokumentation zu Puppet Labs gelesen (die ich jetzt nicht finden kann), in der erwähnt wurde, dass das Ausführen des Agenten mit dem Befehl „sudo“ möglicherweise nicht möglich ist.
Meine Frage lautet also: Ist es möglich, den Puppet-Agenten als nicht privilegierter Benutzer auszuführen, indem ich „sudo“ ausführe? Wenn ja, welche Art von Änderungen muss ich an der Datei „sudoers“ vornehmen, vorausgesetzt, diese muss geändert werden.
Wenn dies nicht möglich ist, kann jemand Alternativen vorschlagen, um 1) den Puppet-Agenten immer nur auf einem Host gleichzeitig auszuführen, sodass die Konfiguration abgerufen wird, und 2) diese Aktion aufzuzeichnen.
Antwort1
Ich verstehe die Anforderung „ein Host gleichzeitig“ nicht. Puppet ist durchaus in der Lage, mehrere Puppet-Agent-Läufe gleichzeitig auszuführen und aufzuzeichnen.
Um auszuschließen, dass es sich um ein Umgebungsproblem handelt, führen Sie aus sudo -i <command>
.
Die Verwendung von Puppet im Push-Modus könnte Ihren Anforderungen jedoch besser entsprechen. Der Puppet-Agent (den Sie zuerst neu konfigurieren müssen) wartet auf eine Verbindung vom Puppetmaster und veranlasst so einen Puppet-Lauf.
Sie können dies tun, indem Sie puppet kick
den Puppetmaster ausführen.
Die Papierspur wird durch den Bericht des Clients generiert, der auf den Master hochgeladen wird, und auditd (sowohl auf dem Client als auch auf dem Master) protokolliert auf einem Syslog-Server (die Protokollierung von sudo ist nichtDaszuverlässig) verfolgt Sie, wenn Sie den Befehl erteilen.