vagrant上手指南
什么是 vagrant
简单地说就是虚拟机管理器,自动化部署和管理虚拟机。
vagrant 可以用来干什么
- 打造隔离的、可共享的开发环境:根据配置脚本构建虚拟机环境,只需拷贝配置文件即可共享虚拟机;
- 构建网络、系统的测试环境:可集中管理多台虚拟机,自动化管理网络配置、系统信息。
为何选 vagrant
- 支持多种虚拟主机,其中包括 VirtualBox 、 VMware 和 Parallels 等;
- 可用多种自动化部署工具,其中包括 shell 脚本 、Puppet 、 Chef 等;
- 跨平台,可在 windows 、*nix 系统下运行;
需要理清的概念
- box : 也就是以供创建虚拟机的镜像,像是“画笔”,可以有多种画笔,创建虚拟机时选择其中一支画笔来作画(虚拟机)
- 虚拟机: 也就是平常所说的虚拟机,不过这里是由 vagrant 通过某 box 作为“模板”自动所创建的虚拟机
官网
安装
- 安装所需虚拟机软件
vagrant 需要一个虚拟机软件来支持虚拟镜像,所以安装哪款虚拟机软件,决定接下来用什么虚拟机镜像,以下都是以 VirtualBox 为例子。 - 安装 vagrant
到 http://downloads.vagrantup.com/ 下载最新的对应系统安装包,安装,本文均以 Vagrant 1.3.5 为例。
创建系统
- 添加 box 到 vagrant
-
远程添加
- 到 http://www.vagrantbox.es/ 复制所需系统 box url
- 在终端运行
vagrant box add {OS_name} {url}
,{OS_name} 为自定义的系统名称,{url} 为 box url
-
本地添加
- 下载系统 box 到本地
到 http://www.vagrantbox.es/ 下载所需系统box - 在终端运行
vagrant box add {OS_name} {本地box路径}
- 下载系统 box 到本地
-
远程添加
以上添加的 box 都是全局的,也就是在整个物理机中都可以使用,box 文件会解压放到
~/.vagrant.d/boxes
,所以原 box 文件可以移动/删除* - 创建虚拟机
- 创建一个工作目录,cd 进去
- 在终端运行
vagrant init {OS_name}
,目录下生成Vagrantfile
配置文件(Ruby文件)
vagrant 实际上是通过 virtualBox 在 ~/VirtualBox VMs/ 新建一个虚拟机,而镜像是从 ~/.vagrant.d/boxes 复制的。
启动虚拟机
- cd 到 vagrant init 的目录
- 在终端运行
vagrant up
,最后会显示 SSH 映射的端口,一般为 2222
SSH连接
vagrant ssh
或 用其它ssh软件,连接 127.0.0.1:2222
默认账户和密码都是vagrant
(否则在 box 的下载页面有提示),本地工作目录已经映射到虚拟机的 /vagrant
目录
关闭虚拟机
- 一般情况可在 SSH 登陆下
shutdown -h now
关闭主机 - 由vagrant强制关闭:在物理机的虚拟机目录下,终端运行
vagrant halt
其它命令
- 暂停虚拟机:
vagrant suspend
- 重启虚拟机:
vagrant resume
- 重新载入虚拟机配置:
vagrant reload
- 查看主机状态:
vagrant status
- 移除虚拟机 box:
vagrant box remove {OS_name}
- 删除虚拟机
- 普通删除:
vagrant destroy {vm_name}
- 强制删除:
vagrant destroy -f {vm_name}
{vm_name} 为虚拟机的名称,直接在 vagrant 创建虚拟机的目录执行,可省略,运行
vagrant status
可查看当前虚拟机名称,默认为default
*
- 普通删除: