vagrant+java+springcloud+redis+zookeeper鏡像下載(&製做詳解)


《SpringCloud Nginx 高併發核心編程》 環境搭建 - 系列

組件 連接地址
【必須】 虛擬機Linux 開發環境準備
Linux openresty 安裝 Linux openresty 安裝
【必須】Linux Redis 安裝(帶視頻) Linux Redis 安裝(帶視頻)
【必須】Linux Zookeeper 安裝(帶視頻) Linux Zookeeper 安裝, 帶視頻
Windows Redis 安裝(帶視頻) Windows Redis 安裝(帶視頻)
RabbitMQ 離線安裝(帶視頻) RabbitMQ 離線安裝(帶視頻)
ElasticSearch 安裝, 帶視頻 ElasticSearch 安裝, 帶視頻
Nacos 安裝(帶視頻) Nacos 安裝(帶視頻)
【必須】Eureka Eureka 入門,帶視頻
【必須】springcloud Config 入門,帶視頻 springcloud Config 入門,帶視頻
【必須】SpringCloud 腳手架打包與啓動 SpringCloud腳手架打包與啓動
Linux 自啓動 假死自啓動 定時自啓 Linux 自啓動 假死啓動

什麼是vagrant

必先利其器,開發環境 和 開發工具 就是 咱們開發人員的劍,因此咱們須要一個快而且好用的劍node

Vagrant:是一個比較流行的虛擬機管理軟件,使用Vagrant 可讓咱們用命令直接從雲上下載虛擬機的鏡像,而後進行建立和管理等。python

剛開始作開發的時候的都是把開發環境 配置在 本身的電腦上,隨着後面咱們接觸的東西愈來愈多,慢慢的電腦上都是各類環境了,php,java,python,nodejs等等,很是麻煩,而且常常因爲某種緣由就把電腦重裝了,ORZ,因此環境都要重來。因此打造一個屬於本身而且能夠移動的環境是很是重要的。linux

vagrant就是一款構建虛擬開發環境的工具,支持window,linux,mac,總有一款適合你。而且vagrant 能夠把配置好的環境打包成一個box,分享給其餘人直接使用,很是方便nginx

vagrant 是一個很適合開發者的虛擬環境部署工具,自己集成了主流的虛擬器管理工具,支持 vmvare 和 virtualbox。git

vagrant 的精髓在一個 Vagrantfile 裏面,和 docker 的 Dockerfile 功能上同樣。咱們只須要把須要安裝部署的步驟寫在 Vagrantfile 裏面,即可以實現輕鬆部署。vagrant 還支持把當前系統作成一個.box 後綴命名的鏡像,相似 docker 的 image,可輕鬆實現環境的移植。web

因此,使用vagrant能夠在運行着多臺vm的系統上定義複雜的虛擬框架。能夠經過 Vagrant 封裝一個 Linux 的開發環境,分發給團隊成員。成員能夠在本身喜歡的桌面系統(Mac/Windows/Linux)上開發程序,代碼卻能統一在封裝好的環境裏運行,很是霸氣。是否是很酷?面試

準備工做:

下載安裝 VirtualBox ,下載安裝 Vagrant ,下載更多不一樣系統甚至是已經配置好環境直接能夠用的box,雖然能夠直接在Vagrant直接使用網址,由Vagrant自動下載安裝,可是考慮到網絡狀況,仍是建議自行先下載好。

還能夠在 http://www.vagrantbox.es/ 這裏下載更多不一樣系統甚至是已經配置好環境直接能夠用的box,雖然能夠直接在Vagrant直接使用網址,由Vagrant自動下載安裝,可是考慮到網絡狀況,仍是建議自行先下載好。

此外,還得下載官方封裝好的基礎鏡像:
Ubuntu precise 32 VirtualBox http://files.vagrantup.com/precise32.box
Ubuntu precise 64 VirtualBox http://files.vagrantup.com/precise64.box

若是你要其餘系統的鏡像,能夠來這裏下載:http://www.vagrantbox.es/

