-
狂创客圈 经典图书 : 《Netty Zookeeper Redis 高并发实战》 面试必备 + 面试必备 + 面试必备 【博客园总入口 】
-
疯狂创客圈 经典图书 : 《SpringCloud、Nginx高并发核心编程》 大厂必备 + 大厂必备 + 大厂必备 【博客园总入口 】
-
入大厂+涨工资必备: 高并发【 亿级流量IM实战】 实战系列 【 SpringCloud Nginx秒杀】 实战系列 【博客园总入口 】
《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
必先利其器,开发环境 和 开发工具 就是 我们开发人员的剑,所以我们需要一个快并且好用的剑
**Vagrant:**是一个比较流行的虚拟机管理软件,使用Vagrant 可以让我们用命令直接从云上下载虚拟机的镜像,然后进行创建和管理等。
刚开始做开发的时候的都是把开发环境 配置在 自己的电脑上,随着后面我们接触的东西越来越多,慢慢的电脑上都是各种环境了,php,java,python,nodejs等等,非常麻烦,并且经常由于某种原因就把电脑重装了,ORZ,所以环境都要重来。所以打造一个属于自己并且可以移动的环境是非常重要的。
vagrant就是一款构建虚拟开发环境的工具,支持window,linux,mac,总有一款适合你。并且vagrant 可以把配置好的环境打包成一个box,分享给其他人直接使用,非常方便
vagrant 是一个很适合开发者的虚拟环境部署工具,本身集成了主流的虚拟器管理工具,支持 vmvare 和 virtualbox。
vagrant 的精髓在一个 Vagrantfile 里面,和 docker 的 Dockerfile 功能上一样。我们只需要把需要安装部署的步骤写在 Vagrantfile 里面,便可以实现轻松部署。vagrant 还支持把当前系统做成一个.box 后缀命名的镜像,类似 docker 的 image,可轻松实现环境的移植。
所以,使用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的网络有三种模式
1、较为常用是端口映射,就是将虚拟机中的端口映射到宿主机对应的端口直接使用 ,在Vagrantfile中配置:
config.vm.network :forwarded_port, guest: 80, host: 8080
guest: 80 表示虚拟机中的80端口, host: 8080 表示映射到宿主机的8080端口。
2、如果需要自己自由的访问虚拟机,但是别人不需要访问虚拟机,可以使用private_network,并为虚拟机设置IP ,在Vagrantfile中配置:
config.vm.network :private_network, ip: "192.168.1.104"
192.168.1.104 表示虚拟机的IP,多台虚拟机的话需要互相访问的话,设置在相同网段即可
3、如果需要将虚拟机作为当前局域网中的一台计算机,由局域网进行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高并发研习社群,为大家开启大厂之门