Puppet:如何从代理加载文件
Puppet : How to load file from agent
我已经编写了一个执行多项任务的清单。第一个任务是将文件的内容加载到变量中。该文件将存在于目标节点(或托管节点或 Puppet 代理 运行 上)。
但是,当我通过 puppet 运行 触发清单时,我意识到它期望在 master 而不是 agent 上找到文件!
$some_var = file("path_to_file")
如何解决此问题以便它从代理加载文件?
确实函数只在master上执行。因此,您需要外部或自定义事实才能在节点上执行此操作。这是一个自定义事实,可用于返回文件内容 foo
:
# module_name/lib/facter/foo_content.rb
Facter.add(:foo_content) do
setcode do
# return content of foo as a string
File.read('/path/to/foo')
end
end
你可以这样使用:
# facter 3
$some_var = $facts['foo_content']
# facter 2
$some_var = $::foo_content
请注意,此解决方案假定 foo
不是某个非常大的文件。
我已经编写了一个执行多项任务的清单。第一个任务是将文件的内容加载到变量中。该文件将存在于目标节点(或托管节点或 Puppet 代理 运行 上)。
但是,当我通过 puppet 运行 触发清单时,我意识到它期望在 master 而不是 agent 上找到文件!
$some_var = file("path_to_file")
如何解决此问题以便它从代理加载文件?
确实函数只在master上执行。因此,您需要外部或自定义事实才能在节点上执行此操作。这是一个自定义事实,可用于返回文件内容 foo
:
# module_name/lib/facter/foo_content.rb
Facter.add(:foo_content) do
setcode do
# return content of foo as a string
File.read('/path/to/foo')
end
end
你可以这样使用:
# facter 3
$some_var = $facts['foo_content']
# facter 2
$some_var = $::foo_content
请注意,此解决方案假定 foo
不是某个非常大的文件。