我有一个在 VirtualBox 上运行的 vagrant box,我需要制作一个副本(包含其所有现有配置和数据),以便我可以对其进行更改而不影响原始版本。
问题是,我的原始盒子是作为文件包提供的 - 我使用的互联网连接非常慢,所以其他人将他们的 vagrant 和 virtualbox 文件夹复制到我的机器上。因此没有
config.vm.box_url
使用。
我怎样才能做到这一点?
编辑:我正在使用 Vagrant 1.2.2
答案1
从现有虚拟机创建一个新框:
cd 进入包含 Vagrant 文件的目录
运行
vagrant package
这将默认导出一个名为 package.box 的盒子文件运行
vagrant box add foo package.box
以将 package.box 添加到您现有的框中。(假设您使用的是 VirtualBox 而不是 VMWare)运行
vagrant box list
以验证它是否已被添加。
现在您可以创建一个新文件夹,vagrant init
正常运行并将您的框设置为以下内容:
config.vm.box = "foo"
新的虚拟机将使用之前虚拟机中存在的精确数据启动。
另外,请查看 Vagrant 创建者推出的新产品,名为打包机。它将执行相同的操作,但允许您将虚拟机复制到其他提供商(Amazon、VirtualBox 等)。
更新
Vagrant 的新版本有两个命令,使得上述步骤不再必要。
vagrant share
vagrant package
Vagrant share
将会上传您的盒子到阿特拉斯
Vagrant package
将自动创建一个.box 文件。
如需更多信息,请输入vagrant --help