Я установил 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
сами и установите те.
В моем случае это нормально, мы не очень часто добавляем модули.