Очень часто управлять интерпретатором с помощью переменных окружения по разным причинам ... особенно если вы думаете о том, чтобы иногда запускать puppet в качестве интерпретатора (в строке #!?) Вместо демона ...
joeforker
Отличный ответ. Я потратил много времени, не замечая, что все переменные Facter имеют имена в нижнем регистре, даже если переменная среды имеет имя в верхнем регистре. Все обращают пристальное внимание на пример, который дает jnrg.
Рассел Сильва
1
есть неработающая ссылка
kenorb
7
Для этого вам нужно использовать функцию на стороне сервера, если вы хотите использовать среду puppetmaster. Так как Факер получает вам факты клиента.
$ RUBYLIB / кукольный / анализатор / функции / env.rb:
module Puppet::Parser::Functions
newfunction(:env) do |args|
variable = args[0]
ENV[variable]
end
end
Из того, что я могу сказать, Puppet работает без переменных окружения Bash. Кажется, чтобы получить всю свою среду от Facter. Существует скрипт здесь , чтобы импортировать ваши регулярные envvars в Facter envvars.
Ответ немного разочаровывает: вы не можете (если вы не улучшите Puppet или Facter). Недавно я написал небольшой пост в блоге на эту тему:
Доступ к переменным среды в Puppet
Краткое резюме: Facter работает в каждой системе агентов Puppet. Просто улучшите Facter, чтобы собрать все переменные среды, и тогда вы сможете получить к ним доступ в манифестах Puppet.
Ответы:
Я думаю, что нам нужно больше информации о том, чего вы пытаетесь достичь ... Facter по умолчанию предоставляет переменные среды FACTER_:
https://docs.puppetlabs.com/guides/faq.html#can-i-access-environment-variables-with-facter
Но для $ PATH или $ USER ... Почему бы не указать puppet явно использовать заданный путь или пользователя (для exec?) Явно?
источник
Для этого вам нужно использовать функцию на стороне сервера, если вы хотите использовать среду puppetmaster. Так как Факер получает вам факты клиента.
$ RUBYLIB / кукольный / анализатор / функции / env.rb:
Используйте это в своих манифестах, таких как:
источник
Из того, что я могу сказать, Puppet работает без переменных окружения Bash. Кажется, чтобы получить всю свою среду от Facter. Существует скрипт здесь , чтобы импортировать ваши регулярные envvars в Facter envvars.
источник
В Puppet enterprise 2.5.1 вы можете получить к нему доступ через / etc / env.
Также проверьте, правильно ли определена ваша среда
/etc/puppetlabs/puppet/puppet.conf
- она должна выглядеть примерно так:источник
Ответ немного разочаровывает: вы не можете (если вы не улучшите Puppet или Facter). Недавно я написал небольшой пост в блоге на эту тему: Доступ к переменным среды в Puppet
Краткое резюме: Facter работает в каждой системе агентов Puppet. Просто улучшите Facter, чтобы собрать все переменные среды, и тогда вы сможете получить к ним доступ в манифестах Puppet.
Надеюсь, это поможет!
источник