Vagrant 是一个可创建轻便、可复用的虚拟开发环境的跨平台工具,通过打包分可使所有开发成员使用统一的开发环境。

下面是我自己记录配置 Vagrant 的过程。

1、安装 VirtualBox

略。(Vagrant 也支持 VMware,不过需要收费)

2、安装 Vagrant

略。安装完成后在 CMD 输入 vagrant --version 可输出版本。

* 更改 Vagrant Box 镜像存储位置

当镜像文件较多或C盘空间较少时,就需要更改它的存放位置。默认存放在 C:\User\%USERNAME%\.vagrant.d

将 .vagrant.d 移到新位置,打开 CMD,输入

setx VAGRANT_HOME "X:/your/path/to/.vagrant.d"

将 VAGRANT_HOME 添加到用户环境变量。如果要对所有用户生效,那么可以添加到系统环境变量,在末尾加 /M 参数。

重新打开 CMD,输入 echo %VAGRANT_HOME%,将输出设置好的路径。

另外 VirtualBox 虚拟机文件默认也保存在系统盘,可以在 VirtualBox 设置中更改路径。

这里要区分两个概念:Box(镜像) 和 Machine(虚拟机)。他们的关系如同类与对象之间的关系,前者是模板,后者是实例。

3、下载 Box 镜像

我们需要一个基础 Box 镜像来构建 Vagrant 开发环境。

在这里查找你需要的系统镜像:https://atlas.hashicorp.com/boxes/search

我选择的是 ubuntu/trusty64,在 CMD 输入 vagrant box add ubuntu/trusty64 即可下载。

