前置條件
1、安裝VirtualBox
2、安裝Vagrant
3、在VirtualBox中安裝操作系統,例如 CentOS
1)把在virtualBox中安裝的系統打包成box
1、我們需要知道虛擬機的真實名稱,進入virtualBox安裝目錄,執行:
$ ./VBoxManage.exe list vms "centos_default_1521543788096_25035" {5c500bf3-759f-487a-b052-22428bc4cbf2}
其中 centos_default_1521543788096_25035 是虛擬機的名字。
2、利用vagrant package命令打包,先查看一下命令介紹:
$ vagrant package --help Usage: vagrant package [options] [name|id] Options: --base NAME Name of a VM in VirtualBox to package as a base box (VirtualBox Only) --output NAME Name of the file to output --include FILE,FILE.. Comma separated additional files to package with the box --vagrantfile FILE Vagrantfile to package with the box -h, --help Print this help
--base NAME 指VirtualBox程序里的名稱,也就是上步查找的名稱。
--output NAME 指要打包的box名稱,需要手動添加后綴.box
--include FILE... 打包時包含的文件名,你可以把.box文件理解為一個壓縮包
--vagrantfile FILE 打包時包含的Vagrantfile文件,原理和上面類似
3、開始打包之前,關閉要打包的虛擬機,然后執行:
$ vagrant package --base centos_default_1521543788096_25035 --output centos20180 403.box ==> centos_default_1521543788096_25035: Clearing any previously set forwarded po rts... ==> centos_default_1521543788096_25035: Exporting VM... ==> centos_default_1521543788096_25035: Compressing package to: D:/vagrant/cento s/centos20180403.box
2)如果只是想打包正在運行的box,再次打包:
#刪除虛擬機的一個網絡配置文件 rm -f /etc/udev/rule.d/70-persistent-net.rules #關閉虛擬機 shutdown -h now #打包 vagrant package --output mypackage.box
想要將操作系統打包為可用的Vbox鏡像要做以下工作
1、創建vagrant用戶和用戶目錄,密碼為vagrant
2、添加vagrant用戶的公共密鑰,文件為/home/vagrant/.ssh/authorized_keys
3、在真實操作系統中執行vagrant package --base 虛擬機名稱,這樣會創建指定虛擬機的box
4、將制作好的Box添加到Vagrant環境中,vagrant box add name package.box
5、初始化運行環境,vagrant init name,在初始化環境的時候需要注意的一點是:這個目錄下面如果以前初始化過,那么請執行vagrant destroy命令把這個環境銷毀掉,並刪除Vagrantfile文件,或者在windows環境下直接手動刪除.vagrant目錄和Vagrantfile文件有相同的效果。否則vagrant init命令無效,當你vagant up的時候得到的是一個和以前完全一樣的環境。
6、運行Vagrant虛擬機,vagrant up