木偶模块使用
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
更好的节点分类方法
祝你好运!
好的,我已经使用 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
更好的节点分类方法
祝你好运!