由于某些网络环境因素,下载速度可能很慢,可以选择搭梯子或到这里(https://github.com/chef/bento)用下载工具下载。

下载完成后,导入下载好的 Box 镜像到 Vagrant,等待一段时间。

vagrant box add ubuntu14. K:\YourPath\ubuntu-14.04.box

这里的 ubuntu14.04 是 Box 名称,配置 Vagrantfile 要用到。

输入 vagrant box list 可列出已导入的 Box 镜像。

4、初始化开发环境

新建一个虚拟开发环境的工作目录,CMD 切换到该路径(当没有切换路径时,部分 Vagrant CLI 命令需要附加虚拟机 ID 或 Name)。输入

vagrant init

将在文件夹下创建一个 Vagrantfile,是一个配置文件,用文本编辑器打开。

Vagrantfile 是用 Ruby 写的,不过我们没必要专门去了解它的语法知识,要修改的只是一些简单的变量赋值语句。

简单说明一下其中一些参数。

config.vm.box: Box 名称,必须是一个已导入的 Box 或公共 Box 镜像的简称。

config.vm.hostname: 虚拟机的主机名,注意命名规范。

config.vm.synced_folder: 主机与虚拟机的同步目录,可以共享文件。

config.vm.synced_folder "./data", "/vagrant_data"

第一个参数是主机的目录路径,这里是相对路径。第二个是虚拟机的目录路径,必须是绝对路径。

config.vm.network: 网络相关设置,主要有三种方式:端口映射(FORWARDED PORTS),私有网络(PRIVATE NETWORKS),公共网络(PUBLIC NETWORKS)。详细信息参见 Vagrant 文档。

config.vm.network "forwarded_port", guest: , host: 

表示将虚拟机的80端口映射到宿主机的8080端口。

配置完成后,用 vagrant up 启动虚拟机。

注意输出信息中有一行:

default:  (guest) =>  (host) (adapter )

表示将虚拟机的 22 端口映射到宿主机的 2222 端口,这个是 SSH 连接的端口号。这个端口号可以在 Vagrantfile 中配置。

最后找个ssh客户端连接到虚拟机:

ssh vagrant@127.0.0.1 -p 

vagrant halt 关闭虚拟机。

5、日常使用

打开 CMD,任意目录下输入 vagrant global-status 即可列出所有虚拟机。

>vagrant global-status
id name provider state directory
-------------------------------------------------------------------------
3d51pc7 default virtualbox poweroff K:/YourPath/ubuntu14.04

启动输入 vagrant up 虚拟机id

id 不必完整,但要求标识有唯一性,类似 git 的 commit id 的作用。由于我只有一个虚拟机,所以 id 部分输入 3d 即可。

>vagrant up 3d
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
(后面省略)

日常使用时,慎用 apt-get update、yum update 等更新系统,可能会导致无法挂载共享文件夹,需重装 VirtualBox Guest Additions 。

在 Windows 下部署 Vagrant的更多相关文章

  1. windows 下部署kafka 日记 转

    windows 下部署kafka 日记 转一.下载去apache 的官网(http://kafka.apache.org/downloads.html)下载最新的二进制版的压缩包.目前的最新版本是ka ...

  2. QT程序在windows下部署发布

    转载:http://www.cnblogs.com/Fan_Fan/archive/2010/05/29/1746860.html QT程序在windows下部署发布 以下包括了部分网上收集的,以及q ...

  3. Windows下部署ElasticSearch5.0以下版本

    Windows下部署ElasticSearch分ElasticSearch5.0以上版本(包括5.0)和ElasticSearch5.0以下版本两种情况,这两种安装方式有很大不同.今天首先说Elast ...

  4. 关于在windows下部署发布QT程序的总结

    原文请看:http://www.cnblogs.com/javaexam2/archive/2011/05/18/2632916.html 关于在windows下部署发布QT程序的总结 2008-06 ...

  5. linux centos7 和 windows下 部署 .net core 2.0 web应用

    centos7 下部署asp.net core 2.0应用 安装CentOS7 配置网络[可选] 安装.Net core2.0 创建测试Asp.net Core应用程序 正式部署项目 安装VMware ...

  6. windows 下部署 .netcore 到 docker

    前面我们演示了如何将 Asp.Net Core 程序部署到 iis 和 部署到 windows 服务.其实前面的都是铺垫,如何将 Asp.Net Core 站点部署到 docker 才是这个系列文章的 ...

  7. windows 下部署 .netcore 到 windows service

    接上一篇 <windows 下部署 .netcore 到 iis>,这一篇记录一下怎么将 Asp.Net Core 以 windows 服务的方式部署. 一.修改代码 其实也很简单,只要调 ...

  8. 使用Vagrant在Windows下部署开发环境

    做Web开发少不了要在本地搭建好开发环境,虽然说目前各种脚本都有对应的Windows版,甚至是一键安装包,但很多时候和Windows环境的相性并不是那么好,各麻烦的问题是实际部署的环境通常是Linux ...

  9. Windows 下配置 Vagrant 环境

    Vagrant是一个基于 Ruby 的工具,用于创建和部署虚拟化开发环境.它使用 Oracle 的开源VirtualBox虚拟化系统. Vagrant 在快速搭建开发环境方面是很赞的,试想一个团队中, ...

随机推荐

  1. JVM 平台上的各种语言的开发指南

    JVM 平台上的各种语言的开发指南 为什么我们需要如此多的JVM语言? 在2013年你可以有50中JVM语言的选择来用于你的下一个项目.尽管你可以说出一大打的名字,你会准备为你的下一个项目选择一种新的 ...

  2. Python从零开始(1)新手常问

    如何清除屏幕 如果是在Windows命令行中,输入 import os os.system('cls') 在IDEL中没有找到完美的清除屏幕的方法 网上提到用新建窗口的方法 如何退出Python提示符 ...

  3. WHMCS成功安装和使用方法及添加支付宝,PayPal收款教程

    一.WHMCS安装前准备 1.WHMCS官网: 1.官方首页:http://www.whmcs.com/ 2.WHMCS需要安装在一个带MysqL数据库的PHP服务器中,一般地我们日常安装的VPS控制 ...

  4. 第五次Java作业

    作业一: 文件显示列表框. 增加了下拉式组合框,text区域设置颜色为红色. import javax.swing.*; import java.awt.*; import java.io.File; ...

  5. AJAX格式

    var xmlHttp;function getXmlHttp(){ if(window.ActiveXObject){ xmlHttp = new ActiveXObject("MICRO ...

  6. PHP基础教程-54课-问题

    question: $arr = array(1,2,3,4); /*如何通过foreach 将数组变成 $arr = arry(2,4,6,8) */ 起初用: $arr = array(1,2,3 ...

  7. YII2 缩略图生成 第三方包修改

    "xj/yii2-thumb-action": "^2.0" 原本的上传路径是全路径 根据日期生成的上传文件夹 不适用 比如 : upload\article\ ...

  8. 为bootstrap添加更多自定义图标

    From: http://blog.csdn.net/mengxiangfeiyang/article/details/45224731 Twitter Bootstrap 真是前端开发的瑞士军刀,作 ...

  9. Nand Flash,Nor Flash,CFI Flash,SPI Flash 之间的关系

    前言:    在嵌入式开发中,如uboot的移植,kernel的移植都需要对Flash 有基本的了解.下面细说一下标题中的中Flash中的关系 一,Flash的内存存储结构    flash按照内部存 ...

  10. iOS GCD NSOperation NSThread等多线程各种举例详解(拷贝)

    2年多的iOS之路匆匆而过,期间也拜读来不少大神的博客,近来突然为自己一直做伸手党感到羞耻,是时候回馈社会.回想当年自己还是小白的时候,照着一些iOS多线程教程学,也只是照抄,只知其然.不知其所以然. ...