我必須有相同的虛擬機中的其它電腦,但我不想下載整個盒子,PHP MySQL等顛沛流離中...有什麼辦法來克隆已安裝
我有一個盒子已經配置好了,我想在其他電腦上運行這個虛擬機。
當用戶運行「vagrant up」時,機器應該啓動而不會下載任何內容。
有沒有人有解決方案?
我必須有相同的虛擬機中的其它電腦,但我不想下載整個盒子,PHP MySQL等顛沛流離中...有什麼辦法來克隆已安裝
我有一個盒子已經配置好了,我想在其他電腦上運行這個虛擬機。
當用戶運行「vagrant up」時,機器應該啓動而不會下載任何內容。
有沒有人有解決方案?
最簡單的事情就是package the pre-configured vagrant box並將.box文件傳輸到另一臺機器上,然後添加該框並運行vagrant up
。
所以步驟類似於下面:
vagrant package --base preconfigured_vm --output /path/to/mybox.box
。 注意根據文檔,--base
選項應該是機器的UUID或名稱VirtualBox給機器(在打開VirtualBox應用程序時找到)。scp
,rsync
或任何...盒子傳輸到計算機python -m http.server PORT
或ruby -run -e httpd /path/to -p PORT
啓動Web服務器),並開始vagrant init preconfigured_vm /path/to/mybox.box
要將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。「 –
如果您使用的是VirtualBox,您還可以從命令「VBoxManage list vms」獲取UUID /名稱。 –
此外,要添加該框,您可以運行命令'vagrant box add --name =「boxname」mybox.box',其中name是您的流浪文件的config.vm.box屬性和mybox的值.box'是從Terry的答案中的第1步創建的框。 –
您只需一次下載VM盒並完成所需的全部更改和配置,然後將其重新打包到名爲「myVM.box」的新盒子中。
然後你在Vagrantfile以下行
#config.vm.box_url = "https://site_of_boxes..."
發表評論,並使用
config.vm.box = "myVM"
它啓動時沒有任何下載VM。
我寫了一些腳本來自動轉移流浪箱。請參閱[soniah/transfer_vagrant_boxes](https://github.com/soniah/transfer_vagrant_boxes) –