vagrant 搭建开发环境

223 阅读2分钟

1. 初识vagrant

官网:www.vagrantup.com/

刚开始做开发时,都是将开发环境配置在自己的电脑上,随着接触的东西越来越多,电脑上各种环境交杂,非常麻烦,并且时不时因为某种原因将电脑重装后,一切环境都要重来。所以打造一个属于自己并且可以移动的环境是非常重要的。

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 镜像

3. 使用 vagrant 导入 Java 开发环境

  1. 新建目录
$ pwd
/i/vagrant/centos7-docker
  1. 添加镜像到 vagrant
vagrant box add centos7-docker /i/box/centos7-docker.box

参数说明: centos7-docker 表示指定名称,如果名称使用base,之后可以直接使用 /centos7-docker.box 时box镜像文件的文件名,这里是本地保存box的路径,也可以是下载box的网址,如果是网址的话,Vagrant会自动启动下载

  1. 初始化虚拟机
$ vagrant init centos7-docker

初始化镜像之后,在当前目录生成一个虚拟机的配置文件 Vagrantfile,通过该配置文件,可以配置端口映射,虚拟机IP,目录映射等。 4. 启动虚拟机

 # 启动全部虚拟机节点 , 一共启动 3个节点
$ vagrant up  

# 或者,指定名字,启动部分虚拟机节点 , 启动 cdh1 节点
$ vagrant up  vm1  # 启动名字为vm1的虚拟机节点

问题处理

Windows下SSH登陆时的“Bad owner or permissions”的问题

image.png

解决思路

修改 ssh.exe 程序为Git带的ssh

C:\Users\swwan>where ssh
C:\Windows\System32\OpenSSH\ssh.exe

解决办法

修改系统全局变量

image.png

如何快速登录虚拟机

执行 vagrant ssh-config 命令,拷贝执行结果到新建的文本文件中,命名为config,并放到 用户目录下的 .ssh 文件夹下,便可以方便的登录虚拟机了 ssh vm1

image.png

$ 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