網友提供的centos 7.2網盤地址:https://pan.baidu.com/s/15S2OZq37FcL9RWWSTWntIw   提取碼:3xb0
  • GitBash
    GitBash是windows下的Unix shell,方便向Vagrant輸入指令。(通常的java開發,都會使用git進行代碼同步,因此此工具默認是已經安裝了的)
    https://git-scm.com/download/win

空間:

15G 的硬盤空間

什麼是:springcloud.box鏡像

瘋狂創客圈網盤,爲你們準備了springcloud.box鏡像,裏邊預裝了java 、 redis 、zookeeper、kafka、Eureka、springcloud config 等必須的組件。網盤地址請參見【博客園總入口

在這裏插入圖片描述

使用vagrant製做Java開發環境

第一步,新建目錄

E:\virtual\work

選擇新創建的文件夾做,右鍵 —> Git Bash Here,在Git Bash打開當前目錄

在 Git Bash 中能夠看到,當前的linux 格式目錄,執行指令以下:

$ pwd
/e/virtual/work

第二步,添加鏡像到 Vagrant

vagrant box add  centos  /e/virtual/vagrant-centos-7.2.box
centos 表示指定名稱,若是使用base,以後能夠直接使用

$ vagrant box add centos /e/virtual/vagrant-centos-7.2.box
==> box: Box file was not detected as metadata. Adding it directly...
==> box: Adding box 'centos' (v0) for provider:
box: Unpacking necessary files from: file:///E:/virtual/vagrant-centos-7.2.box
box:
==> box: Successfully added box 'centos' (v0) for 'virtualbox'!

$

vagrant-centos-7.2.box是box的文件名,這裏是本地保存box的路徑。也能夠是能夠下載box的網址,若是是網址的話,Vagrant會自動啓動下載。

第三步,初始化虛擬機

設置好box以後,在當前工做目錄運行

$ vagrant init centos

centos爲初始化的時候須要指定box的名稱。執行的結果以下:

$ vagrant init centos
A Vagrantfile has been placed in this directory. You are now
ready to vagrant up your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
vagrantup.com for more information on using Vagrant.

你也可使用已有的目錄,切換到開發目錄裏,用 centos 鏡像初始化當前目錄。初始化鏡像以後,在當前目錄生成一個虛擬機的配置文件 Vagrantfile,經過該配置文件,能夠配置端口映射、虛擬機的IP、目錄映射等。經過文本編輯器打開Vagrantfile能夠進行一些進一步的經常使用配置,若是配置登陸用戶名稱和密碼,虛擬機的ip以下:

config.ssh.username = "root"
config.ssh.password = "vagrant"

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

重啓虛擬機,這樣咱們就能用 192.168.233.128 訪問這臺機器了,你能夠把 IP 改爲其餘地址,只要不產生衝突就行。

具體的配置,稍後介紹。

第四步,啓動虛擬機

使用以下命令:

$ vagrant up   # 啓動虛擬機

你會看到終端顯示了啓動過程,啓動完成後,咱們就能夠用 SSH 登陸虛擬機了,剩下的步驟就是在虛擬機裏配置你要運行的各類環境和參數了。

$ vagrant ssh # SSH 登陸
$ cd /vagrant # 切換到開發目錄,也就是宿主機上的 E:\virtual\work

Windows 用戶注意:Windows 終端並不支持 ssh,因此須要安裝第三方 SSH 客戶端,好比:Putty、Cygwin 、Git Bash等。

有關初始帳戶和密碼:

帳戶 密碼
vagrant vagrant
root vagrant

可使用其餘的終端工具,經過root訪問虛擬機了

打包分發

當你配置好開發環境後,退出並關閉虛擬機。在終端裏對開發環境進行打包:

$ vagrant package

打包完成後會在當前目錄生成一個 package.box 的文件,將這個文件傳給其餘用戶,其餘用戶只要添加這個 box 並用其初始化本身的開發目錄就能獲得一個如出一轍的開發環境了。

vagrant package -hUsage: vagrant package [options] [name]

Options:
--base NAME virtualbox程序裏面的虛擬機的名稱,不是box的名字也不是Vagrantfile裏面的虛擬機名稱.默認是打包當前目錄下面的虛擬機。
--output NAME 要打包成的box名稱,不會自動添加.box後綴,要手動加.默認值package.box

​ --include FILE... 打包時包含的文件名,你能夠把.box文件理解爲一個壓縮包
​ --vagrantfile FILE 打包時包含的Vagrantfile文件,原理和上面相似
​ -h, --help Print this help
例子:vagrant package –base virtualbox_vm_name –output newbox_name.box

經過Vagrantfile進行虛擬機配置:

網絡配置:

Vagrant的網絡有三種模式

一、較爲經常使用是端口映射,就是將虛擬機中的端口映射到宿主機對應的端口直接使用 ,在Vagrantfile中配置:

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

guest: 80 表示虛擬機中的80端口, host: 8080 表示映射到宿主機的8080端口。

二、若是須要本身自由的訪問虛擬機,可是別人不須要訪問虛擬機,可使用private_network,併爲虛擬機設置IP ,在Vagrantfile中配置:

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

192.168.1.104 表示虛擬機的IP,多臺虛擬機的話須要互相訪問的話,設置在相同網段便可

三、若是須要將虛擬機做爲當前局域網中的一臺計算機,由局域網進行DHCP,那麼在Vagrantfile中配置:

config.vm.network :public_network

目錄映射:

既然是開發環境,那麼開發工做確定仍是須要在本地完成,而不是都要進到虛擬機中去完成,虛擬機就好好在後臺運行服務就行了,否則就本末倒置了,因此這裏就須要使用目錄映射功能,將本地的目錄映射到虛擬機的對應目錄。

默認狀況下,當前的工做目錄,會被映射到虛擬機的 /vagrant 目錄,當前目錄下的文件能夠直接在 /vagrant 下進行訪問,固然也能夠在經過 ln 建立軟鏈接,如

ln -fs /vagrant/wwwroot /var/www

來進行目錄映射,固然,從自動化配置的角度,能不進系統就不須要進系統,因此在Vagrant也能夠進行目錄映射的操做:

config.vm.synced_folder "wwwroot/", "/var/www"

前面的參數 「wwwroot/」 表示的是本地的路徑,這裏使用對於工做目錄的相對路徑,這裏也可使用絕對路徑,好比: 「d:/www/」

後面的參數 「/var/www」 表示虛擬機中對應映射的目錄。

當在啓動Vagrant後,對於虛擬機有進行過安裝環境相關的配置,若是並不但願寫在Vagrant的啓動shell裏面每次都從新安裝配置一遍,能夠將當前配置好的虛擬機打包成box,

注:若是網絡模式中使用 private_network 的話,在打包以前須要清除一下private_network的設置,避免沒必要要的錯誤:

sudo rm -f /etc/udev/rule.d/70-persistent-net.rules

製做完成以後直接將box文件拿到其餘計算機上配置便可使用。

更多信息能夠參考官方文檔:http://docs.vagrantup.com/v2/

附:我本機上的vagrantfile文件

Vagrant.configure(2) do |config|
	config.ssh.username = "root"
	config.ssh.password = "vagrant"
    config.vm.box = "centos"
    config.vm.network "private_network", ip: "192.168.68.128"

   config.vm.synced_folder "/home/wangkongming/files/works/code/kfz-pm", "/data/webroot/pmv2"
   
end

vagrant 基本命令

官網文檔:https://docs.vagrantup.com/v2/getting-started/index.html

vagrant init 初始化vagrantfile

vagrant add box 添加box,自動幫你生成vagrantfile

vagrant halt 關閉虛擬機

vagrant destroy 銷燬虛擬機

vagrant ssh 鏈接虛擬機

vagrant reload 從新加載vagarntfile文件

vagrant suspend 暫時掛起虛擬機

vagrant status 查看虛擬機運行狀態

vagrant package 打包 box文件

回到◀瘋狂創客圈

瘋狂創客圈 - Java高併發研習社羣,爲你們開啓大廠之門

相關文章
相關標籤/搜索