使用我之前查询中的函数(参见下面的参考资料),我可以从代理程序中提取文件并执行必要的任务。但是,这会影响系统上的所有用户,因为它会抛出一个异常,指出找不到该文件。无论如何我可以为这个ruby函数添加一些像unless file_exists ....
这样的逻辑吗?
我的层次结构如下所示。我没有注意为什么它会影响甚至不在“mymodules”中的其他用户。
Root modules mymodules lib facter ruby_function1.rb ruby_function2.rb modules_by_userxx1 modules_by_userxx2 modules_by_userxx3 ....
参考:
Puppet : How to load file from agent
Puppet : How to load file from agent - Part 2
根据Dominic的要求,添加参考代码:
# module_name/lib/facter/master_hash.rb
require 'json'
Facter.add(:master_hash) do
setcode do
# return content of foo as a string
f = File.read('/path/to/some_file.json')
master_hash = JSON.parse(f)
master_hash
end
end