Puppet模块使用

时间:2016-11-27 16:51:22

标签: puppet

是的,我一直在使用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:)

1 个答案:

答案 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的某个内容中,您需要有一个包含单个清单的目录manifestssite.pp称为“main manifest

在那里,为代理创建一个类似于示例中的节点定义:

node 'www1.example.com' {
  include resolv_conf
}

这是您可以拥有的最简单的设置。进一步阅读:

  • r10k可以自动为您下载模块
  • a control repo是建议制作木偶回购的方法
  • ENC是比使用site.pp
  • 更好的分类节点的方法
祝你好运!