0

我正在尝试在 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 上。

4

0 回答 0