使用我以前的查詢中的函數(請參閱下面的參考資料),我可以從代理拉取文件並執行必要的任務。但是,這會影響系統上的所有用戶,因爲它會拋出一個異常,指出找不到該文件。無論如何,我可以添加一些邏輯像unless file_exists ....
這個紅寶石功能?木偶:如何從代理加載文件 - 第3部分
我的層次結構如下所示。我沒有關注爲什麼它會影響甚至不在「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
按照要求由多米尼克,將參考代碼:
# 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