1,介紹Vagrant
我們做web開發的時候經常要安裝各種本地測試環境,比如apache,php,mysql,redis等等。出於個人使用習慣,可能我們還是比較習慣用windows。雖然說在windows下搭建各種開發環境是可行的,各大開發環境都有windows版本。然而在windows下配置有時候會顯得繁瑣,並且還會導致開發環境(windows)和生產環境(lunix)不一致。
能不能在windows下也像linux那樣開發?也許你想到了,用虛擬機。用虛擬機裝個linux系統就好了。裝完linux系統就設置共享目錄,設置網絡端口映射,等等。好像也有那么點繁瑣。
還有,假如我們是一個團隊進行開發,那么每個人的電腦上都要裝個虛擬機+ linux系統+各種運行環境。手動設置麻煩不說,大家的開發環境不太一致(可能你裝了apcahe我裝了nginx等),也是頭疼。能不能把各種設置都自動化,並且保持整個團隊的開發環境一致呢?
Vagrant就是為了解決這個問題而生的。它使用開源 VirtualBox 作為虛擬化支持,可以輕松的跨平台部署。
2,下載
下載VirtualBox:http://download.virtualbox.org/virtualbox/4.3.28/VirtualBox-4.3.28-100309-Win.exe
上面給出的是4.3.28版本的下載鏈接。要下載其他版本請訪問官網https://www.virtualbox.org/wiki/Downloads
下載Vagrant:
https://dl.bintray.com/mitchellh/vagrant/vagrant_1.7.2.msi
上面給出的是1.7.2版本的下載鏈接。要下載其他版本請訪問官網
http://www.vagrantup.com/downloads.html
下載虛擬鏡像:
https://github.com/tommy-muehle/puppet-vagrant-boxes/releases/download/1.0.0/centos-6.6-x86_64.box
上面給出的是centos-6.6鏡像下載鏈接,要下載其他鏡像請訪問官網
http://www.vagrantbox.es/
3,安裝
下載好上面的軟件包后,先安裝VirtualBox,然后安裝Vagrant。都是雙擊即可安裝的(二者的安裝相互獨立),所以沒什么好介紹。下面介紹下怎么把鏡像導入。
先新建一個工作目錄
比如我新建了D:VagrantWorkcentos-6.6-x86_64
打開cmd命令提示符,進入新目錄,以我上面的目錄為例,輸入
D: cd D:VagrantWorkcentos-6.6-x86_64
然后輸入命令初始化
vagrant init centos6.6
把下載的centos-6.6-x86_64.box復制到本目錄D:VagrantWorkcentos-6.6-x86_64下,執行
vagrant box add centos6.6 centos-6.6-x86_64.box
檢查是否導入成功
vagrant box list
4,配置
用文本編輯器打開D:VagrantWorkcentos-6.6-x86_64目錄下的Vagrantfile文件便可以進行一些常用配置。
下面列舉出幾個常用的配置。要用到其他配置請訪問官網文檔或者百度谷歌一下。
1,端口映射
config.vm.network :forwarded_port, guest: 80, host: 8080
把上面這句代碼前面的#號去掉。它表示映射本機的8080端口到虛擬機的80端口
2,如果需要自己自由的訪問虛擬機,但是別人不需要訪問虛擬機,可以使用private_network,並為虛擬機設置IP。
config.vm.network :private_network, ip: 192.168.33.10
把上面這句代碼前面的#號去掉即可
3,目錄映射
config.vm.synced_folder "D:/www", "/var/www/html"
如果啟用上面的命令,表示把本機的data目錄共享到虛擬機里的/var/www目錄
5,啟動
進入目錄D:VagrantWorkcentos-6.6-x86_64后執行命令
vagrant up
虛擬機啟動之后則可以通過 vagrant ssh 聯入虛擬機進行進一步的環境配置,或者軟件安裝相關的工作,在Windows系統下,並不能直接通過 vagrant ssh 連到虛擬機,需要使用 Putty,Xshell 等第三方工具進行連接。連接地址127.0.0.1,端口2222。登錄的帳號root的密碼為 vagrant
6,導出
在cmd里進行工作目錄后,執行下面命令
vagrant package
完成后會在當前目錄就會生成package.box,之后新建虛擬機則可使用這個box。如果事先在你的虛擬機里建立好了各種開發環境,那么你直接把這個box給你的團隊其他成員安裝,這樣就可以省去一台台電腦部署的時間,還可以保持開發環境一致。很方便有木有。
7,其他命令
下面列舉出一些常用的cmd操作命令
vagrant up (啟動虛擬機)
vagrant halt (關閉虛擬機——對應就是關機)
vagrant suspend (暫停虛擬機——只是暫停,虛擬機內存等信息將以狀態文件的方式保存在本地,可以執行恢復操作后繼續使用)
vagrant resume (恢復虛擬機 —— 與前面的暫停相對應)
vagrant box remove centos6.6 (移除box,其中centos6.6是box名)
vagrant destroy (刪除虛擬機,刪除后在當前虛擬機所做進行的除開Vagrantfile中的配置都不會保留)