Как компоненты марионеток взаимодействуют друг с другом?
Я использую Puppet с открытым исходным кодом.
Я обнаружил, что в Puppet 3.7.5 есть несколько компонентов:
- Кукольный-мастер
- Кукольный агент
- MCollective
- Hiera
- PuppetDB
Но я не знаю, как они сотрудничают друг с другом. Я видел простую архитектуру, которая включает в себя только puppet-master и puppet-agent.
Что касается других компонентов, я не знаю, как они взаимодействуют. Может ли кто-нибудь дать мне подробную информацию о том, как они сотрудничают или какой-либо график потока данных?
1 ответ
Полное раскрытие Я работаю в PuppetLabs!
Основная разбивка кусков:
- Кукольный агент
Агент Puppet на каждом узле отправляет факты о конфигурации узла - подробную информацию об оборудовании, операционной системе, версиях пакетов и другую информацию - в мастер Puppet. В основном это будет запускать Puppet запустить каждый n
минут (по умолчанию 30), затем сообщите об изменениях мастеру.
- Кукольный-мастер
Хозяин Puppet использует факты, предоставленные агентами, для компиляции подробных данных о том, как должен быть настроен каждый узел - так называемый каталог, - и отправляет их обратно агенту Puppet.
- MCollective
MCollective - это инструмент оркестровки для Puppet, в основном используемый для программного выполнения действий на кластерах серверов. Думайте Ткань, Capistrano и т. Д., Но намного более высокий уровень. Более подробно здесь
- Hiera
Hiera - это иерархическое хранилище ключей / значений для Puppet. Это позволяет включить разделение задач, сохраняя данные в Hiera и код в Puppet. Более подробно здесь
- PuppetDB
PuppetDB - это хранилище данных, которое кэширует данные, сгенерированные Puppet, и позволяет использовать эти данные с помощью API.
Вот схема того, как они все сочетаются друг с другом в выпуске Enterprise:
У OSS не будет консоли, но большая часть остального применима и к выпуску OSS. Узнайте больше здесь.
Для дальнейших вопросов, есть тонны документации, комнаты IRC и учебные материалы.