
簡(jiǎn)介:
Vagrant是一個(gè)基于Ruby的工具,用于創(chuàng)建和部署虛擬化開(kāi)發(fā)環(huán)境。它 使用Oracle的開(kāi)源VirtualBox虛擬化系統(tǒng),使用 Chef創(chuàng)建自動(dòng)化虛擬環(huán)境.
要想使用Vagrant這個(gè)工具,首先需要安裝Virtualbox,步驟如下:
- 安裝Virtualbox
- 安裝Vagrant
- 啟動(dòng)vagrant服務(wù)
- 連接到虛擬機(jī)
安裝Virtualbox
進(jìn)入Virtualbox官網(wǎng),下載安裝Virtualbox,下載后安裝一直點(diǎn)下一步,沒(méi)什么難度。
安裝Vagrant
- 進(jìn)入Vagrant官網(wǎng),下載自己對(duì)應(yīng)操作系統(tǒng)的版本Vagrant,下載后安裝一直點(diǎn)下一步,依然沒(méi)什么難度
- 測(cè)試Vagrant是否安裝成功,在命令行輸入vagrant,如果會(huì)彈出命令幫助界面,說(shuō)明安裝成功。
安裝box
box其實(shí)就是某種操作系統(tǒng)的鏡像文件,安裝box有兩種方式,一種是直接從vagrantcloud.com加載,一種是先將box從vagrantcloud.com下載下來(lái),然后從本地加載。
1.從vagrantcloud.com加載命令為vagrant box add boxname
如下:
vagrant box add chef/centos-6.5
2.從本地加載box命令為vagrant box add rename url/name.box
如下:
yangzhiqiangdeMacBook-Pro:Documents yangzhiqiang$ vagrant box add mall /Users/yangzhiqiang/Documents centos_dev_mall.box
測(cè)試box是否安裝成功
使用命令vagrant box list,查看是否有剛剛安裝的box,如果有則說(shuō)明安裝成功,反正則沒(méi)有。
Vagrant的使用
- 初始化項(xiàng)目
進(jìn)入目標(biāo)文件夾,使用命令vagrant init chef/centos-6.5,將項(xiàng)目初始化,初始化成功后,會(huì)提示初始化成功并生成一個(gè)Vagrantfile文件。 - 啟動(dòng)vagrant
同樣是在目標(biāo)文件夾,啟動(dòng)項(xiàng)目使用命令vagrant up這個(gè)命令,vagrant服務(wù)就已經(jīng)被開(kāi)啟了。 - 連接到虛擬機(jī)
在目標(biāo)文件夾中,使用vagrant ssh命令,能成功連接到vagrant虛擬機(jī)中。 - 虛擬機(jī)網(wǎng)絡(luò)配置
電腦和虛擬機(jī)通信,比如在虛擬機(jī)上搭建了一個(gè)web服務(wù)器,需要在自己電腦上訪問(wèn)這個(gè)服務(wù)器,有三種方式:
forwarded_port: 端口轉(zhuǎn)發(fā)方式,比如在Vagarantfile里面配置了8080端口轉(zhuǎn)發(fā)到80端口,那么在電腦上訪問(wèn)localhost:8080,就會(huì)自動(dòng)轉(zhuǎn)發(fā)到虛擬機(jī)的80端口
config.vm.network "forwarded_port", guest: 9292, host:9292
private_network:私有網(wǎng)絡(luò),為虛擬機(jī)指定一個(gè)IP地址,只能通過(guò)你電腦訪問(wèn)
config.vm.network "private_network", ip: "192.168.33.10"
public_network:公有網(wǎng)絡(luò),為虛擬機(jī)指定一個(gè)IP地址,可以通過(guò)其他設(shè)備訪問(wèn)
config.vm.network "public_network"_
Vagrant常用命令
- 查看列表:vagrant box list
- 初始化項(xiàng)目:vagrant init boxname
- 查看虛擬機(jī)狀態(tài):vagrant status
- 添加box:vagrant box add rename url/name.box或者vagrant box add boxname
- 開(kāi)機(jī):vagrant up
- 連接到虛擬機(jī):vagrant ssh
- 暫停虛擬機(jī):vagrant suspend
- 恢復(fù)虛擬機(jī):vagrant resume
- 關(guān)機(jī):vagrant halt
- 重啟虛擬機(jī):vagrant reload
另外,移除虛擬機(jī)box的時(shí)候,如果有多個(gè)相同名字不同版本的box,需要指定版本刪除,命令如下:
vagrant box remove coreos-alpha --box-version=745.1.0