vagrant
author : huangteng
Ruby寫的一個輕巧的構建虛擬環境的工具。就目前而言,我覺得除了Apache
NIFI項目需要外,還有別的兩個重要的用途:
構建一個統一的環境,這個環境也可以是像生產環境的開發環境。這樣的好處顯而易見,因爲我們經常遇到一個問題就是代碼在開發環境是OK的,但是一發布就各種問題,通過Vagrant配置一個和生產環境一樣的開發環境,我們可以在一個box裏開發,通過鏡像來傳遞每個人的代碼,更加安全,解決環境問題。
每個項目都要去搭建環境,每個人的搭建環境水平和認識不一致。通過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重啓一下。
上述網絡設置解析
- 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鏈接就不可以用了
- Private network–私有網絡
語法:
config.vm.network "private_network", ip: "192.168.50.4"
這個也很簡單,就是隻有主機可以訪問虛擬機,別的都不可以,這樣的缺點就是明顯不能實現前邊說的在同一環境中進行團隊開發。裏面的ip是虛擬機的ip,可以通過Xshell設置連接,需要的密碼默認都是vagrant,需要的key的地址之類的,你執行一下vagrant ssh就可以看到了哦。
- 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了。環境就搭建好了。