用VirtualBox+Vagrant搭建开发环境
简介
VirtualBox是一种跨平台的虚拟化应用,可以在宿主主机上通过安装镜像来模拟出其他操作系统环境。
Vagrant是一种用于构建、管理虚拟机环境的工具,减少开发环境搭建时间,提高生产力。
VirtualBox
安装
- 根据你当前主机操作系统类型下载相应的VirtualBox,当前最新版本VirtualBox 6.0.0,直接安装即可
- 下载与VirtualBox 6.0.0匹配的Extension Pack
配置
- 指定虚拟机文件存储路径
File
->Preferences
->General
->Default Machine Folder
- 添加VirtualBox 6.0.0 Extension Pack
File
->Preferences
->Extensions
->+
使用
- 通常,我们要手动下载虚拟机文件,然后在VirtualBox中手动配置、创建虚拟机等
- 这次,我们借助Vagrant来实现自动化,详见下方
Vagrant
- 根据你当前主机操作系统类型下载相应的Vagrant,直接安装即可
- Windows下安装要注意关闭Hyper-V
- 【控制面板】-【程序与功能】-【打开或关闭Windows功能】-取消【Hyper-V】勾选
Vagrant Box
简介
下载
- 在上方的官方网址中搜索CentOS,注意Provider为VirtualBox,当前最新1812.01
- 下载链接:
https://app.vagrantup.com/centos/boxes/7/versions/{version}/providers/{provider}.box
{version} = 1812.01
{provider} = virtualbox
https://app.vagrantup.com/centos/boxes/7/versions/1812.01/providers/virtualbox.box
快速使用
添加Vagrant Home环境变量
- 添加环境变量
VAGRANT_HOME = "G:\vagrant"
- 将环境变量
VAGRANT_HOME
添加到PATH=%PATH%;%VAGRANT_HOME%
创建工作目录
1
2
|
$ mkdir -p ~/vagrant/centos7
$ cd ~/vagrant/centos7
|
添加插件
1
2
|
# 安装Vagrant插件自动安装virtualbox guest additions
[~/vagrant/centos7]$ vagrant plugin install vagrant-vbguest
|
添加Box文件
1
2
3
4
|
# 手动添加一个名为name的Box
[~/vagrant/centos7]$ vagrant box add {box_name} {/path/to/local/box or /url/to/web/box}
# 查看
[~/vagrant/centos7]$ vagrant box list
|
实例化虚拟机
1
2
|
# 实例化一个name虚拟机
[~/vagrant/centos7]$ vagrant init {box_name}
|
配置Vagrantfile
基础配置
配置网络
开启密码登录
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
# 启动虚拟机
[~/vagrant/centos7]$ vagrant up
# SSH登录
[~/vagrant/centos7]$ vagrant ssh
# 开启密码登录
$ sudo sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config
$ sudo systemctl restart sshd
# 从虚拟机中退出
$ exit
# 停止虚拟机
[~/vagrant/centos7]$ vagrant halt
|
- 可以使用Xshell等工具,利用用户名和密码登录,默认均为vagrant。
- 地址:127.0.0.1:2222
打包虚拟环境
1
2
3
4
5
|
# 查看当前运行状态
[~/vagrant/centos7]$ vagrant status
# 将当前运行的虚拟机换环境打包成可重用的box,名称为{pkg_virtualbox}.box
[~/vagrant/centos7]$ vagrant package --output /path/to/{pkg_virtualbox}.box
|
将该打包后的box重新加载到Vagrant,此后根据该打包后的box创建虚拟运行环境更方便
命令简介
Box管理命令
1
2
3
4
5
6
7
|
#添加一个box
$ vagrant box add {box_name} {path/to/local/box or url/to/web/box}
#查看本地已添加的box
$ vagrant box list
$ vagrant box remove {box_name}
|
虚拟机管理命令
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
# 根据{name}Box初始化一个虚拟机
$ vagrant init {box_name}
#根据目录中的Vagrantfile启动虚拟机
$ vagrant up
# 暂停本地环境
$ vagrant suspend
# 恢复本地环境
$ vagrant resume
#关闭虚拟机
$ vagrant halt
#重启虚拟机=修改了Vagrantfile后,使之生效相当于先halt再up
$ vagrant reload
#进入虚拟环境
$ vagrant ssh
#退出虚拟机环境
$ exit
#当前正在运行的虚拟环境打包成一个可重复使用的box
$ vagrant package
#销毁虚拟机
$ vagrant destroy
|
Vagrantfile高级定制
TODO
参考链接
文章作者
longyue0521
上次更新
2019-01-01
许可协议
"署名-非商业性使用-相同方式共享 4.0 国际" 转载请保留作者及原文链接