Назад | Перейти на главную страницу

Как установить марионеточный модуль с GitHub?

Я установил Camptocamp / nagios из Puppet Forge, но, похоже, у него есть зависимости от марионетка-apache_c2c который опубликован на GitHub.

Я установил модуль nagios, как было предложено:

puppet module install camptocamp-nagios

Однако как мне установить недостающие зависимости?

Я видел некоторые Билет JIRA который предоставит такую ​​возможность, однако, похоже, он еще не реализован (статус: готов к разработке). Итак, есть ли на данный момент обходной путь? Какой правильный подход к установке модулей, не относящихся к марионеточной кузнице?

С помощью библиотекарь-марионетка:

gem install librarian-puppet

Проверьте modulepath на Мастере Марионеток:

puppet config print modulepath --section master

Что даст вам, например, /etc/puppet/environments/production/modules.

Затем создайте Puppetfile на один уровень выше пути modulepath. т.е. /etc/puppet/environments/production/Puppetfile:

forge 'https://forgeapi.puppetlabs.com'

mod 'camptocamp-nagios', :git => 'https://github.com/camptocamp/puppet-nagios.git'

И беги librarian-puppet install из папки где находится Puppetfile расположен.

В .librarian/puppet/config вы можете указать собственный путь для установки модулей (относительный от Puppetfile):

LIBRARIAN_PUPPET_PATH: environments/production/modules

Я лично не использую r10k или что-нибудь в этом роде.
В конце концов, марионеточный модуль - это просто каталог в папке модулей.
Если вы используете git для управления своими модулями, вы можете добавить его как подмодуль, как это:

cd modules
git submodule add https://github.com/camptocamp/puppet-apache_c2c.git apache_c2c

Конечно, это не разрешает зависимости.
Вам нужно будет проверить metadata.json сами и установите те.
В моем случае это нормально, мы не очень часто добавляем модули.