木偶模块使用

Puppet module use

好的,我已经使用 Puppet 大约 2 年了。 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

并向其中添加了 class,但我得到

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

所以我有点难过。 有好心人能给我指出正确的方向吗?

粉丝 :)

所以默认情况下,puppet module 命令会将模块下载到本地目录。

假设您的 master 运行 正确,您需要将模块安装到您的 $modulepath,您可以通过以下操作在 master 上找到您的 $modulepath

puppet config print modulepath

这取决于你的 Puppet 版本(我是 运行 v4,所以如果你使用的是 v3,它可能会略有不同),return 会是这样的吗:

/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”。 =27=]

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

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

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

  • r10k可以自动为您下载模块
  • a control repo 是一种布局人偶存储库的建议方式
  • ENC 是一种比使用 site.pp
  • 更好的节点分类方法

祝你好运!