国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

vagrant的配置文件vagrantfile詳解

2019-11-08 02:50:24
字體:
來源:轉載
供稿:網友

上一篇文章完整的講敘了如何安裝一個vagrant的環境。這里主要說一說vagrant的配置文件Vagrantfile。我在嘗試各種技術的時候,常常苦惱于很多時候沒有教程把相關的配置信息說明完整。所以在我的博客里,我一定會完整的把這塊給補上。

一 配置詳解

在我們的開發目錄下有一個文件Vagrantfile,里面包含有大量的配置信息,主要包括三個方面的配置,虛擬機的配置、SSH配置、Vagrant的一些基礎配置。Vagrant是使用Ruby開發的,所以它的配置語法也是Ruby的,但是我們沒有學過Ruby的人還是可以跟著它的注釋知道怎么配置一些基本項的配置。

box設置

config.vm.box = "CentOs7"11

該名稱是再使用 vagrant init 中后面跟的名字。

hostname設置

config.vm.hostname = "for_work"11

設置hostname非常重要,因為當我們有很多臺虛擬服務器的時候,都是依靠hostname來做識別的。比如,我安裝了php7 php56兩臺虛擬機,再啟動時,我可以通過vagrant up php7來指定只啟動哪一臺。

虛擬機網絡設置

config.vm.network "PRivate_network", ip: "192.168.33.10"#config.vm.network "public_network"1212

Vagrant有兩種方式來進行網絡連接,一種是host-only(主機模式),意思是主機和虛擬機之間的網絡互訪,而不是虛擬機訪問internet的技術,也就是只有你一個人自High,其他人訪問不到你的虛擬機。另一種是Bridge(橋接模式),該模式下的VM就像是局域網中的一臺獨立的主機,也就是說需要VM到你的路由器要IP,這樣的話局域網里面其他機器就可以訪問它了。我一般設置為host-only模式。 當然該模式,再指定ip的時候注意不要跟主機所在網段發生沖突。

同步目錄設置

config.vm.synced_folder "/Users/helei/www", "/vagrant"11

我們上面介紹過/vagrant目錄默認就是當前的開發目錄,這是在虛擬機開啟的時候默認掛載同步的。我們還可以通過配置來設置額外的同步目錄。

端口轉發設置

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

上面這句配置可厲害了,這一行的意思是把對host機器上8080端口的訪問請求forward到虛擬機的80端口的服務上,例如你在你的虛擬機上使用nginx跑了一個PHP應用,那么你在host機器上的瀏覽器中打開http://localhost時,Vagrant就會把這個請求轉發到VM里面跑在80端口的nginx服務上,因此我們可以通過這個設置來幫助我們去設定host和VM之間,或是VM和VM之間的信息交互。 個人不建議使用該方法,經常因為兩臺機子端口占用的問題,導致不能正常通信。還是使用上面說的兩種網絡方式進行設置吧。


上面說的配置方式,均是單機模式,下面說說如何進行集群機器的部署與配置,這是vagrant讓我正真激動與興奮的地方。

看完下面,你會覺得超級簡單

現在我們來建立多臺VM跑起來,並且讓他們之間能夠相通信,假設一臺是應用服務器、一臺是Redis服務器,那么這個結構在Vagrant中非常簡單,其實和單臺的配置差不多,你只需要通過config.vm.define來定義不同的角色就可以了,現在我們打開配置文件進行如下設置:

Vagrant.configure("2") do |config| config.vm.define :web do |web| web.vm.provider "virtualbox" do |v| v.customize ["modifyvm", :id, "--name", "web", "--memory", "512"] end web.vm.box = "CentOs7" web.vm.hostname = "web" web.vm.network :private_network, ip: "192.168.33.10" end config.vm.define :redis do |redis| redis.vm.provider "virtualbox" do |v| v.customize ["modifyvm", :id, "--name", "redis", "--memory", "512"] end redis.vm.box = "CentOs7" redis.vm.hostname = "redis" redis.vm.network :private_network, ip: "192.168.33.11" endend1234567891011121314151617181912345678910111213141516171819

這里的的設置與設置單臺機器非常的類似,如果還需要機器,只需要再配置文件中拷貝一下,然后重新加載一下這個配置文件就ok啦。是不是非常容易?后面我打算學Hadoop的時候,就用這種方式來試試。 現在只需要重新啟動一下vagrant up機器,你就會在虛擬機中看到兩臺虛擬機歡快的跑起來了。 然后這個時候,在使用vagrant ssh登錄時,需要指明一下登錄的是哪一臺機器就ok啦。


比如,我要登錄到redis中去。

vagrant ssh redis11

這么簡單就完成登錄了。登錄成功后,可以使用ping命令,檢查一下機器之間是否能夠互相通信。

好吧,本地有了如此利器,你想模擬那樣的服務器架構,都可以完成了,只有你的單機足夠強大,你可以開20臺虛擬機,請隨意。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 嫩江县| 婺源县| 高密市| 纳雍县| 林西县| 凉山| 禹州市| 濉溪县| 凉城县| 郁南县| 元谋县| 曲麻莱县| 赤峰市| 娄底市| 隆昌县| 随州市| 卫辉市| 大名县| 同仁县| 吉首市| 红原县| 忻州市| 岚皋县| 井冈山市| 永善县| 陈巴尔虎旗| 昌平区| 新民市| 怀柔区| 城固县| 海原县| 绩溪县| 额尔古纳市| 沁阳市| 阿合奇县| 永仁县| 潼南县| 耒阳市| 巴青县| 沂水县| 柘荣县|