是的,我一直在使用Puppet。 4个小时所以总共有n000b的问题。 我已经使用以下方式下载并安装了一个木偶模块:
puppet module install resolv_conf
一切都很好。它已将模块安装到:
/home/user/.puppet/modules/
,
再次一切顺利。
当我运行puppet module list
时,模块显示出来,我猜它应该是。
所以我的问题是如何使用该模块?
我得到了我需要添加到清单的地方,
class { 'resolv_conf':
nameservers => ['192.168.0.254', '8.8.8.8'],
}
但我假设我没有在
中添加它 /home/user/.puppet/modules/resolv_conf/manifests/init.pp
档案。
我尝试在这里创建一个文件夹和init.pp文件
/etc/puppet/modules/resolv_conf/manifests
并将课程添加到其中,但我得到了
Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Puppet::Parser::AST::Resource failed with error ArgumentError: Could not find declared class resolv_conf at /etc/puppet/modules/resolv_conf/manifests/init.pp:4 on node rarity.home
所以我有点难过。 某种善意的灵魂能指出我正确的方向吗?
Fanks:)
答案 0 :(得分:3)
因此,默认情况下,puppet module
命令会将模块下载到本地目录中。
假设您的主人运行正常,您需要将模块安装到$modulepath
,您可以通过以下方式在主人身上找到$modulepath
:
puppet config print modulepath
这取决于你的Puppet版本(我正在运行v4,所以如果你在v3上它可能会略有不同),将返回这样的内容:
/etc/puppetlabs/code/environments/production/vendor:/etc/puppetlabs/code/environments/production/modules:/etc/puppetlabs/code/modules:/opt/puppetlabs/puppet/modules
使用Puppet Module命令将模块安装到其中一个目录中,如下所示:
puppet module install -i /etc/puppetlabs/code/modules
现在,您的主人将理解并能够阅读resolv_conf
模块,但您需要将应用于您的节点。为此,您需要设置node definitions
因此,在您$modulepaths
的某个内容中,您需要有一个包含单个清单的目录manifests
,site.pp
称为“main manifest”
在那里,为代理创建一个类似于示例中的节点定义:
node 'www1.example.com' {
include resolv_conf
}
这是您可以拥有的最简单的设置。进一步阅读:
site.pp