Vagrant (3) —— 復制/備份Vagrant Box
摘要
介紹復制/備份Vagrant Box基本方法
版本
Vagrant版本: 1.8.1
內容
復制vagrant box並壓縮
關閉正在運行的Vagrant
vagrant halt
在相同路徑下,創建一個 package.box 文件
vagrant package
這樣就完成了。
如果要指定vm或者輸出名稱等內容請查看
vagrant package -h
⇒ vagrant package -h
Usage: vagrant package [options] [name]
Options:
--base NAME Name of a VM in virtualbox to package as a base box
--output NAME Name of the file to output
--include FILE... Additional files to package with the box
--vagrantfile FILE Vagrantfile to package with the box
-h, --help Print this help
package.box 這個文件是當前vagrant vm的全鏡像,且經過壓縮。
創建一個新的vm(快速方法)
為新的vagrant創建一個目錄,然后初始化一個新的Vagrantfile
vagrant init
打開文件Vagrantfile,編輯文件,將當前默認的box名字改為新的box名稱,比如“my-backup-test-box”
config.vm.box = "my-backup-test-box"
啟用注釋掉的關於box位置的配置
# config.vm.box_url = "http://domain.com/path/to/above.box"
以上的路徑為box的文件路徑,windows用戶需要配置成
config.vm.box_url = "file:///d:/folder/package.box"
將默認的IP配置修改,推薦用本機的ip地址,最后+1
config.vm.network :private_network, ip: "192.168.33.101"
重新運行Vagrant
vagrant up
創建新的vm(完整方法)
如果希望將box加入到vagrant box列表中,通過名稱而非文件路徑來使用,可以這樣:
vagrant package
將box加入到Virtualbox(選擇名字name-of-this-box)
vagrant box add --name name-of-this-box package.box virtualbox
注意以上命令行參數--name
⇒ vagrant box add --name name-of-this-box package.box
==> box: Box file was not detected as metadata. Adding it directly...
==> box: Adding box 'name-of-this-box' (v0) for provider:
box: Unpacking necessary files from: file:///Users/Richard/Documents/Dev/vagrant/package.box
==> box: Successfully added box 'name-of-this-box' (v0) for 'virtualbox'!
現在我們可以通過名稱來創建一個vm
config.vm.box = "name-of-my-box"
此種方法不需要再配置config.vm.box_url
需要注意 synced folder
在打包box並且創建新的vm時,客戶(guest)下的synced folder的內容可能會丟失,所以最好在此之前關閉synced
config.vm.synced_folder ".", "/vagrant", disabled: true
沒有親測