我正在尝试在 Ruby 中为 Windows 上的 Puppet 编写一个事实。事实应该显示puppet.conf
文件中服务器参数的值。这是非常简单的代码,可以在 Linux 上完美运行。它也应该在文件路径更改的 Windows 上工作,但 facter 将其解析为 null。问题是facter没有打开文件,我完全不知道为什么。这是Linux的代码
Facter.add(:puppet_master) do
setcode do
puppet_master = ""
case Facter.value(:kernel)
when "Linux" || "linux"
conf_array = []
conf_array = File.open("/etc/puppetlabs/puppet/puppet.conf", "r").each_line.grep(/^server =/)
puppet_server_temp = conf_array.map! { |item| item.to_s}.join
arr = []
arr = puppet_server_temp.split(/=\s/)
puppet_master = arr[1]
puppet_master
end
end
end
在 Windows 上,除了内核值和文件路径外,它应该是相同的。有谁知道为什么facter不打开文件?
寡妇代码
Facter.add(:puppet_master) do
setcode do
puppet_master = ""
case Facter.value(:kernel)
when "windows" || "Windows"
conf_array = []
conf_array = File.open("C:/Documents and Settings/All Users/Application Data/PuppetLabs/puppet/etc/puppet.conf", "r").each_line.grep(/^server =/)
puppet_server_temp = conf_array.map! { |item| item.to_s}.join
arr = []
arr = puppet_server_temp.split(/=\s/)
puppet_master = arr[1]
puppet_master
end
end
end
如果它是重要信息,它在 Windows 2003 上。