一:vagrant、virtualbox下载安装
Vagrant只是一个方便设置虚拟机的便携式工具,它底层支持VirtualBox、VMware甚至AWS作为虚拟机系统,所以第一步需要先安裝Vagrant和VirtualBox。
vagrant下载地址:http://downloads.vagrantup.com/
VirtualBox是Oracle开源的虚拟化系统,它支持多个平台,下载地址:
https://www.virtualbox.org/wiki/Downloads
Vagrant和virtualbox按引导步骤安装即可。
安装后,可在终端输入命令:vagrant --version验证是否安装成功。
如果没有验证成功,需要检查是否在环境变量path中配置了vagrant。将{vagrant安装目录}\bin配置到path中。
下面分析一下.iso和.box镜像文件的区别:
(1)打包了操作系统的*.iso文件是无法被vagrant直接使用的 ,.box文件是vagrant可接受的基础模板文件 ;
(2)虚拟机中可经Virtualbox界面的手动安装*.iso文件启动VM,VM可被vagrant package命令打包成为 *.box文件 ;(3).box文件可被vagrant box add命令安装为 vagrant box,vbox可被vagrant在Vagrantfile中指定为 VM 运行的基础模板;
二:Vbox镜像生成
使用对象:研发人员、测试人员
前提:已安装vagrant和virtualbox
2.1添加基本Vagrant -box
给vagrant添加基本box镜像,相当于虚拟机的操作系统镜像。Box可以在官网下载:VBox下载地址:http://www.vagrantbox.es/
在本地创建一个存储Vagrantfile的目录,如:vagrant_test,将下载的vbox镜像也放在该目录下。进入到vagrant_test目录下,执行命令:
vagrant box add test centos-7.0-x86_64.box
——test:给box的命名
——centos-7.0-x86_64.box:box名称及路径
注意:下面的命令尽量都在vagrant_test目录下执行。
这里我下载的是CentOS7,也可以下载Ubuntu 版本:
(1)Ubuntu precise 64 VirtualBox:http://files.vagrantup.com/precise64.box
(2)Ubuntu 16 Server (Xenial Xerus) :https://atlas.hashicorp.com/gbarbieru/boxes/xenial
2.2初始化运行环境
(1)进入该目录中,用以上镜像test初始化当前目录环境
(2)vagrant init test
注意:初始化后默认用户名为vagrant
2.3启动虚拟机:vagrant up
启动后打开virtualbox,可以查看到运行中的虚拟机
2.4登录:vagrant ssh
接下来就是要在虚拟机中配置各种运行环境和参数了
2.5修改vagrantfile配置文件
修改后要执行命令:vagrant reload重新加载Vagrantfile文件使之生效。
2.6在虚拟机中安装基础环境
(1)将这些安装包放到设置的共享文件夹中,连接到虚拟机中vagrant ssh
(2)切换root登录
vagrant的默认登录用户和密码为:vagrant/vagrant
root用户的登录密码为:vagrant
# su root
#密码:vagrant
(3)进入共享文件夹目录下,安装jdk、redis、Nginx、tomcat等
2.7打包
以上设置没问题后,就需要把这个虚拟机打包成vagrant box,以便在任何地方重用。
打包前要先关闭虚拟机:vagrant halt
(1)如果只有一个虚拟机且打包在当前目录下,则使用命令:vagrant package
打包后box自动命名为package.box
(2)如果要指定打包哪个虚拟机,且打包后box的名称,则使用命令:
vagrant package --base --output
——base_name:虚拟机名称
——output_name:打包后box的名称
即可将当前虚拟机打包成package.box镜像文件,存放在当前运行目录下。
打包完成后,将生成的.box文件发给同事,就可以完成环境共享了。
三:自动化环境搭建
前提:已安装vagrant和virtualbox
载入新的VBox前,如果以前初始化过,需要先删除原来的VBox。执行vagrant destroy命令把这个环境销毁掉,再删除Vagrantfile文件:
(1)查看vagrant下的box列表:vagrant box list
(2)删除box:vagrant box remove 需要输入y确认
网友评论