一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

征服誘人的Vagrant!

 股海無(wú)涯苦作舟 2021-11-11

一、背景

最近要開始深入學(xué)習(xí)分布式相關(guān)的東西了,那第一步就是在自己的電腦上安裝虛擬機(jī),以前在Windows平臺(tái),我選擇用VMware Workstation作為虛擬機(jī)軟件,現(xiàn)在在Mac系統(tǒng)下,感覺不是很適合了,然后就有朋友推薦我使用Vagrant來(lái)在Mac系統(tǒng)作為虛擬機(jī)管理軟件,那么本文我們就來(lái)聊一聊跟這貨相關(guān)的蠻有意思的東西。

二、Vagrant介紹

Vagrant是一個(gè)基于Ruby的工具,用于創(chuàng)建和部署虛擬化開發(fā)環(huán)境。它 使用Oracle的開源VirtualBox虛擬化系統(tǒng),使用 Chef創(chuàng)建自動(dòng)化虛擬環(huán)境。我們可以使用它來(lái)干如下這些事:

  • 建立和刪除虛擬機(jī)

  • 配置虛擬機(jī)運(yùn)行參數(shù)

  • 管理虛擬機(jī)運(yùn)行狀態(tài)

  • 自動(dòng)配置和安裝開發(fā)環(huán)境

  • 打包和分發(fā)虛擬機(jī)運(yùn)行環(huán)境

Vagrant的運(yùn)行,需要依賴某項(xiàng)具體的虛擬化技術(shù),最常見的有VirtualBox以及VMWare兩款,早期,Vagrant只支持VirtualBox,后來(lái)才加入了VMWare的支持。

為什么我們要選擇Vagrant呢?因?yàn)樗?span>跨平臺(tái)、可移動(dòng)、自動(dòng)化部署無(wú)需人工參與等優(yōu)點(diǎn)。

圖片

在Vagrant體系中,有個(gè)box(箱子)的概念,這優(yōu)點(diǎn)類似于docker體系中的image(鏡像)?;谕粋€(gè)box,不同的人可以運(yùn)行得到相同的內(nèi)容。這個(gè)我們下文再詳細(xì)說(shuō)。

三、Vagrant環(huán)境的安裝

因?yàn)槲覀冎纕agrant依賴virtualbox,所以我們需要在安裝vagrant之前先安裝virtualbox,筆者初學(xué)時(shí)在網(wǎng)上搜索了很久,發(fā)現(xiàn)大部分人的vagrant教程里只說(shuō)讓安裝vagrant并沒(méi)有說(shuō)要提前安裝virtualbox,結(jié)果我按照他們的步驟安裝完vagrant以后,發(fā)現(xiàn)死活起不來(lái),當(dāng)時(shí)真的是郁悶。后來(lái)又查了好久才知道這貨依賴虛擬化軟件,所以我又安裝了virtualbox,這樣我本地才把vagrant起來(lái)了。真的是坑!這個(gè)大家要注意。

1. 下載并安裝virtualbox

下載地址:https://www./wiki/Downloads

安裝過(guò)程很簡(jiǎn)單,傻瓜式的一步一步點(diǎn)下去。

2.下載并安裝vagrant

下載地址:https://www./downloads.html

安裝過(guò)程依舊沒(méi)什么難的,跟著提示一步一步next安裝。

注意:下載的時(shí)候,virtualbox和vagrant的版本要搭配,建議都下載最新版的。還有就是要根據(jù)自己的操作系統(tǒng)版本進(jìn)行選擇32位或者64位下載。在windows系統(tǒng)中,可能還需要配置環(huán)境變量以及一定要開啟VT-x/AMD-V硬件加速。

四、Vagrant基本命令

1. vagrant box基本命令

  • 列出本地環(huán)境中所有的box

    vagrant box list
  • 添加box到本地vagrant環(huán)境

    vagrant box add box-name(box-url)
  • 更新本地環(huán)境中指定的box

    vagrant box update box-name
  • 刪除本地環(huán)境中指定的box

    vagrant box remove box-name
  • 重新打包本地環(huán)境中指定的box

    vagrant box repackage box-name
  • 在線查找需要的box

    官方網(wǎng)址:https://app./boxes/search

