Kontrolowanie interpretera za pomocą zmiennych środowiskowych jest bardzo zwyczajne z różnych powodów ... zwłaszcza jeśli myślisz o tym, że czasami uruchomisz lalkę jako interpreter (w linii #!?) Zamiast demona ...
joeforker
Doskonała odpowiedź. Zmarnowałem dużo czasu, nie zauważając, że wszystkie zmienne Facter mają małe litery, nawet jeśli zmienna środowiskowa ma wielką literę. Wszyscy zwracają baczną uwagę na przykład podany przez jnrg.
Russell Silva,
1
zerwany link
kenorb
7
Aby to zrobić, musisz użyć funkcji po stronie serwera. Od faktora dostajesz fakty od klientów.
$ RUBYLIB / puppet / parser / functions / env.rb:
module Puppet::Parser::Functions
newfunction(:env) do |args|
variable = args[0]
ENV[variable]
end
end
Z tego, co mogę powiedzieć, Puppet działa bez żadnych zmiennych środowiskowych Bash. Wydaje się, że całe swoje środowisko otrzymuje od Facter. Jest tutaj skrypt do importowania twoich zwykłych envvarów jako envvars Facter.
Odpowiedź jest nieco rozczarowująca: nie możesz (chyba że ulepszysz Puppet lub Facter). Niedawno napisałem krótki post na blogu na ten temat:
Dostęp do zmiennych środowiskowych w Puppet
Krótkie streszczenie: Facter działa na każdym systemie agentów Puppet. Po prostu ulepsz Facter, aby zebrał wszystkie zmienne środowiskowe, a następnie będziesz mógł uzyskać do nich dostęp w manifestach Lalek.
Odpowiedzi:
Myślę, że potrzebujemy więcej informacji na temat tego, co próbujesz osiągnąć ... Facter domyślnie udostępnia zmienne środowiskowe FACTER_:
https://docs.puppetlabs.com/guides/faq.html#can-i-access-environment-variables-with-facter
Ale dla $ PATH lub $ USER ... Dlaczego nie mówi marionetce jawnie użyć danej ścieżki lub użytkownika (dla exec?)?
źródło
Aby to zrobić, musisz użyć funkcji po stronie serwera. Od faktora dostajesz fakty od klientów.
$ RUBYLIB / puppet / parser / functions / env.rb:
Użyj go w manifestach, takich jak:
źródło
Z tego, co mogę powiedzieć, Puppet działa bez żadnych zmiennych środowiskowych Bash. Wydaje się, że całe swoje środowisko otrzymuje od Facter. Jest tutaj skrypt do importowania twoich zwykłych envvarów jako envvars Facter.
źródło
W Puppet Enterprise 2.5.1 można uzyskać do niego dostęp za pośrednictwem / etc / env.
Sprawdź także, czy masz zdefiniowane prawidłowe środowisko
/etc/puppetlabs/puppet/puppet.conf
- powinno to wyglądać mniej więcej tak:źródło
Odpowiedź jest nieco rozczarowująca: nie możesz (chyba że ulepszysz Puppet lub Facter). Niedawno napisałem krótki post na blogu na ten temat: Dostęp do zmiennych środowiskowych w Puppet
Krótkie streszczenie: Facter działa na każdym systemie agentów Puppet. Po prostu ulepsz Facter, aby zebrał wszystkie zmienne środowiskowe, a następnie będziesz mógł uzyskać do nich dostęp w manifestach Lalek.
Mam nadzieję, że to pomaga!
źródło