为了理解 Puppet 中导出的资源遵循文档读完文档后,我了解到导出的资源包括声明和收集。
试图
根据文档和对 Puppet 中导出资源的理解,创建了以下代码:
class test {
@@file { "/tmp/$hostname": }
File <<| |>>
}
预期的
预期会创建文件 /tmp/vm-one
当前的
尚未创建文件
[vagrant@vm-one modules]$ sudo puppet agent -t
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Loading facts
Info: Caching catalog for vm-one.domain
Info: Applying configuration version '1421499164'
Notice: Finished catalog run in 0.10 seconds
答案1
为了使导出的资源正常运行,您需要设置 PuppetDB。没有 PuppetDB,它们将无法工作。此外,您通常需要运行两次 Puppet 才能应用资源。
幕后发生的事情是:
Puppet 代理向 master 请求目录
主编译目录(从 PuppetDB 获取导出的资源,并将新发现的导出资源存储回 PuppetDB)
主目录向代理发送
当然,在单个节点的清单中导出资源并不是很有用。其背后的想法是,各个节点可以报告它们的一些资源,这些资源稍后会被您希望应用这些资源的另一个节点收集。
举个例子:如果想将 Nagios 检查插入到您的每一项服务中,您不想在服务所在的节点上应用和收集这些检查,而是想在 Nagios 节点上收集它们全部。
希望这可以帮助。