Могу ли я опустить site.pp для выполнения одного класса на всех узлах - PullRequest
0 голосов
/ 21 июня 2020

У меня есть марионеточный сервер и три узла. Я создал основной файл createuser.pp с классом createuser. Кроме того, я создал site.pp со следующим содержимым: node 'app01', 'app02,' app03 '{include createuser} Теперь выполняется с каждого сервера приложений: puppet agent -tv создаст пользователя. Все нормально работает. Мой вопрос: могу ли я сделать то же самое без определения манифеста site.pp? Конечно, я могу добавить include createuser в конец определения класса в файле createuser.pp, но как я могу запустить его со всех трех хостов приложений? Мне нужно создать тег? Спасибо за любые советы.

1 Ответ

0 голосов
/ 21 июня 2020

могу ли я сделать то же самое без определения манифеста site.pp?

В любой версии Puppet, которая все еще поддерживается, вы можете сделать это без файла с именем site.pp, но не без « манифест сайта » в более общем смысле. Это может быть один файл с настраиваемым именем (по умолчанию site.pp) или совокупное содержимое всех файлов в указанном каталоге. В любом случае манифест сайта является отправной точкой для создания каталога. К другим манифестам обращаются только по мере необходимости.

Конечно, я могу добавить include createuser в конец определения класса в файле createuser.pp код области видимости может присутствовать только в манифесте сайта (хотя некоторые версии Histori c были менее строгими). Ваш класс должен находиться в модуле, а не в манифесте сайта, и в этом случае нет, вы не можете использовать оператор include в том же файле с определением класса. Вам нужно объявление класса либо в манифесте сайта, либо в каком-либо другом классе, прямо или косвенно объявленном манифестом сайта.

но как я могу запустить его со всех трех хостов приложений? Нужно ли мне создавать тег?

На стороне агента теги полезны только для ограничения , какие классы и ресурсы применяются. Доступны только те, которые уже находятся в его каталоге - вы не можете использовать теги с этого конца для применения классов или ресурсов, которые обычно не применялись бы.

Вы гарантируете, что класс находится в каталоге узла, объявив его в манифест сайта (как вы делаете сейчас) или в другом классе, прямо или косвенно объявленном в манифесте сайта.

...