以下custom fact:
# returns latest packerversion, e.g. 0.10.1
Facter.add("latest_packerversion") do
setcode do
url="https://www.packer.io/downloads.html"
file = open("#{url}")
contents = file.read()
match = contents.match(/Latest\sversion:\s(.*)</)
match[1]
end
end
使用puppet 3.6.2
工作,但自4.5.2
升级到Error: Facter: error while resolving custom fact "latest_packerversion":
No such file or directory @ rb_sysopen - https://www.packer.io/downloads.html
后发生:
rb_sysopen
分析
No such file or directory @ rb_sysopen
)无法找到rb_sysopen
。rb_sysopen
吗?没有找到证据。问题
自升级到Puppet4以来,为什么自定义事实不再能找到ref
?
答案 0 :(得分:0)
<强>简明强>
我将在这两个事实中加入require 'open-uri'
,但我不明白为什么在升级到Puppet4后需要这样做
<强>冗长强>
一旦require 'open-uri'
包含在其中一个自定义事实中,问题就解决了。
# returns latest gitversion, e.g. 2.8.2
Facter.add("latest_gitversion") do
setcode do
require 'open-uri'
url="https://git-scm.com/downloads"
file = open("#{url}")
contents = file.read()
match = contents.match(/RelNotes.*((\d\.){2}\d)/)
match[1]
end
end
一旦require 'open-uri'
被注释掉,问题就会再次出现:
Error: Facter: error while resolving custom fact "latest_gitversion": No such file or directory @ rb_sysopen - https://git-scm.com/downloads
Error: Facter: error while resolving custom fact "latest_packerversion": No such file or directory @ rb_sysopen - https://www.packer.io/downloads.html
目前还不清楚导致问题的原因。