2. vagrant基本命令

  • 在空文件夾初始化虛擬機(jī)

    vagrant init [box-name]
  • 在初始化完的文件夾內(nèi)啟動(dòng)虛擬機(jī)

    vagrant up
  • ssh登錄啟動(dòng)的虛擬機(jī)

    vagrant ssh
  • 掛起啟動(dòng)的虛擬機(jī)

    vagrant suspend
  • 重啟虛擬機(jī)

    vagrant reload
  • 關(guān)閉虛擬機(jī)

    vagrant halt
  • 查找虛擬機(jī)的運(yùn)行狀態(tài)

    vagrant status
  • 銷毀當(dāng)前虛擬機(jī)

    vagrant destroy

五、Vagrant高級(jí)功能

1. 端口轉(zhuǎn)發(fā)

關(guān)于端口轉(zhuǎn)發(fā)的配置方式有以下兩種:

  • 掛起虛擬機(jī)后,在virtualbox的設(shè)置里配置轉(zhuǎn)發(fā)規(guī)則(缺點(diǎn)是:每次通過(guò)vagrant reload命令重啟虛擬機(jī)以后失效)

    首先打開VirtualBox管理器:

    圖片

    然后設(shè)置轉(zhuǎn)發(fā)規(guī)則:

    圖片

    添加對(duì)應(yīng)的轉(zhuǎn)發(fā)規(guī)則,然后點(diǎn)擊OK保存,再使用命令vagrant up啟動(dòng)虛擬機(jī)。

注意:一定不能使用vagrant reload命令,否則啟動(dòng)后規(guī)則丟失無(wú)效。

  • 在vagrant的配置文件Vagrantfile里配置轉(zhuǎn)發(fā)規(guī)則(永久有效,重啟不會(huì)丟失)

    在配置文件里增加以下配置:

    config.vm.network :forwarded_port, guest: 80, host: 8889
    config.vm.network :forwarded_port, guest: 8888, host: 9999

    這樣的話我們就獲得了永久的8889到80、9999到8888的轉(zhuǎn)發(fā)。

2. 網(wǎng)絡(luò)配置

vagrant支持以下三種網(wǎng)絡(luò)配置:

  • Forwarded port(端口映射)

是指將宿主計(jì)算機(jī)的端口映射到虛擬機(jī)上的某個(gè)端口上,訪問(wèn)宿主計(jì)算機(jī)的該端口時(shí),請(qǐng)求實(shí)際會(huì)被轉(zhuǎn)發(fā)到虛擬機(jī)上指定的端口,配置文件設(shè)置語(yǔ)法為:

config.vm.network :forwarded_port, guest: 80, host: 8889

優(yōu)點(diǎn):簡(jiǎ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連接)。

官網(wǎng)配置文檔地址:https://www./docs/networking/forwarded_ports.html

  • Private network(私有網(wǎng)絡(luò))

這種網(wǎng)絡(luò)配置下,只有主機(jī)可以訪問(wèn)虛擬機(jī),如果多個(gè)虛擬機(jī)設(shè)置定在同一個(gè)網(wǎng)段也可以相互訪問(wèn),當(dāng)然虛擬機(jī)也是可以訪問(wèn)外部網(wǎng)絡(luò)的。配置語(yǔ)法如下:

config.vm.network 'private_network', ip: '192.168.50.4' # 固定IP

還可以設(shè)置動(dòng)態(tài)IP,配置語(yǔ)法如下:

config.vm.network 'private_network', type: 'dhcp'

優(yōu)點(diǎn):安全,只能自己訪問(wèn)。

缺點(diǎn):因私有原有,所以其他團(tuán)隊(duì)成員不能和你協(xié)作。

官網(wǎng)配置文檔地址:https://www./docs/networking/private_network.html

  • Public network(公有網(wǎng)絡(luò))

這種配置下,虛擬機(jī)享受實(shí)體機(jī)一樣的待遇,一樣的網(wǎng)絡(luò)配置,vagrant 1.3版本以后這種配置也支持設(shè)定固定IP,配置語(yǔ)法如下:

config.vm.network 'public_network', ip: '192.168.50.4'

還可以設(shè)置橋接網(wǎng)卡,配置語(yǔ)法如下:

config.vm.network 'public_network', bridge: 'en1: Wi-Fi (AirPort)'

優(yōu)點(diǎn):方便團(tuán)隊(duì)協(xié)作,別人可以訪問(wèn)你的虛擬機(jī)。

缺點(diǎn):需要有網(wǎng)絡(luò),有路由器分配IP

官網(wǎng)配置文檔地址:https://www./docs/networking/public_network.html

