我正在寻找为Vagrant环境缓存安装文件的方法,假设盒子是从vagrant box add
正确填充的。这个想法是能够在初始下载步骤之后在离线环境中测试/开发盒子配置,或者节省为相同节点副本下载相同工件的时间(例如,如果我想运行 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 依赖项所必需的)以使其完全脱机。