Chef remote_file 将重定向的最大数量设置为零
Chef remote_file set maximum number of re-directions to zero
我一直在尝试使用 chef remote_file 资源实现以下 wget 下载命令。但是我找不到避免重定向的方法。
wget -N --max-redirect=0 http://www.someurl.com/file.zip
wget 中的 --max-redirect=0 标志确保没有任何重定向。
下载 url 有时会重定向到 ISP 账单提醒页面。主厨 remote_file 资源将此账单提醒 html 页面下载为 zip 文件。
我可以通过将命令包装在其中来将命令添加到执行资源。或者使用 ruby-block 和 open-uri/net-http.
来实现这个
command "wget -N --max-redirect=0 http://www.someurl.com/file.zip"
但是是否有类似 Chef 的实现来将重定向设置为零或假?
我的厨师食谱资源块是
remote_file "#{node['download-zip-path']}/#{zip}" do
source "http://www.someurl.com/#{zip}"
action :create
notifies :run, 'execute[unzip_file]', :delayed
end
发现 remote_file 资源无法处理重定向。因此,我不得不编写一个 ruby_block 资源来利用 'Down' gem.
ruby_block 'download_openvpn_zip' do
block do
attempt = 2
begin
retries ||= 0
tempfile = Down::NetHttp.download("http://www.someurl.com/#{zip},max_redirects: 0)
FileUtils.mv tempfile.path, "#{node['openvpn-conf-path']}/#{tempfile.original_filename}"
rescue Down::TooManyRedirects => e
puts "\n \t ERROR: #{e.message}"
retry if (retries += 1) < 1
end
end
action :run
notifies :run, 'execute[unzip_file]', :delayed
end
我一直在尝试使用 chef remote_file 资源实现以下 wget 下载命令。但是我找不到避免重定向的方法。
wget -N --max-redirect=0 http://www.someurl.com/file.zip
wget 中的 --max-redirect=0 标志确保没有任何重定向。
下载 url 有时会重定向到 ISP 账单提醒页面。主厨 remote_file 资源将此账单提醒 html 页面下载为 zip 文件。
我可以通过将命令包装在其中来将命令添加到执行资源。或者使用 ruby-block 和 open-uri/net-http.
来实现这个command "wget -N --max-redirect=0 http://www.someurl.com/file.zip"
但是是否有类似 Chef 的实现来将重定向设置为零或假?
我的厨师食谱资源块是
remote_file "#{node['download-zip-path']}/#{zip}" do
source "http://www.someurl.com/#{zip}"
action :create
notifies :run, 'execute[unzip_file]', :delayed
end
发现 remote_file 资源无法处理重定向。因此,我不得不编写一个 ruby_block 资源来利用 'Down' gem.
ruby_block 'download_openvpn_zip' do
block do
attempt = 2
begin
retries ||= 0
tempfile = Down::NetHttp.download("http://www.someurl.com/#{zip},max_redirects: 0)
FileUtils.mv tempfile.path, "#{node['openvpn-conf-path']}/#{tempfile.original_filename}"
rescue Down::TooManyRedirects => e
puts "\n \t ERROR: #{e.message}"
retry if (retries += 1) < 1
end
end
action :run
notifies :run, 'execute[unzip_file]', :delayed
end