нельзя использовать другую среду для кукольного агента

У меня есть настройка агента/мастера. Я создал новую среду в /etc/puppetlabs/code/environments/ под названием master.

Содержимое environment.conf для среды каталога master:

modulepath = site:modules:$basemodulepath
manifest = manifests/site.pp

и когда я пытаюсь puppet agent -t --environment master, я получаю какую-то ошибку

Notice: Local environment: 'master' doesn't match server specified node environment 'production', switching agent to 'production'.
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Loading facts
Info: Caching catalog for node1.localpuppet.com
Info: Applying configuration version '1490712072'
Notice: Applied catalog in 0.67 seconds

Я новичок в кукольном деле. Какие изменения мне нужны?

Конфигурация консоли PE


person Amit Auddy    schedule 28.03.2017    source источник


Ответы (1)


Это «действительно забавная» особенность Puppet Enterprise, появившаяся за последние пару лет. Вы должны указать узлы в PE Classifier, которым разрешено указывать свою среду каталогов в аргументах puppet.conf или puppet agent -t --environment.

На вкладке среды, указанной агентом, в классификаторе (вы видите ее внизу изображения выше) вы можете включить ее для всех узлов. Сделайте это, добавив правило, выбрав факт name, используя регулярное выражение (~), а затем используя регулярное выражение для сопоставления всех символов (.*). После того, как вы это заполните, классификатор PE предоставит вам несколько соответствующих узлов. Это должно быть все, что подписано на вашего мастера. Не забудьте нажать в правом нижнем углу, чтобы обновить правила. Теперь ваши узлы смогут использовать master вместо production из файла конфигурации или аргументов CLI.

При этом, если вы делаете это, чтобы не называть свою ветку Git по умолчанию production в своем репозитории управления при работе с Code Manager, вам действительно следует просто переименовать ветку, так как это намного проще.

person Matt Schuchard    schedule 28.03.2017
comment
В качестве альтернативы можно указать желаемую среду на ведущем устройстве вместо того, чтобы позволять агентам назначать свои собственные имена. Я не уверен, как именно это делается в PE, но я полагаю, что где-то в графическом интерфейсе есть возможность для этого. - person John Bollinger; 28.03.2017
comment
Спасибо @MattSchuchard. Это сработало после того, как я добавил факт name ~ .* на вкладке «Производственная среда». - person Amit Auddy; 28.03.2017
comment
Я использую Puppet с открытым исходным кодом. Не могли бы вы указать, как это сделать без классификатора PE? - person Alex; 18.06.2017