Vagrant 實(shí)戰(zhàn)

Vagrant 是一個(gè)可創(chuàng)建輕量級(jí)、高復(fù)用性和便于移植的開(kāi)發(fā)環(huán)境的工具。

此文章是作者折騰vagrant的筆記, 希望大家看后,不再去網(wǎng)上搜羅資料, 能順利搭建vagrant環(huán)境。vagrant更新較快, 還建議大家以官網(wǎng)為主。Vagrant官網(wǎng)

面臨的問(wèn)題

  • 開(kāi)發(fā)人員設(shè)備不統(tǒng)一, win , Mac , Linux等
  • 開(kāi)發(fā)環(huán)境不統(tǒng)一, 各種軟件安裝、版本和依賴管理困難
  • 沒(méi)有專業(yè)的人員來(lái)進(jìn)行系統(tǒng)管理
  • 換了設(shè)備還要折騰新的開(kāi)發(fā)環(huán)境

如果你希望本地開(kāi)發(fā), 同時(shí)擁有統(tǒng)一的開(kāi)發(fā)環(huán)境, Vagrant 可以幫你搞定。

實(shí)戰(zhàn):Windows下,使用Vagrant部署Linux 開(kāi)發(fā)環(huán)境

安裝VirtualBox

下載 Vagrant

  • 下載安裝Windows版
    window版是msi安裝文件,直接界面安裝即可。
    如果下載centos版本,是rmp包
    rpm -ivh vagrant_1.8.1_x86_64.rpm

安裝 Vagrant

mkdir vagrant_getting_started
cd vagrant_getting_started
vagrant init

執(zhí)行init命令后, 會(huì)在當(dāng)前目錄生成一個(gè)配置文件 Vagrantfile

添加Vagrantbox

vagrant box add hashicorp/precise64
vagrant up

