环境准备
virtualbox是免费,不必要费劲去找破解,下载就可以用。 使用virtualbox每次安装虚拟机,需要你去下载iso,然后设置虚拟机硬件配置,使用iso创建虚拟器。一系列的手工操作,如果你只创建一两个虚拟机练练手,是足够的。 如果需要创建10个虚拟机,就需要重复10次。这时候,vagrant就派上用场了。
Vagrant基于配置文件,一键创建N台设备。
下载安装
virtualbox
进入virtualbox下载地址,根据自己的环境选择下载不同的软件版本即可。比如,我的机器是win10环境,我选择windows Hosts版本。
下载后,一路默认安装即可,安装即可。
vagrant
进入vagrant官网,根据本机操作系统下载需要的版本。
直接安装即可,安装程序会自动添加vagrant到环境变量PATH中。vagrant没有图形界面,安装成功后重启电脑。打开命令行,输入命令出现一下内容,说明安装成功
后续主要介绍vagrant的相关使用.
vagrant使用
概念
box: 虚拟机镜像
provider: 虚拟服务提供者,比如virtualbox, VMware;
box 获取方式
1. 官网获取
box 可以从 官方镜像库检索:
直接配置所需要的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虚拟机.
首先,用户名一定要使用vagrant,使用root是登录不成功的; 使用publicKey登录方式,根据步骤配置虚拟机的private_key为登录秘钥。配置完成后,即可登录成功。
文件同步
vagrant提供了文件同步的方式,我们只介绍从宿主机到虚拟机的同步方式。其他更多方式参见官方文档。
默认vagrant将当前vagrant工程根目录(也就是VagrantFile所在目录)映射到虚拟机的/vagrant目录
映射并不是实时的,在虚拟机启动时会进行一次文件同步。 如果在虚拟机运行过程要做数据同步,需要执行命令:
vagrant rsync
也可以通过配置文件,配置一下文件同步的目录.
最佳实践
可以使用Provision,为每一个虚拟机配置一套初始化脚本,来加强虚拟机的初始化。
VagrantFile放到开发工程中,提交到git,其他开发小伙伴也可以下载后,一键启动虚拟机环境,就可以和你拥有一样的虚拟机环境。
回顾
通过刚才的过程,可以完成软件安装,镜像下载,虚拟机配置和启动。最终我们可以拥有centOS7的虚拟机环境,使用secureCRT工具来连接使用。