Vagrant之入门

:-}

准备

下载 VirtualBox 虚拟器 : https://www.virtualbox.org/
下载安装 Vagrant : http://www.vagrantup.com/
下载使用的 box (这里的 box 指的是系统) : http://www.vagrantbox.es/
在本地建立一个工作文件夹

VirtualBox是虚拟机,Vagrant是管理虚拟机的工具,.box文件相当于在虚拟机内构建系统的镜像。

首先需要下载并安装VirtualBox,Vagrant,准备好镜像文件(.box)。

部署

查看当前添加进 vagrant 的镜像

vagrant box list 

一开始是没有添加 box 镜像, 我们执行 vagrant box add 系统名字 box镜像;另一种情况是在线拉取镜像,可以忽略这一步

vagrant box add hashicorp/precise64

hashicorp/precise64 镜像可以是 add 之前准备好的,放在执行命令的当前目录的,也可以没有准备,在线拉取,是否提前下载镜像,这取决于你的网速。当开发团队统一开发环境而分发给你一个镜像,那就直接add这个镜像文件的文件名就可以了,当你初始化的时候会默认选择list的镜像文件。

初始化镜像

vagrant init hashicorp/precise64

该命令会在当前目录下创建Vagrantfile,并且指定所使用的box为ubuntu/trusty64,该box由Hashicorp官网提供。此时,Vagrant发现box的名字的格式为“用户名/box名”,则会使用 “https://atlas.hashicorp.com/用户名/box名” 来下载该box。对于非官网提供的box,可以通过以下命令创建:

vagrant init my-box https://boxes.company.com/my.box

此时你可以通过更改Vagrantfile,来完成你的配置。因为我们虚拟机默认只分配一个访问外网的 IP, 项目使用的 IP 得手动设置打开 Vagrantfile 找到29行(我的配置文件在29行)设置一个私有 IP,默认是192.168.33.10。

其中,my-box为该box的名字,后面的URL为该box的下载地址。

启动虚拟机

vagrant up

管理

登录到虚拟机

vagrant ssh

此时vagrant将使用默认的用户vagrant以及预设的SSH公钥密钥键值对直接登录虚拟机。

关闭虚拟机:

vagrant halt

删除虚拟机:

vagrant destroy

请注意,vagrant destroy只会删除虚拟机本身,也即你在Virtualbox将看不到该虚拟机,但是不会删除该虚拟机所使用的box。

删除某个box的命令

vagrant box remove box-name

虚拟机里面的/vagrant 这个文件夹是和当前目录保持同步。是不是很有趣,这样我们以后从服务器拉取下来的项目放在虚拟机中,操作系统的本地保目录持同步,这样关闭虚拟机或者虚拟机异常退出了,项目也不会随之销毁,vagrant的带来的开发优势显而易见。

基础命令

$ vagrant box add NAME URL #添加一个box
$ vagrant box list #查看本地已添加的box
$ vagrant box remove NAME virtualbox #删除本地已添加的box,如若是版本1.0.x,执行$ vagrant box remove NAME
$ vagrant init NAME #初始化,实质应是创建Vagrantfile文件
$ vagrant up #启动虚拟机
$ vagrant halt #关闭虚拟机
$ vagrant destroy #销毁虚拟机
$ vagrant reload #重启虚拟机
$ vagrant package #当前正在运行的VirtualBox虚拟环境打包成一个可重复使用的box
$ vagrant ssh #进入虚拟环境
*$ vagrant port #查看ip和端口

官方文档

全部vagrant命令请查询 : https://www.vagrantup.com/docs/cli/index.html

要关注

具体关于vagrant的安装,使用和项目实践,可以关注我的看云,地址如下

http://doc.martist.cn