2013-09-30 36 views
43

我必須有相同的虛擬機中的其它電腦,但我不想下載整個盒子,PHP MySQL等顛沛流離中...有什麼辦法來克隆已安裝

我有一個盒子已經配置好了,我想在其他電腦上運行這個虛擬機。

當用戶運行「vagrant up」時,機器應該啓動而不會下載任何內容。

有沒有人有解決方案?

+0

我寫了一些腳本來自動轉移流浪箱。請參閱[soniah/transfer_vagrant_boxes](https://github.com/soniah/transfer_vagrant_boxes) –

回答

83

最簡單的事情就是package the pre-configured vagrant box並將.box文件傳輸到另一臺機器上,然後添加該框並運行vagrant up

所以步驟類似於下面:

  1. Package中的預先配置的框=>vagrant package --base preconfigured_vm --output /path/to/mybox.box注意根據文檔,--base選項應該是機器的UUID或名稱VirtualBox給機器(在打開VirtualBox應用程序時找到)。
  2. 使用scprsync或任何...盒子傳輸到計算機
  3. 初始化(你也趕緊用python -m http.server PORTruby -run -e httpd /path/to -p PORT啓動Web服務器),並開始vagrant init preconfigured_vm /path/to/mybox.box
  4. 完成
+6

要將preconfigured_vm的UUID傳遞給Vagrant 1.1+中的--base參數,我遵循[tip](http:// stackoverflow.com/questions/9434313/how-do-i-associate-a-vagrant-project-directory-with-an-existing-virtualbox-vm#comment23660947_9437813):「對於Vagrant 1.1,UUID存儲在機器中,特定於.vagrant/machines/{name}/{provider}/id的文件。實際上,該文件包含的唯一內容是UUID。「 –

+3

如果您使用的是VirtualBox,您還可以從命令「VBoxManage list vms」獲取UUID /名稱。 –

+2

此外,要添加該框,您可以運行命令'vagrant box add --name =「boxname」mybox.box',其中name是您的流浪文件的config.vm.box屬性和mybox的值.box'是從Terry的答案中的第1步創建的框。 –

3

您只需一次下載VM盒並完成所需的全部更改和配置,然後將其重新打包到名爲「myVM.box」的新盒子中。

然後你在Vagrantfile以下行

#config.vm.box_url = "https://site_of_boxes..." 

發表評論,並使用

config.vm.box = "myVM" 

它啓動時沒有任何下載VM。

相關問題