Puppet-Umgebung bestimmen / einstellen

8

Ich versuche festzustellen, was Puppet für die Umgebung auf meinen Agentenknoten hält. Per Dokumentation habe ich die Agenten - Umgebung in konfiguriert /etc/puppet/puppet.conf als solche

[agent]
    environment = development

Um die Umgebung anzuzeigen, habe ich diesen Code gefunden, um dem Facter einen Umgebungsfaktor hinzuzufügen:

require 'puppet'

Facter.add("environment") do
  setcode do
    Puppet[:environment]
  end
end

Wenn ich jedoch auf einem meiner Agentenknoten ausgeführt werde sudo facter -p environment, ist das Ergebnis die Produktion . Ich habe versucht, die Umgebung vorübergehend manuell einzustellen sudo puppet agent --environment development, aber das Ergebnis von facter ist das gleiche.

Irgendeine Idee, was los ist?

Quickshiftin
quelle
Vielleicht ein Fehler . Ich habe der Hauptzeilengruppe eine Umgebung hinzugefügt , die funktioniert (nach dem Neustart des Puppendienstes). Das Setzen des Werts unter die Zeilengruppe " Agent" scheint keine Auswirkung zu haben.
Quickshiftin
1
Die Umgebung ist bereits an den Server übergeben. Sie müssen keine Tatsache erstellen.
Zoredache
@Zoredache Scheint, als ob die Umgebung von Anfang an nicht richtig eingestellt wurde. Wie sonst hätte ich das ohne die Tatsache gesehen?
Quickshiftin
Warum sollte sich das sudo puppet agent --environment developmentnicht auch widerspiegeln?
Quickshiftin
3
Der Puppen-Client sendet einige eigene Fakten, die Sie in facter nicht sehen. Umgebung ist eins. Die Client-Version und der Zertifikatsname sind weitere Beispiele. Sie können so etwas wie notify {"environment = $::environment":}auf Ihren Meister setzen.
Zoredache

Antworten:

7

Versuchen Sie es puppet agent --configprint environment- das stellt sicher, dass der [agent]Block in der Konfigurationsdatei verwendet wird, der auch verwendet wird, wenn der Agent einen Katalog von einem Master erhält.

Shane Madden
quelle
Sollte die Agenten- Zeilengruppe nicht von der Haupt- Zeilengruppe erben ? In der Dokumentation heißt es: "Der Konfigurationsblock [main] ist am wenigsten spezifisch. Die Einstellungen hier sind immer wirksam, sofern sie nicht durch einen spezifischeren Block überschrieben werden." Wenn ich diesen Befehl ausführe, ist das Ergebnis jedoch Produktion . Wenn ich die Tatsache in meiner Frage verwende, wird die Entwicklung zurückgegeben. Selbst wenn ich Ihren Befehl mit der Umgebung unter der
Quickshift
Ja, es kann entweder im Haupt- oder im Agentenblock festgelegt werden. Es wird nicht die richtige Konfigurationsdatei verwendet, wenn der Inhalt der Konfigurationsdatei nicht wirksam ist. Bist du root?
Shane Madden
Ich weiß , Sie sollten die Lage sein , in der Lage sein , die Umwelt in jeder Lage zu setzen, aber die Tatsache , scheint nicht zu Arbeit 100% , wenn Satz innerhalb des Agenten Strophe. Ich habe den facter-Befehl über sudo ausgeführt. Und gerade erkannt, wenn Sie Ihren Befehl über sudo ausführen, gibt er die Entwicklung zurück . Darüber hinaus wird die Entwicklung zurückgegeben, wenn die Umgebung in der Zeilengruppe " Agent" festgelegt ist ! Auf Wiedersehen benutzerdefinierte Tatsache, hallo nächste Serverfehler Frage (kommt bald;))
Quickshiftin
@quickshiftin Richtig - wenn Sie nicht root sind, wird die /etc/puppet/puppet.confDatei nicht verwendet .
Shane Madden