了解 Puppet 中的导出资源

了解 Puppet 中的导出资源

为了理解 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 节点上收集它们全部。

希望这可以帮助。

相关内容