vagrant:简单创建一个虚拟机

“借你的镜像用一用”
本来想等 Ciel 那篇搞定之后再写这个,但是出于某种拣软柿子捏的心态,还是先写写这个吧(在水博客的道路上越走越远…

安装

Vagrant 是一个可以用来快速创建虚拟机的工具,支持多种虚拟化技术。
官网地址

首先你需要本地至少有一个虚拟环境,我这里是用的virtualbox,有时候你可能会遇到内核更新之后无法启动 vagrant 或者虚拟机的问题,那是可能因为模块还没有同步更新,如果想解决这一问题的话请使用-dkms版本。

接下来就是安装 Vagrant 了,Debian、CentOS、Windows、Mac OS X 和 Archlinux 都是直接有可以安装的,可以见官网地址。

1
$ sudo pacman -S vagrant

创建和启动

Getstart

这里以创建一个 Archlinux 虚拟机为例,可能会在局部地区出现镜像下载不动的情况,请自行解决。

更多的镜像可以在Vagrant Cloud自行搜索,也可以注册帐号提交自己的镜像。

1
2
3
$ mkdir {path}
$ cd {path}
$ vagrant init archlinux/archlinux

启动这个虚拟机也同样很简单。

1
2
$ vagrant run 
$ vagrant ssh

可以看到虚拟机已经启动了,上面只是以ssh的形式登陆进去,vagrant 会自动帮你配置好ssh keyNAT网络,这些都可以在{path}下的Vagrantfile进行配置和修改。

一些其他的功能

关机

关机的话你可以选择ssh进去poweroff,也可以利用 virtualbox 在外部关闭。

1
$ vagrant destory

一行就会删除虚拟机,所以在使用的时候请勿手滑。

共享文件夹

Vagrant 会在虚拟机的根目录下创建一个名为/vagrant的目录,这个目录会默认映射到你的{path}目录。

快照

快照命令实际上就相当于virtualbox本身的那个快照功能,只是将其变得可以用命令行来操作了,有常用的截取、删除、保存快照等等功能。

1
2
3
4
5
6
7
8
9
10
11
12
$ vagrant snapshot --help
Usage: vagrant snapshot <subcommand> [<args>]

Available subcommands:
delete
list
pop
push
restore
save

For help on any individual subcommand run `vagrant snapshot <subcommand> -h`

其他

更多命令的使用可以参见官方文档

小结

其实 Vagrant 只是 HashiCorp 所提供的工作流程解决方案中的第一步,用于快速构建和测试,放在这个流程中来说它是合适的,但真正就快速部署来说其本身并不一定比 docker + k8s 等技术适合,用户需要选择合适自己的虚拟化方案。