为 Vagrant 缓存下载
Caching downloads for Vagrant
我正在寻找为 Vagrant 环境缓存安装文件的方法,假设盒子是从 vagrant box add
正确填充的。这个想法是为了能够在初始下载步骤之后在离线环境中 test/develop box provisioning 或节省为相同节点副本下载相同工件的时间(例如,如果我想 运行 10 个相同的从站) .
我最初的想法是将必要的文件下载到 Vagrant 项目的共享文件夹中,并在配置期间使用这些文件(这样我就不需要为每个盒子重复 curl
/wget
) .
我写了:
$share = "share"
Dir.mkdir($share) unless Dir.exist?($share)
# https://pkg.jenkins.io/debian/
$jenkins_deb_url = "https://pkg.jenkins.io/debian/binary/jenkins_2.86_all.deb"
$jenkins_deb_file = $share+"/jenkins.deb"
if ! File.exist?($jenkins_deb_file)
require 'open-uri'
download = open($jenkins_deb_url)
IO.copy_stream(download, $jenkins_deb_file)
end
它并不完美。我无法可靠地自动下载 apt-get install
依赖项(这是满足 Jenkins 的依赖项所必需的)以使其完全脱机。
我正在寻找为 Vagrant 环境缓存安装文件的方法,假设盒子是从 vagrant box add
正确填充的。这个想法是为了能够在初始下载步骤之后在离线环境中 test/develop box provisioning 或节省为相同节点副本下载相同工件的时间(例如,如果我想 运行 10 个相同的从站) .
我最初的想法是将必要的文件下载到 Vagrant 项目的共享文件夹中,并在配置期间使用这些文件(这样我就不需要为每个盒子重复 curl
/wget
) .
我写了:
$share = "share"
Dir.mkdir($share) unless Dir.exist?($share)
# https://pkg.jenkins.io/debian/
$jenkins_deb_url = "https://pkg.jenkins.io/debian/binary/jenkins_2.86_all.deb"
$jenkins_deb_file = $share+"/jenkins.deb"
if ! File.exist?($jenkins_deb_file)
require 'open-uri'
download = open($jenkins_deb_url)
IO.copy_stream(download, $jenkins_deb_file)
end
它并不完美。我无法可靠地自动下载 apt-get install
依赖项(这是满足 Jenkins 的依赖项所必需的)以使其完全脱机。