三生有幸,四季如春 | 言文

vagrant:简单创建一个虚拟机

2018.02.01

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

安装

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

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

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

$ sudo pacman -S vagrant

创建和启动

Official Getting Start

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

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

$ mkdir <path>
$ cd <path>
$ vagrant init archlinux/archlinux

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

$ vagrant run 
$ vagrant ssh

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

一些其他的功能

关机

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

$ vagrant destory

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

共享文件夹

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

快照

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

$ 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 等技术适合,用户需要选择合适自己的虚拟化方案。

comments powered by Disqus