vagrant包如何保存对新框的更改

时间:2014-05-08 13:55:38

标签: virtual-machine virtualbox vagrant

我的问题与this here有关,但我没有让它发挥作用。

我使用来自vagrantbox.es(http://goo.gl/KwQSa2)的预先制作的流浪盒,我想进行一些更改并将新虚拟机重新打包成新的流浪盒文件。

要获取初始框,我将config.vm.box_url = "http://goo.gl/KwQSa2"添加到我的流浪文件中。

在调用vagrant up后,我执行了vagrant ssh,然后执行了一些操作(例如touch testfile.txt)。

退出后,我使用vagrant package创建package.box

然后我vagrant destroy,在我的流浪文件中添加package.boxconfig.vm.box_url的路径,然后再次vagrant up

当我登录VM时,我的testfile.txt不存在,所以看起来我打包了未更改的框。

我尝试了vagrant box repackage之类的其他内容但没有成功。

我在这里缺少什么?

1 个答案:

答案 0 :(得分:21)

打包时,必须根据基本框指定创建的新VM的UUID(vagrant up)。

  

注意:如果您使用的是VirtualBox,它将创建一个名为base_box_name-default-UUID的新VM。

运行时

vagrant package --base name --output /path/to/name.box

--base NAME,名称应该是新VM的名称或其UUID。

您可以使用以下命令获取它:

$ VBoxManage list vms
"oracle65" {5f9e6136-7773-4cd5-99a1-3a66b5e48045}
"Ubuntu" {e8c5a28c-788d-4d57-8c4a-c1f032a02443}
"oracle510" {fed5f379-495e-4b4b-b4e2-24f98edd2e72}
"archlinux" {c79dcee9-a523-4300-b026-cbc93ad37062}
"Windows" {fa768a76-5710-4b07-a4df-cc388370f038}
"Wiki" {a50ce314-6af8-4633-b02e-82b765cbf401}
"openSUSE" {af3cdf13-7e00-4c24-ae52-423919359b18}
"Debian" {37680776-73b9-44fd-8348-f60fd3895624}
"Solaris" {bc7be4ab-293d-4c94-b591-b5445a954f6c}
"centos_default_1395637517620_29337" {03d1282a-c7ba-493b-91ad-ec26ed763b6c}
"Kubuntu" {787ce012-00ef-4f90-acda-1b65c6d9941b}