环境搭建篇-本机虚拟环境VirtualBox + Vagrant搭建centOS运行环境

393 阅读3分钟

环境准备

virtualbox是免费,不必要费劲去找破解,下载就可以用。 使用virtualbox每次安装虚拟机,需要你去下载iso,然后设置虚拟机硬件配置,使用iso创建虚拟器。一系列的手工操作,如果你只创建一两个虚拟机练练手,是足够的。 如果需要创建10个虚拟机,就需要重复10次。这时候,vagrant就派上用场了。

Vagrant基于配置文件,一键创建N台设备。

下载安装

virtualbox

进入virtualbox下载地址,根据自己的环境选择下载不同的软件版本即可。比如,我的机器是win10环境,我选择windows Hosts版本。

image.png

下载后,一路默认安装即可,安装即可。

image.png

vagrant

进入vagrant官网,根据本机操作系统下载需要的版本。

直接安装即可,安装程序会自动添加vagrant到环境变量PATH中。vagrant没有图形界面,安装成功后重启电脑。打开命令行,输入命令出现一下内容,说明安装成功

image.png

后续主要介绍vagrant的相关使用.

vagrant使用

概念

box: 虚拟机镜像

provider: 虚拟服务提供者,比如virtualbox, VMware;

box 获取方式

1. 官网获取

box 可以从 官方镜像库检索:

image.png

直接配置所需要的box名称即可,当你启动虚拟机时,会从官网镜像库下载镜像后创建虚拟机。

2. 国内镜像

从国内镜像mirrors.ustc.edu.cn/查找需要的镜像,vagrant镜像一般在vagrant目录下box文件,下载后使用一下命令,添加到本地box库.

vagrant box add centos7 D:/CentOS-7.box

vagrant简单使用

初始化

vagrant init

在一个目录下执行init命令,可以初始化一个VagrantFile.

配置文件VagrantFile如下:

Vagrant.configure("2") do |config|
  config.vm.box = "centos7"

  config.vm.define "web1" do |web|
    web.vm.box = "centos7"
    web.vm.network "private_network", ip: "192.168.14.10"
  end

  config.vm.define "web2" do |web|
    web.vm.box = "centos7"
    web.vm.network "private_network", ip: "192.168.14.11"
  end
end  

该配置文件,使用镜像centos7配置了两个虚拟机, ip分别为192.168.14.10和192.168.14.11。

vagrant up #启动所有配置的虚拟机

或者

vagrant up web1 #指定启动web1虚拟机

vagrant初始化启动完成后,会初始化root用户和vagrant用户,密码都是vagrant; 默认不允许密码方式登录.

进入操作虚拟机

方式1 使用vagrant命令

vagrant ssh web1

登录后,默认是vagrant用户,使用su root可切换到root用户,密码是vagrant;

方式2 使用ssh客户端

本实例使用secureCRT作为ssh客户端来访问vagrant虚拟机.

image.png

首先,用户名一定要使用vagrant,使用root是登录不成功的; 使用publicKey登录方式,根据步骤配置虚拟机的private_key为登录秘钥。配置完成后,即可登录成功。

文件同步

vagrant提供了文件同步的方式,我们只介绍从宿主机到虚拟机的同步方式。其他更多方式参见官方文档。

默认vagrant将当前vagrant工程根目录(也就是VagrantFile所在目录)映射到虚拟机的/vagrant目录

image.png

映射并不是实时的,在虚拟机启动时会进行一次文件同步。 如果在虚拟机运行过程要做数据同步,需要执行命令:

vagrant rsync

也可以通过配置文件,配置一下文件同步的目录.

最佳实践

可以使用Provision,为每一个虚拟机配置一套初始化脚本,来加强虚拟机的初始化。

VagrantFile放到开发工程中,提交到git,其他开发小伙伴也可以下载后,一键启动虚拟机环境,就可以和你拥有一样的虚拟机环境。

回顾

通过刚才的过程,可以完成软件安装,镜像下载,虚拟机配置和启动。最终我们可以拥有centOS7的虚拟机环境,使用secureCRT工具来连接使用。