Vagrant 搭建開發(fā)環(huán)境實(shí)踐
介紹
Development Environments Made Easy
—官網(wǎng)標(biāo)題
vagrant是一個(gè)命令行的虛擬機(jī)管理程序。用于簡(jiǎn)化搭建開發(fā)環(huán)境。
vagrant使用ruby語(yǔ)言基于Chef 開發(fā)。需要配合其他虛擬機(jī)程序進(jìn)行工作,如vmare、virualbox、hyper-v等。并通過(guò) CLI和VagrantFile(配置文件)管理虛擬機(jī)的所有功能。vagrant 使用自己的鏡像格式進(jìn)行環(huán)境部署,即box。類似于虛機(jī)的iso或者docker中的鏡像。
選擇vagrant+virualbox這個(gè)組合,因?yàn)樗鼈兌际情_源的、跨平臺(tái)的。vagrant搭建開發(fā)環(huán)境即簡(jiǎn)單又強(qiáng)大。
安裝
官網(wǎng)下載安裝。其中virualbox可選擇安裝
VirtualBox Extension Pack。使用虛擬機(jī)需要BIOS 開啟虛擬化。
VirtualBox 官網(wǎng)
https://www.virtualbox.org/
Vagrant 官網(wǎng)
http://www.vagrantup.com/
BOX查找
https://app.vagrantup.com/boxes/search
幾個(gè)場(chǎng)景
下面介紹幾種vagrant 使用場(chǎng)景。所有步驟在WIN11系統(tǒng)下驗(yàn)證過(guò)。
1、一行命令搭建基本的開發(fā)環(huán)境
在CMD命令行下啟動(dòng)一個(gè)包含centos系統(tǒng)的虛擬機(jī)。其中"centos/7"是box名,root用戶的默認(rèn)密碼是vagrant。真簡(jiǎn)單。
2、單機(jī)開發(fā)環(huán)境
目標(biāo)是搭建一個(gè)少量定制的單機(jī)開發(fā)環(huán)境。需要使用CLI命令和配置文件來(lái)完成。
手動(dòng)下載BOX
網(wǎng)速慢可以自己下載box文件,并添加到本地box庫(kù)。
下載地址:
https://app.vagrantup.com/centos/boxes/7/versions/2004.01/providers/virtualbox.box
box添加到本地庫(kù)的命令
**初始化 **進(jìn)入命令行,建立一個(gè)目錄,用centos/7 box 初始化。
基本的配置文件 初始化后會(huì)在當(dāng)前目錄生成名為 Vagrantfile 的文件。以Ruby語(yǔ)言為格式。
常用命令
3、集群開發(fā)環(huán)境
目標(biāo)是搭建一個(gè)運(yùn)行在局域網(wǎng)中、包含多臺(tái)物理機(jī)和虛擬機(jī)的集群環(huán)境。
思路是安裝好公共box后,對(duì)其進(jìn)行定制。打包成自定義box,分發(fā)到不同的物理機(jī)上部署。
使用vagrant的公共網(wǎng)絡(luò)模式,為每個(gè)虛擬機(jī)在局域網(wǎng)分配固定IP,集群環(huán)境里的任意物理機(jī)和虛擬機(jī)可以直接互通。
初始化一個(gè)centos環(huán)境
定制環(huán)境
允許用戶名密碼鏈接SSH
使用vagrant ssh 鏈接虛擬機(jī)
修改配置項(xiàng)、允許密碼登陸,并保存。
PasswordAuthentication yes
操作系統(tǒng)設(shè)置
設(shè)置阿里云Centos鏡像源
安裝Docker
自定義BOX
打包當(dāng)前環(huán)境,默認(rèn)名稱package.box。加入本地庫(kù),取名base。
box本地倉(cāng)庫(kù) 默認(rèn)路徑 C:\Users\Administrator.vagrant.d\box
配置文件
部署集群環(huán)境
將打包好的自定義box和配置文件,復(fù)制到需要部署的各物理機(jī),并且安裝vagrant環(huán)境。
使用vagrant box add將box添加到物理機(jī)的本地庫(kù)中。
使用vagrant init base初始化。
調(diào)整 Vagrantfile 并通過(guò)vagrant up進(jìn)行部署。
結(jié)語(yǔ)
擴(kuò)展閱讀vagrant的CLI、VagrantFile、插件、網(wǎng)絡(luò)配置等可以在官網(wǎng)文檔找到。
Documentation | Vagrant by HashiCorp (vagrantup.com)
版權(quán)聲明:本文內(nèi)容轉(zhuǎn)發(fā)自阿里云社區(qū),由阿里云實(shí)名注冊(cè)用戶自發(fā)貢獻(xiàn)!版權(quán)歸原作者所有。本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本文中有涉嫌抄襲的內(nèi)容,請(qǐng)聯(lián)系站內(nèi)客服,本站將立刻刪除涉嫌侵權(quán)內(nèi)容。