Відповіді:
Я думаю, нам потрібна додаткова інформація про те, що ви намагаєтеся досягти ... Facter демонструє змінні середовища FACTER_ за замовчуванням:
https://docs.puppetlabs.com/guides/faq.html#can-i-access-environment-variables-with-facter
$ FACTER_FOO="bar"
$ export FACTER_FOO
$ facter | grep 'foo'
foo => bar
Але для $ PATH або $ USER ... Чому б не сказати ляльці явно використовувати певний шлях або користувача (для exec?)?
Для цього вам потрібно буде використовувати функцію сервера, якщо ви хочете оточення лялькового майстра. Оскільки фактор отримує факти клієнта.
$ RUBYLIB / ляльковий / аналізатор / функції / env.rb:
module Puppet::Parser::Functions
newfunction(:env) do |args|
variable = args[0]
ENV[variable]
end
end
Використовуйте його у своїх маніфестах, таких як:
$blah = env("PATH")
У ляльковому підприємстві 2.5.1 ви можете отримати доступ до нього через / etc / env.
Також перевірте, чи у вас визначено правильне середовище /etc/puppetlabs/puppet/puppet.conf
- воно має виглядати приблизно так:
[production]
modulepath = /etc/puppetlabs/puppet/environments/production/modules:/opt/puppet/share/puppet/modules
manifest = /etc/puppetlabs/puppet/environments/production/manifests/site.pp
Відповідь трохи невтішна: Ви не можете (якщо не вдосконалити Лялечку чи Фактор). Нещодавно я написав короткий пост у щоденнику на цю тему: Доступ до змінних оточуючих середовищ у Ляльковій
Короткий підсумок: Facter працює у кожній системі лялькових агентів. Просто вдосконаліть Facter, щоб зібрати всі змінні середовища, і тоді ви можете отримати доступ до них у маніфестаціях ляльок.
Сподіваюся, що це допомагає!