0

RubyでWindows上のPuppetの事実を書こうとしています。ファクトには、ファイルからのサーバー パラメータの値が表示されpuppet.confます。これは非常に単純なコードであり、Linux 上で完全に機能します。ファイルのパスが変更された Windows でも動作するはずですが、factorer はそれを 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 では、カーネル値とファイル パスを除いて同じである必要があります。factorer がファイルを開かない理由を知っている人はいますか?

Widnows のコード

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