Vagrant实践整理

介绍Vagrant的实践整理。

很早就听说vagrant的大名,是个创建和管理虚机环境的工具,但一直没有机会实践下,近日我的VirtuablBox让我搞砸了,决定试用下,便于快速搭建各种环境。

安装vagrant

图省事儿的话,直接sudo apt install vagrant就可以安装,不过版本有点儿低,是1.8.1。

通过官方下载地址, 可直接下载最新的安装包。我这里安装的是1.9.4

➜  ~ vagrant -v
Vagrant 1.9.4

常用命令

一个打包好的操作系统在Vagrant中称为Box,即Box是一个打包好的操作系统环境,网上有很多打包好的环境,官方也有下载各种Boxes的地址

一般使用流程如下:

  • vagrant box add 添加box的操作
  • vagrant init 初始化box的操作
  • vagrant up 启动虚拟机的操作
  • vagrant ssh 登录虚拟机的操作

额外还有些常用的命令

  • vagrant box list 显示当前已经添加的box列表
  • vagrant box remove 删除相应的box
  • vagrant halt -f 冷关机(切断电源)
  • vagrant suspend 挂起当前的虚拟机

实践

目前vagrant 1.9.4支持适配VirtualBox, VMware,Hyper-V, 和 Docker,本文使用的是VirtualBox。

需要你本机已经安装virtuablbox环境

一般只要如下初始化,就会有个最新的centos-7虚机环境

➜  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.
➜  ls
Vagrantfile
➜  vagrant up --provider virtualbox
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Box 'centos/7' could not be found. Attempting to find and install...
    default: Box Provider: virtualbox
    default: Box Version: >= 0
==> default: Loading metadata for box 'centos/7'
    default: URL: https://atlas.hashicorp.com/centos/7
==> default: Adding box 'centos/7' (v1704.01) for provider: virtualbox
    default: Downloading: https://atlas.hashicorp.com/centos/boxes/7/versions/1704.01/providers/virtualbox.box
    default: Progress: 2% (Rate: 94086/s, Estimated time remaining: 1:52:14)

但如上需要依赖外网, 国内环境一般会下载失败,我这里介绍一种通过本地iso创建Box的方法,然后通过本地Box启动虚机环境。

这个iso转box的方法需要Packer工具,此工具同样和vagrant都是HashiCorp公司出品的,目前国外很火的工具, 支持创建各式各样的镜像,包括各种国内外主流的公有云, openstack的镜像,甚至docker镜像都是可以OK的。

参考