以下自定义事实:
# 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
自从升级到 Puppet 4 以来 - Puppet4 似乎使用嵌入式 ruby 版本,而不是安装在主机上的版本(Puppet3):
Puppet 4,Facter 2.4 和 CFacter 0.4,最新的 Hiera 和 Mcollective,以及 Ruby 2.1.5、OpenSSL 1.0.0r 和我们的 gem 依赖项。
- Ruby 2.1.5 中不
rb_sysopen
存在?没有找到任何证据。 - 也许发生了与事实相关的变化,可能导致问题?在发行说明中没有发现任何相关内容。
问题
为什么rb_sysopen
升级到 Puppet4 后,自定义事实再也找不到了?