windows_zipfile由于'rubyzip'gem文件下载导致Chef资源失败

时间:2016-02-08 12:40:46

标签: ruby chef chef-recipe cookbook

我们面临的情况是,最终用户Windows VM没有互联网连接,但只能访问文件存储。

我们在其中一个食谱中使用windows_zipfile资源。因此,Windows cookbook中的cookbook执行失败,原因是它无法从“rubygems.org”站点下载rubyzip

我们正在考虑以这两种方式解决问题,

  1. windows_zipfile代码替换为powershell_script并使用Powershell命令实现代码

  2. 在调用rubyzip资源之前,将windows_zipfile gem及其依赖项加载到文件存储区并安装gem。

  3. 请提供处理该方案的建议。另请告诉我,还有其他方法可以解决这个问题。

1 个答案:

答案 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资源。