我已经安装了camptocamp/nagios来自 Puppet Forge,但似乎它依赖于puppet-apache_c2c该版本已发布在 GitHub 上。
我已经按照建议安装了 nagios 模块:
puppet module install camptocamp-nagios
但是我该如何安装缺少的依赖项?
我见过一些JIRA 票证这将提供该功能,但似乎尚未实现(状态:准备进行工程设计)。那么现在有什么解决方法吗?安装非 puppet-forge 模块的正确方法是什么?
答案1
我个人不使用r10k
或类似的东西。
归根结底,puppet 模块只是模块文件夹中的一个目录。
如果您使用 git 来管理模块,您可以将其添加为子模块, 像这样:
cd modules
git submodule add https://github.com/camptocamp/puppet-apache_c2c.git apache_c2c
当然,这不会解决任何依赖关系。
您必须metadata.json
自己检查并安装它们。
这对我来说没问题,因为我们不经常添加模块。
答案2
使用图书管理员傀儡:
gem install librarian-puppet
检查modulepath
Puppet Master:
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