как марионеточный сервер выбирает манифесты для запуска на агенте

308
dlsa

Из документации сервера марионеток я понимаю, что вы можете настроить каталог манифеста на сервере для хранения сценариев марионеток.

Затем каждый агент связывается с сервером для обновления его конфигурации. Как выбираются сценарии для запуска на сервере?

0

1 ответ на вопрос

1
Dominic Cleal

Кукольный манифестов (обычный термин, а не скрипты ), как правило, организованы в модуль на компонент операционной системы или службы (например apache, ntp, postgresql), с одним или несколькими классами, которые содержат все необходимое для его настройки.

Класс Puppet содержит все определения файлов, пакетов и ресурсов службы для компонента ОС. На самом простом это что-то вроде:

class apache { package { "httpd": ensure => installed, } -> service { "httpd": ensure => running, } } 

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

В простейшем случае вы можете иметь основной манифест ( doc ), содержащий списки узлов с их именами хостов и включающие в себя классы, которые вы хотите использовать на них:

node foo.example.com { include apache } 

Основной манифест компилируется автоматически, когда агент запрашивает свой каталог, и если определение узла соответствует имени агента, его содержимое также оценивается на предмет включения этих классов. Ведение большого количества определений узлов в коде не очень эффективно.

Вы также можете использовать Hiera и hiera_include для хранения списка классов во внешних файлах данных Hiera, в котором содержится основной манифест hiera_include('classes'). Это ищет значение classesот Hiera и затем включает в себя все эти классы.

Наконец, мастер может быть сконфигурирован с помощью внешнего классификатора узла (ENC), который обычно представляет собой сценарий, который вызывается при регистрации агента. Ему присваивается имя агента, и он должен выводить список классов (и, необязательно, параметры и окружающая среда ). Он может использовать базу данных или любую другую информацию, имеющуюся в вашей организации.