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 上にあります。