1. 程式人生 > >Vagrant+virtualbox+centos 搭建linux虛擬機器

Vagrant+virtualbox+centos 搭建linux虛擬機器

vagrant

author : huangteng

Ruby寫的一個輕巧的構建虛擬環境的工具。就目前而言,我覺得除了Apache
NIFI專案需要外,還有別的兩個重要的用途:

  1. 構建一個統一的環境,這個環境也可以是像生產環境的開發環境。這樣的好處顯而易見,因為我們經常遇到一個問題就是程式碼在開發環境是OK的,但是一發布就各種問題,通過Vagrant配置一個和生產環境一樣的開發環境,我們可以在一個box裡開發,通過映象來傳遞每個人的程式碼,更加安全,解決環境問題。

  2. 每個專案都要去搭建環境,每個人的搭建環境水平和認識不一致。通過vagrant搭建一個統一的環境,這些問題就都沒有了哦。

Vagrant 安裝

Vagrant安裝是傻瓜式的,只是win10系統的可能會略坑,現在最新的版本應該是1.9.4,建議下載1.9.1版本的,最新版的我安裝的過程中一直會出現Gem的錯誤,如果對Ruby不是很瞭解的話,這種錯誤是很難搞定的,最好的辦法還是換一個版本一直next就行。
安裝完成後,在cmd執行vagrant,出現–help資訊就說明你搞定安裝了。

Centos-7.0-x86_64.box

這是一些大牛自己寫的box,直接在網上下載來就行。我使用的是centos7,你也可以用ubatu等。

Xshell 5

shell命令工具,我推薦使用這個,當然你可以選中任意你喜歡的。

Vagrant+VirtualBox+Centos-7.0-x86_64.box

搭建一個linux的虛擬機器環境步驟:
cd到一個資料夾;

新增box;title是虛擬機器的別名,boxUrl是.box檔案的地址
1. vagrant box add {title} {boxUrl}

初始化
2. vagrant init {title}

啟動
3. vagrant up

這個時候在你的資料夾下就會有一個box的配置檔案Vagrantfile
現在就需要通過Vagrantfile檔案來設定網路連結方式,設定完成之後
執行一下vagrant reload重啟一下。

上述網路設定解析

  1. Forwarded port–埠對映

語法:

config.vm.forwarded_port 80, 8080
UDP:
config.vm.forwarded_port 80, 8080, protocol: "udp"

其實這種設定很好理解,就是物理機的8080埠實際映射了虛擬機器的80埠,訪問8080實際都是轉發給了虛擬機器的80埠。預設是TCP協議,如果採用UDP協議需要單獨宣告協議的內容。
這樣的配置問題就是很多埠的時候對映就多了,這就是個麻煩事情了。這樣設定之後不能支援在宿主機器上採用小於1024的埠轉發,這樣ssl(443)進行https連結就不可以用了

  1. Private network–私有網路

語法:

config.vm.network "private_network", ip: "192.168.50.4"

這個也很簡單,就是隻有主機可以訪問虛擬機器,別的都不可以,這樣的缺點就是明顯不能實現前邊說的在同一環境中進行團隊開發。裡面的ip是虛擬機器的ip,可以通過Xshell設定連線,需要的密碼預設都是vagrant,需要的key的地址之類的,你執行一下vagrant ssh就可以看到了哦。

  1. Pulic network–公有網路

語法:

公共地址 DHCP獲取時會自動分配一個地址
config.vm.network "public_network"
config.vm.network "public_network", ip: "192.168.1.120"
設定橋接的網絡卡:
config.vm.network "public_network", :bridge => 'en1: Wi-Fi (AirPort)'

其實用法和私有網路差不多,可以設定橋接的網絡卡,團隊可以協作開發,唯一的痛點就是必須要有網路才行。
其實可以理解成為這樣設定之後虛擬機器就是和你的主機平行的,都在一個網路上,是平行的獨立的兩臺電腦一樣。

設定好網路之後通過Xshell建立連線,就ok了。環境就搭建好了。