其中 hashicorp/precise64 是在(https://atlas.hashicorp.com/boxes/search)這里定義的, 會(huì)直接從網(wǎng)絡(luò)下載鏡像。

鑒于下載速度極慢,Vagrantbox還可以支持下載好直接本地add.

  • Vagrantbox資源及下載到本地

Vagrantbox鏡像網(wǎng)站

  • 安裝操作系統(tǒng)鏡像, 例如我們下載一個(gè)centos鏡像

[CentOS 6.5 x86_64](https://github.com/2creatives/vagrant-centos/releases/download/v6.5.3/centos65-x86_64-20140116.box]

從本地添加vbox

mkdir vagrant_getting_started
mkdir vagrant_vbox  #centos65-x86_64-20140116.box 下載到此目錄
cd vagrant_getting_started

vagrant box add centos65 vagrant_vbox/centos65-x86_64-20140116.box
vagrant up

其中centos65是我們自定義的vbox鏡像命名,vagrant_vbox/centos65-x86_64-20140116.box是vbox下載鏡像的本地路徑。

查看已經(jīng)添加的box列表

vagrant box list

centos65 (virtualbox, 0)

說(shuō)明添加成功。

接下來(lái)可以配置Vagrantfile

Vagrant.configure(2) do |config|
    
  #box add 的名字
  config.vm.box = "centos65"
  
  #Vagrant的三種網(wǎng)絡(luò)配置
  #端口映射(Forwarded port) 把宿主計(jì)算機(jī)的端口映射到虛擬機(jī)的某一個(gè)端口上,訪問(wèn)宿主計(jì)算機(jī)端口時(shí),請(qǐng)求實(shí)際是被轉(zhuǎn)發(fā)到虛擬機(jī)上指定端口的。
  #例如下面的配置,將訪問(wèn)宿主計(jì)算機(jī)8080端口的請(qǐng)求都轉(zhuǎn)發(fā)到虛擬機(jī)的80端口上進(jìn)行處理       #訪問(wèn)localhost:8080,對(duì)應(yīng)訪問(wèn)虛擬機(jī)的80端口
  #優(yōu)點(diǎn):容易實(shí)現(xiàn)外網(wǎng)訪問(wèn)虛擬機(jī)
  #缺點(diǎn):端口比較多時(shí),配置麻煩;不支持在宿主機(jī)器上使用小于1024的端口來(lái)轉(zhuǎn)發(fā)。比如:不能使用SSL的443端口來(lái)進(jìn)行https連接。
  config.vm.network "forwarded_port", guest: 80, host: 8080
  
  #私有網(wǎng)絡(luò)(Private network) ,只有主機(jī)可以訪問(wèn)虛擬機(jī),如果多個(gè)虛擬機(jī)設(shè)定在同一個(gè)網(wǎng)段也可以互相訪問(wèn),當(dāng)然虛擬機(jī)是可以訪問(wèn)外部網(wǎng)絡(luò)的。
  #優(yōu)點(diǎn):安全,只有自己能訪問(wèn)
  #缺點(diǎn):因?yàn)樗接械脑?,所以團(tuán)隊(duì)成員其他人不能和你協(xié)作
  config.vm.network "private_network", ip: "192.168.33.10"
  
  #公有網(wǎng)絡(luò)(Public network) ,虛擬機(jī)享受實(shí)體機(jī)器一樣的待遇,一樣的網(wǎng)絡(luò)配置,vagrant1.3版本之后也可以設(shè)定靜態(tài)IP。
  #優(yōu)點(diǎn):方便團(tuán)隊(duì)協(xié)作,別人可以訪問(wèn)你的虛擬機(jī)
  #缺點(diǎn):需要有網(wǎng)絡(luò),有路由器分配IP
  config.vm.network "public_network", ip: "192.168.12.253"
  
  
  #設(shè)置文件同步,如下 ../www_data 是本地目錄, /vagrant_data是虛擬機(jī)文件目錄
  #兩個(gè)目錄設(shè)置為同步,這樣就可以直接本地編輯文件,使用虛擬機(jī)配置的軟件環(huán)境了。
  config.vm.synced_folder "../www_data", "/vagrant_data"
  

啟動(dòng)虛擬機(jī)

vagrant up

配置ssh 登錄

vagrant ssh

執(zhí)行此命令后,vagrant會(huì)生成ssh配置,

hostname: localhost

port:   2222

Connection Type: SSH

User Name:  vagrant

Password:   vagrant

使用ssh 工具 , 如 xshell 即可登錄虛擬機(jī)

另外,登錄到虛擬機(jī)如果想使用root,可以配置root密碼

sudo passwd root

打包分發(fā)

當(dāng)你配置好開(kāi)發(fā)環(huán)境后,退出并關(guān)閉虛擬機(jī)。在終端里對(duì)開(kāi)發(fā)環(huán)境進(jìn)行打包

vagrant package

打包完成后會(huì)在當(dāng)前目錄生成一個(gè) package.box 的文件,將這個(gè)文件傳給其他用戶,其他用戶只要添加這個(gè) box 并用其初始化自己的開(kāi)發(fā)目錄就能得到一個(gè)一模一樣的開(kāi)發(fā)環(huán)境了。

也可以把配置文件打包進(jìn)box

vagrant package --vagrantfile Vagrantfile

Vagrant 常用命令

Vagrant的命令很多.官網(wǎng)上有 完整的列表, 這里會(huì)介紹一些常用的.
vagrant up

vagrant up這會(huì)運(yùn)行基于 Vagrantfile配置文件的vagrant. 我用來(lái)啟動(dòng)和重啟開(kāi)發(fā)環(huán)境.
vagrant suspend

vagrant suspend 這個(gè)能暫停當(dāng)前環(huán)境操作. 最好在關(guān)機(jī)前做好這一步,以防下次開(kāi)機(jī)配置無(wú)法恢復(fù).
Starting, Pausing, and Resuming: 啟動(dòng)和重啟可以直接使用vagrant up. 所有之前的狀態(tài)都會(huì)被保存起來(lái).
vagrant destroy

vagrant destroy永久性的移除你的虛擬環(huán)境.
vagrant reload

vagrant reload 和vagrant reload --provision如果環(huán)境掛了,可以重啟.如果加了--provision, 就會(huì)恢復(fù)資料庫(kù). 這在使用Cookbooks 或Puppet移除或添加?xùn)|西時(shí)很有效果.
vagrant ssh

vagrant ssh所有公共文件夾中的操作都會(huì)同步到虛擬環(huán)境,但如果需要直接操作可使用該命令.
vagrant ssh-config

vagrant ssh-config這個(gè)顯示連接到虛擬環(huán)境的所有配置項(xiàng)信息.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1,介紹Vagrant 我們做web開(kāi)發(fā)的時(shí)候經(jīng)常要安裝各種本地測(cè)試環(huán)境,比如apache,php,mysql,r...
    meng_philip123閱讀 2,665評(píng)論 0 12
  • 開(kāi)發(fā)需要在各種系統(tǒng)上進(jìn)行開(kāi)發(fā)任務(wù),運(yùn)維則需要在各種系統(tǒng)上學(xué)習(xí)工具使用。因此,虛擬機(jī)恐怕也是 IT 人員最常使用的工...
    李廣慧閱讀 5,695評(píng)論 3 24
  • Vagrant是什么 Vagrant是一個(gè)軟件,可以自動(dòng)化虛擬機(jī)的安裝和配置流程。目前市面上個(gè)人PC的主流操作系統(tǒng)...
    北魏企鵝閱讀 30,488評(píng)論 3 40
  • [Vagrant入門一(轉(zhuǎn))]閱讀目錄VirtualBox安裝Vagrant安裝Vagrant配置links 原文...
    漢相蕭何閱讀 1,010評(píng)論 0 0
  • —— 顧城 小巷又彎又長(zhǎng) 沒(méi)有門沒(méi)有窗 我拿把舊鑰匙敲著厚厚的墻 這是我讀過(guò)的最無(wú)奈的詩(shī)。 一直以來(lái),有個(gè)地方你進(jìn)...
    嵐風(fēng)的葉子閱讀 227評(píng)論 0 0

友情鏈接更多精彩內(nèi)容