我们面临的情况是,最终用户Windows VM没有互联网连接,但只能访问文件存储。
我们在其中一个食谱中使用windows_zipfile
资源。因此,Windows cookbook中的cookbook执行失败,原因是它无法从“rubygems.org”站点下载rubyzip
。
我们正在考虑以这两种方式解决问题,
将windows_zipfile
代码替换为powershell_script
并使用Powershell命令实现代码
在调用rubyzip
资源之前,将windows_zipfile
gem及其依赖项加载到文件存储区并安装gem。
请提供处理该方案的建议。另请告诉我,还有其他方法可以解决这个问题。
答案 0 :(得分:1)
从网络内部下载后,您应该能够从本地路径安装chef_gem
(只需替换https://rubygems.org的网址):
{"httpclient" => "2.7.1", "rubyzip" => "1.1.7"}.each do |gem,version|
filename = "#{gem}-#{version}.gem"
remote_file File.join(Chef::Config[:file_cache_path], filename) do
source "https://rubygems.org/downloads/#{filename}"
end
chef_gem gem do
source File.join(Chef::Config[:file_cache_path], filename)
version version
end
end
由于Chef的ruby使用Gem,请务必使用chef_gem资源。