virtualbox+vagrant管理虚拟机
使用vagrant来管理virtualbox的虚拟机
1.介绍
VirtualBox 是 Oracle 的 x86 和 AMD64/Intel64 虚拟化软件。它是一个免费的开源虚拟化产品,根据 GNU 通用公共许可证 (GPL) 第 2 版分发。
Vagrant 是一个用来构建和管理虚拟机环境的工具。Vagrant 有着易于使用的工作流,并且专注于自动化,降低了开发者搭建环境的时间,提高了生产力。解决了“在我的机器上可以工作”的问题。
Vagrant 是为了方便的实现虚拟化环境而设计的,使用 Ruby 开发,基于 VirtualBox 等虚拟机管理软件的接口,提供了一个可配置、轻量级的便携式虚拟开发环境。使用 Vagrant 可以很方便的就建立起来一个虚拟环境,而且可以模拟多台虚拟机,这样我们平时还可以在开发机模拟分布式系统。
2.安装
安装 VirtualBox
进入 VirtualBox 的主页,点击下载按钮,即可进入下载页面。
安装 Vagrant
在 Vagant 网站下载最新的版本,根据自己的操作系统选择对应的版本下载即可。
Vagrant 的安装程序会自动把安装路径加入到 PATH 环境变量,所以,这时候可以通过命令行执行
vagrant version
检查是否安装成功:1
2
3> vagrant version
Installed Version: 2.2.7
Latest Version: 2.2.8配置VirtualBox 环境变量
创建虚拟机会占用较多的磁盘空间,在 Windows 系统下默认的虚机创建位置是在 C 盘,所以最好配置到其它地方。
配置方法:
启动 VirtualBox 后,通过菜单
管理
->全局设定
,或者按下快捷键Ctrl + g
,在全局设定对话框中,修改默认虚拟电脑位置
,指定一个容量较大的磁盘。配置Vagrant 环境变量
通过 Vagrant 创建虚机需要先导入镜像文件,也就是
box
,它们默认存储的位置在用户目录下的.vagrant.d
目录下,对于 Windows 系统来说,就是C:\Users\用户名\.vagrant.d
。配置方法:
在 Windows 系统中,可以这样操作:新建系统环境变量,环境变量名为
VAGRANT_HOME
,变量值为E:\VirtualBox\.vagrant.d
3.Vagrant 使用
下载虚拟机镜像
Vagrant 有一个镜像网站,里面列出了都有哪些镜像可以用,并且提供了操作文档
添加 box
打开cmd窗口
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15查看列表
vagrant box list
There are no installed boxes! Use `vagrant box add` to add some.
添加box
vagrant box add e:\Downloads\CentOS-7.box --name centos-7
==> box: Box file was not detected as metadata. Adding it directly...
==> box: Adding box 'centos-7' (v0) for provider:
box: Unpacking necessary files from: file:///e:/Downloads/CentOS-7.box
box:
==> box: Successfully added box 'centos-7' (v0) for 'virtualbox'!
查看列表
vagrant box list
centos-7 (virtualbox, 0)新建虚拟机
先创建一个目录,然后执行初始化操作
1
2
3
4
5
6
7
8
9
10创建目录
mkdir demo
cd demo
初始化虚拟机
vagrant init centos-7
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant. 这个命令会生成一个
Vagrantfile
,可以设置网络、主机名等启动虚机
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'centos-7'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: demo_default_1588406874156_65036
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
==> default: Forwarding ports...
default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: 127.0.0.1:2222
default: SSH username: vagrant
default: SSH auth method: private key查看虚机的状态
1
2
3
4
5
6
7
8
9
10vagrant status
Current machine states:
default running (virtualbox)
The VM is running. To stop this VM, you can run `vagrant halt` to
shut it down forcefully, or you can run `vagrant suspend` to simply
suspend the virtual machine. In either case, to restart it again,
simply run `vagrant up`.命令清单
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15vagrant box add 添加box
vagrant init 初始化 box
vagrant up 启动虚拟机
vagrant ssh 登录虚拟机
vagrant box list 列出 Vagrant 当前 box 列表
vagrant box remove 删除相应的 box
vagrant destroy 停止当前正在运行的虚拟机并销毁所有创建的资源
vagrant halt 关机
vagrant package 把当前的运行的虚拟机环境进行打包为 box 文件
vagrant plugin 安装卸载插件
vagrant reload 重新启动虚拟机,重新载入配置文件
vagrant resume 恢复被挂起的状态
vagrant status 获取当前虚拟机的状态
vagrant suspend 挂起当前的虚拟机
vagrant global-status 查看当前 vagrant 管理的所有 vm 信息
4.Vagrantfile
示例:
1 | # -*- mode: ruby -*- |
5. 其他
导出box
1 | vagrant package --base centos-lnmp_default_1562568215794_41270 --output outout.box |