3.共享目錄

有時(shí)候,我們希望虛擬機(jī)能和我們的主機(jī)共享一些文件夾,這時(shí)候在vagrant的配置文件中進(jìn)行配置來(lái)達(dá)到共享目錄的目的。

vagrant的共享目錄類型有:

  • NFS (適用于Mac OS宿主機(jī)), 配置語(yǔ)法:

    config.vm.synced_folder '/hostPath', '/guestPath', type: 'nfs'

    官網(wǎng)配置文檔地址:https://www./docs/synced-folders/nfs.html

  • RSync , 配置語(yǔ)法:

    config.vm.synced_folder '/hostPath', '/guestPath', type: 'rsync'

    官網(wǎng)配置文檔地址:https://www./docs/synced-folders/rsync.html

  • SMB (適用于Windows宿主機(jī)), 配置語(yǔ)法:

    config.vm.synced_folder '/hostPath', '/guestPath', type: 'smb'

    官網(wǎng)配置文檔地址:https://www./docs/synced-folders/smb.html

  • VirtualBox

    如果你的vagrant使用virtualbox的provider,這是默認(rèn)的共享目錄的類型。這些同步文件夾使用ValualBox共享文件夾系統(tǒng)將文件更改從客戶機(jī)同步到主機(jī),反之亦然。

    官網(wǎng)配置文檔地址:https://www./docs/synced-folders/virtualbox.html

注意:配置完成,我們重新啟動(dòng)虛擬機(jī)時(shí)發(fā)現(xiàn)報(bào)錯(cuò)了,這時(shí)候別慌,我們給出解決辦法傳送門。

4. 虛擬機(jī)優(yōu)化

  • 自定義虛擬機(jī)名稱

config.vm.provider 'virtualbox' do |vb|
   vb.name = 'ubuntu-hafiz'
end
  • 自定義虛擬機(jī)主機(jī)名稱

config.vm.hostname='hafiz'
  • 自定義虛擬機(jī)內(nèi)存和CPU

config.vm.provider 'virtualbox' do |vb|
 vb.name = 'ubuntu-imooc'
 vb.memory = '1024'
 vb.cpus = 2
end

配置好后重啟虛擬機(jī),然后進(jìn)入虛擬機(jī):

使用top命令然后再按1顯示當(dāng)前CPU個(gè)數(shù):

圖片

使用free -m命令顯示當(dāng)前虛擬機(jī)內(nèi)存:

圖片

六、總結(jié)

        通過(guò)本文,我們對(duì)vagrant有了一個(gè)大概的了解,那么用起來(lái)也會(huì)很順手,用到一個(gè)東西,我們還是要追求知其然知其所以然,這樣對(duì)我們自己負(fù)責(zé),同時(shí)遇見問(wèn)題我們也好下手去思考和解決。我就是我,不一樣的煙火~

圖片

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    国产精品免费不卡视频| 亚洲天堂国产精品久久精品| 欧美午夜一级艳片免费看| 日韩精品视频免费观看| av一区二区三区天堂| 国产精品日本女优在线观看| 在线观看国产午夜福利| 午夜精品久久久免费视频| 亚洲乱妇熟女爽的高潮片| 日本欧美一区二区三区高清| 欧美成人欧美一级乱黄| 九九久久精品久久久精品| 亚洲国产欧美久久精品| 日韩在线精品视频观看| 亚洲丁香婷婷久久一区| 亚洲中文字幕综合网在线| 国产一区在线免费国产一区| 亚洲精品国产精品日韩| 国产精品成人免费精品自在线观看| 国产成人人人97超碰熟女| 精品视频一区二区三区不卡| 亚洲中文在线观看小视频| 欧美日韩国产免费看黄片| 婷婷伊人综合中文字幕| 日韩精品日韩激情日韩综合| 中文字幕日韩无套内射| 中国美女草逼一级黄片视频| 自拍偷拍一区二区三区| 日韩免费午夜福利视频| 在线观看中文字幕91| 丰满少妇被猛烈插入在线观看| 日韩精品综合福利在线观看| 日韩高清一区二区三区四区| 国产日韩精品欧美综合区| 欧美日韩一级黄片免费观看| 亚洲国产av国产av| 蜜桃传媒视频麻豆第一区| 一级欧美一级欧美在线播| 日本加勒比在线播放一区| 亚洲中文字幕免费人妻| 日韩欧美中文字幕人妻|