Es ist aus verschiedenen Gründen üblich, einen Interpreter mit Umgebungsvariablen zu steuern ... insbesondere, wenn Sie manchmal daran denken, Puppet als Interpreter (in der #!
-Zeile
Hervorragende Antwort. Ich habe viel Zeit verschwendet, ohne zu bemerken, dass alle Facter-Variablen Kleinbuchstaben haben, auch wenn die Umgebungsvariable einen Großbuchstaben hat. Alle achten genau auf das Beispiel, das jnrg gibt.
Russell Silva
1
Es gibt einen defekten Link
Kenorb
7
Dazu müssten Sie eine serverseitige Funktion verwenden, wenn Sie die Umgebung des Puppenmeisters verwenden möchten. Da facter Ihnen Kundendaten liefert.
$ RUBYLIB / puppet / parser / functions / env.rb:
module Puppet::Parser::Functions
newfunction(:env) do |args|
variable = args[0]
ENV[variable]
end
end
Soweit ich weiß, läuft Puppet ohne Bash-Umgebungsvariablen. Es scheint seine gesamte Umgebung von Facter zu beziehen. Hier gibt es ein Skript , mit dem Sie Ihre regulären Envvars als Facter-Envvars importieren können.
Die Antwort ist ein bisschen enttäuschend: Sie können nicht (es sei denn, Sie verbessern Puppet oder Facter). Ich habe kürzlich einen kurzen Blog-Beitrag zu diesem Thema geschrieben:
Zugriff auf Umgebungsvariablen in Puppet
Eine kurze Zusammenfassung: Facter läuft auf jedem Puppet-Agentensystem. Erweitern Sie Facter einfach, um alle Umgebungsvariablen zu erfassen, und greifen Sie dann in Puppet-Manifesten darauf zu.
Antworten:
Ich denke, wir brauchen mehr Informationen darüber, was Sie erreichen wollen ... Facter legt standardmäßig die Umgebungsvariablen FACTER_ offen:
https://docs.puppetlabs.com/guides/faq.html#can-i-access-environment-variables-with-facter
Aber für $ PATH oder $ USER ... Warum weist Puppet nicht an, einen bestimmten Pfad oder einen Benutzer (für einen Exec?) Explizit zu verwenden?
quelle
Dazu müssten Sie eine serverseitige Funktion verwenden, wenn Sie die Umgebung des Puppenmeisters verwenden möchten. Da facter Ihnen Kundendaten liefert.
$ RUBYLIB / puppet / parser / functions / env.rb:
Verwenden Sie es in Ihren Manifesten wie:
quelle
Soweit ich weiß, läuft Puppet ohne Bash-Umgebungsvariablen. Es scheint seine gesamte Umgebung von Facter zu beziehen. Hier gibt es ein Skript , mit dem Sie Ihre regulären Envvars als Facter-Envvars importieren können.
quelle
In Puppet Enterprise 2.5.1 können Sie über / etc / env darauf zugreifen.
Überprüfen Sie auch, ob in Ihrer Umgebung die richtige Umgebung definiert ist
/etc/puppetlabs/puppet/puppet.conf
- sie sollte ungefähr so aussehen:quelle
Die Antwort ist ein bisschen enttäuschend: Sie können nicht (es sei denn, Sie verbessern Puppet oder Facter). Ich habe kürzlich einen kurzen Blog-Beitrag zu diesem Thema geschrieben: Zugriff auf Umgebungsvariablen in Puppet
Eine kurze Zusammenfassung: Facter läuft auf jedem Puppet-Agentensystem. Erweitern Sie Facter einfach, um alle Umgebungsvariablen zu erfassen, und greifen Sie dann in Puppet-Manifesten darauf zu.
Ich hoffe, das hilft!
quelle