Как автоматизировать установку модулей Puppet
Я работаю над развертыванием системы одним нажатием на машине с Ubuntu. Просто начал использовать Puppet для этого. Кажется, для того, чтобы я мог использовать внешние модули, я должен предварительно установить их, используя что-то вроде
puppet module install foo
Вопросы:
- Всегда ли мне нужно предварительно устанавливать модули, чтобы я мог их использовать?
- Как автоматизировать установку модулей Puppet?
Это отдельная марионеточная установка (поэтому не подчиненная). Я должен буду повторить это много раз для разных клиентов. Следовательно, было бы хорошо иметь одну кнопку, делающую всю работу за меня. На более позднем этапе есть место для настройки "ведущий-ведомый". Но он должен быть независимым для каждого клиента.
3 ответа
Отвечая на мой собственный вопрос.
Всегда ли мне нужно предварительно устанавливать модули, чтобы я мог их использовать?
Нет не знаю В единственном настроенном узле (без хозяина) модули могут быть помещены в --modulepath=/my-module-root
путь и марионетка подберут их. Моя проблема заключалась в том, что имя папки для модуля не соответствовало классу в init.pp
, Например
| модули | - gini_cassandra ++ ЗДЕСЬ ++ | ---- манифест | ------ init.pp
внутри init.pp
я имел
class cassandra ...
Однажды я переименовал gini_cassandra
в cassandra
все начало работать.
Как автоматизировать установку модулей Puppet?
Как мне не нужно install
модули в настройке без хозяина, мне не нужно автоматизировать это. Тем не менее, я нашел librarian-puppet
(благодаря этому ответу), чтобы быть действительно полезным. Мне не нужно для контроля версий внешних модулей. Библиотекарь доставит их мне как на моей машине, на целевой машине, на которой я запускаю установку, так и на сборочной машине.
Я работаю в мастер менее настройки.
Вам, вероятно, стоит взглянуть на библиотекаря- куколку. Вы пишете Puppetfile и опишите все свои модули:
- локальный каталог,
- удаленный мерзавец,
- кукольная кузница
и библиотекарь-кукольный вычислит каталог модулей для вас.
библиотекарь-кукольный
Затем вы можете загрузить его на целевой компьютер и запустить приложение Puppet. Это хорошо работает с Vagrant также.
config.vm.provision: puppet,: module_path => "modules"
Если вы используете мастер марионеток, то вам нужно только установить модули на мастер. Клиентским машинам они не понадобятся, так как мастер скомпилирует их конфигурацию для них.
Поэтому, если вы хотите использовать какой-либо модуль, все, что требуется, - это один раз установить 'puppet module install foo' на мастер.