使用vagrant+VirtualBox搭建虛擬開發環境
1.Vagrant
Vagrant是一個虛擬機器管理和配置工具,所以虛擬機器系統還得靠專門的虛擬化軟體,Vagrant它底層支援VirtualBox、VMware甚至AWS作為虛擬機器系統。通常情況下,如果你的Vagrant環境需要封裝給其他小夥伴們用,最好使用VirtualBox這個支援OSX/Linux/Win三大宿主系統的免費軟體作為後端。而且,Vagrant預設已經內建了VirtualBox Provider用來跟 VirtualBox互動,所以安裝完Vagrant再去VirtualBox官網下載並安裝VirtualBox就可以正式開始使用了。
總之,Vagrant是通常用於構建及配置虛擬開發環境的軟體。
Vagrant並不提供虛擬化技術,本質上是一個虛擬機器外掛,通過虛擬機器的管理介面來管理虛擬機器。說白了vagrant就是一個普普通通的裝了一個Linux的VirtualBox虛擬機器,配以vagrant團隊為之開發的一系列套件,輔助完成諸如安裝初始化、檔案同步、ssh、部署環境升級、功能外掛安裝等等一些列問題的開發環境部署套件。
vagrant虛擬開發環境搭建好之後,在Virtualbox中可以看到被vagant創建出來的新虛擬機器。
2.Vagrant虛擬工作環境的搭建
以下是在Windows7系統下親測通過:
(1)安裝virtualbox,官網下載,很好安裝
下載地址:https://www.virtualbox.org/wiki/Downloads
(2)安裝Vagrant,官網下載,很好安裝
下載地址:http://downloads.vagrantup.com/
(3)下載box(box是一個字尾為 box 的檔案,實際上它就是一個包含了虛擬機器配置、虛擬機器硬碟映象和Vagrant 配置的壓縮包),這個灰常重要哦
備註:可以到http://www.vagrantbox.es/上下載box,但是國內會灰常慢。
(4)新增box
執行如下命令:
vagrant box add test 遠端的box地址或者本地的box檔名
備註:其中test是我們給這個 box 命的名字,eg:
vagrant box add test https://dl.dropbox.com/u/7225008/Vagrant/CentOS-6.3-x86_64-minimal.box vagrant box add testCentOS-6.3-x86_64-minimal.box vagrant box add "CentOS 6.3 x86_64 minimal" CentOS-6.3-x86_64-minimal.box
執行完新增box命令後,box中的映象檔案被放到了/Users/astaxie/.vagrant.d/boxes/,如果在window系統中應該是放到了C:\Users\當前使用者名稱\.vagrant.d\boxes\目錄下。
(5)初始化
cd到開發目錄(這裡的開發目錄和vagrant ssh登入虛擬機器後的/vagrant目錄是一樣的),然後執行如下命令:
vagrant init test
(6)啟動虛擬機器
vagrant up
(7)登入虛擬機器
vagrant ssh
備註:windows系統上要安裝OpenSSH(http://sourceforge.net/projects/opensshwindows/)之後且為openssh配置了PATH環境變數之後才可以的。不然因為找不到ssh命令,vagrant ssh會執行失敗。
3.修改virutalbox和vagrant的預設目錄
virtualbox和vagrant預設都是放到系統C盤中,如果安裝的box比較多,很容易打滿C盤。這個目標路徑的配置是可以修改的:
(1)更改VirtualBox虛擬機器映像檔案的位置
開啟 VirtualBox 程式,點選管理/全域性設定選單項(Ctrl+G), 將常規欄裡的預設虛擬電腦位置(M)改為其他磁碟下的路徑
將原路徑 C:\Users\user_name\.VirtualBox\VirtualBox VMs 下的檔案移動到新路徑下。
重新啟動VirtualBox程式,在虛擬機器列表裡,以前建立的虛擬機器雖然都還在,但已經不可用了,將他們全部刪除。
雙擊開啟新路徑各個資料夾裡的vbox檔案,將建立的虛擬機器重新匯入。
(2)更改vagrant配置檔案的位置
將 C:\Users\user_name\.vagrant.d 移動到新的位置
新建環境變數VAGRANT_HOME,並指向新路徑
學習資料參考於:
4.從零製作vagrant box
5.vagrant的其他的一些常用的操作命令
vagrant halt #關閉虛擬機器環境,其實是呼叫vitualbox的管理介面,關閉了虛擬機器
vagrant suspend #暫停虛擬機器環境
vagrant reload #修改了Vagrantfile後,使之生效(相當於先halt,再up)
6.效果展示
被Vagrant創建出來的虛擬機器:
使用vagrant ssh登入虛擬機器:
學習資料參考於: