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高并发研习社群,为你们开启大厂之门

相关文章
相关标签/搜索