Как и многие (я надеюсь), я готовлюсь к Puppet 4, разделяя свои манифесты на окружения. Я намереваюсь иметь 3 отдельных среды: qa, staging, prod. Первоначально при настройке манифестов я установил пользовательский факт для окружения, чтобы он указывал на конкретное окружение (т.е. создал /etc/facter/facts.d/environment, который установил для окружения значение prod).
Когда я запускаю тест с использованием одного манифеста, который распечатывает переменную среды $, он дает мне значение из моего настраиваемого факта, но когда агент разговаривает с Puppet Master, он по-прежнему использует среду по умолчанию «production».
Есть идеи, почему это происходит? Разве фактер нельзя использовать в качестве ENC?
В $environment
переменная технически не является фактом - она устанавливается агентом из своего puppet.conf
, а не факт. Вам нужно будет отредактировать его в агентском puppet.conf
вместо того facts.d
.
ENC может устанавливать среду узла (переопределяя то, что агент выбирает как свою собственную среду), но мастер должен быть тем, кто переопределяет ее, а не агент.