1. 初识vagrant
刚开始做开发时,都是将开发环境配置在自己的电脑上,随着接触的东西越来越多,电脑上各种环境交杂,非常麻烦,并且时不时因为某种原因将电脑重装后,一切环境都要重来。所以打造一个属于自己并且可以移动的环境是非常重要的。
vagrant 是一个很适合开发者的虚拟环境部署工具,本身集成了主流的虚拟器管理工具,支持 vmvare 和 virtualbox。
vagrant 的精髓在一个 Vagrantfile 里面,和 docker 的 Dockerfile 功能上一样。我们只需要把需要安装部署的步骤写在 Vagrantfile 里面,便可以实现轻松部署。vagrant 还支持把当前系统做成一个.box 后缀命名的镜像,类似 docker 的 image,可轻松实现环境的移植。
2. 准备工作:
安装 VirtualBox Vagrant GitBash
当前安装的版本为:
C:\Users\Administrator>vagrant -v
Vagrant 2.3.7
C:\Users\Administrator>git --version
git version 2.20.1.windows.1
下载 box 镜像
官方封装好的基础镜像:
Ubuntu precise 32 VirtualBox http://files.vagrantup.com/precise32.box
Ubuntu precise 64 VirtualBox http://files.vagrantup.com/precise64.box
如果需要其他系统的镜像,可以来这里下载:http://www.vagrantbox.es/
正在使用的 box 镜像
-
app.vagrantup.com/zjj/boxes/c…
- 基于 CentOS 7.8 封装
- 已安装 Docker(redis/mysql/rabbitmq/kibana)
3. 使用 vagrant 导入 Java 开发环境
- 新建目录
$ pwd
/i/vagrant/centos7-docker
- 添加镜像到 vagrant
vagrant box add centos7-docker /i/box/centos7-docker.box
参数说明: centos7-docker 表示指定名称,如果名称使用base,之后可以直接使用 /centos7-docker.box 时box镜像文件的文件名,这里是本地保存box的路径,也可以是下载box的网址,如果是网址的话,Vagrant会自动启动下载
- 初始化虚拟机
$ vagrant init centos7-docker
初始化镜像之后,在当前目录生成一个虚拟机的配置文件 Vagrantfile,通过该配置文件,可以配置端口映射,虚拟机IP,目录映射等。 4. 启动虚拟机
# 启动全部虚拟机节点 , 一共启动 3个节点
$ vagrant up
# 或者,指定名字,启动部分虚拟机节点 , 启动 cdh1 节点
$ vagrant up vm1 # 启动名字为vm1的虚拟机节点
问题处理
Windows下SSH登陆时的“Bad owner or permissions”的问题
解决思路
修改 ssh.exe 程序为Git带的ssh
C:\Users\swwan>where ssh
C:\Windows\System32\OpenSSH\ssh.exe
解决办法
修改系统全局变量
如何快速登录虚拟机
执行 vagrant ssh-config 命令,拷贝执行结果到新建的文本文件中,命名为config,并放到 用户目录下的 .ssh 文件夹下,便可以方便的登录虚拟机了 ssh vm1
$ vagrant ssh-config
Host vm1
HostName 127.0.0.1
User vagrant
Port 2001
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
PasswordAuthentication no
IdentityFile I:/vagrant/centos7-docker/.vagrant/machines/vm1/virtualbox/private_key
IdentitiesOnly yes
LogLevel FATAL
PubkeyAcceptedKeyTypes +ssh-rsa
HostKeyAlgorithms +ssh-rsa