Vagrant是一个基于 Ruby 的工具,用于创建和部署虚拟化开发环境。它使用 Oracle 的开源VirtualBox虚拟化系统。

Vagrant 在快速搭建开发环境方面是很赞的,试想一个团队中,大家开发同一个东西,以前每个人都要自己搭建一套开发环境 ,有了 Vagrant,你只需要搭建一份,然后分发给所有团队成员,这样大家都立刻就有完全相同的开发环境了,即便有成员在Windows 下,也可以方便的使用 Linux 环境开发。如果团队中来了新人,也不需要手把手教他怎么搭建开发环境,给他丢一个Box 就好了,只要他掌握了 Vagrant 的使用方法,立刻就可以融入到开发中来,而不需要费心去安装复杂的环境。

Vagrant 的跨平台的特性简直是太棒了,这都要利益于 VirtualBox 这样一款优秀的软件和 Vagrant 这些天才工程师们。

Vagrant 还支持使用Chef和Puppet来维护你的虚拟开发环境,不过因为我对这两个工具并不熟悉,本文中不作介绍,只简单 介绍如果在 Windows 下配置一个 Vagrant 环境。

安装 Vagrant

从 Vagrant 官网下载最新的 Vagrant 和对应的 VirtualBox 安装后,新建一个文件夹用来配置 Vagrant

因为使用vagrant init precise32 http://files.vagrantup.com/precise32.box命令下载 box 会比较慢, 所以最好是提前使用迅雷等工具下载好 box 放在一个文件中,然后初始化时使用本地路径,会快很多。

vagrant init precise32 ..\boxes\precise32.box

需要注意的是,这里使用本地路径时,需要使用 Windows 风格的路径,即用\来作为路径分隔符。

PS:可用的 Vagrant Boxes 见这里:http://www.vagrantbox.es/

端口转发

Vagrant 中配置端口转发非常方便

Vagrant.configure("2") do |config|
# other config here config.vm.network :forwarded_port, guest: 80, host: 8080
end

上面的配置会将 Vagrant 中的 80 端口和你本机的 8080 端口建立转发关系,这样你在本机访问 http://localhost:8080 就相当于访问 Vagrant 中的 http://localhost:80 了。

端口转发可以配置多组。

共享文件夹

使用 Vagrant 有一个非常重要的一步就是共享文件夹(得益于强大的 VirtualBox)

在Vagrantfile中设置

config.vm.synced_folder "E:/Blog", "/home/vagrant/Blog"

其中第一个参数E:/Blog为本机上需要共享的文件夹路径,第二个参数为 Vagrant 虚拟机中的映射路径,注意第二个参数需要 使用绝对路径,如/home/vagrant/Blog

连接至 Vagrant

配置好后,就可以启动虚拟机并连接到 Vagrant 了。

首先,执行vagrant up,等待片刻,vagrant 就启动好了。 ::

e:\Vagrant\precise32>vagrant reload
[default] Attempting graceful shutdown of VM...
[default] Setting the name of the VM...
[default] Clearing any previously set forwarded ports...
[default] Creating shared folders metadata...
[default] Clearing any previously set network interfaces...
[default] Preparing network interfaces based on configuration...
[default] Forwarding ports...
[default] -- 22 => 2222 (adapter 1)
[default] -- 5000 => 5000 (adapter 1)
[default] -- 3000 => 3000 (adapter 1)
[default] Booting VM...
[default] Waiting for VM to boot. This can take a few minutes.
[default] VM booted and ready for use!
[default] Configuring and enabling network interfaces...
[default] Mounting shared folders...
[default] -- /vagrant
[default] -- /home/vagrant/Blog
[default] -- /home/vagrant/Notes
[default] -- /home/vagrant/Projects

如果你vagrant up后又修改了 Vagrantfile,要使之生效,需要执行vagrant reload

在 Windows 下,不能使用vagrant ssh来直接访问 vagrnat,不过该命令会告诉你如何通过 ssh 连接 vagrant ::

e:\Vagrant\precise32>vagrant ssh
`ssh` executable not found in any directories in the %PATH% variable. Is an
SSH client installed? Try installing Cygwin, MinGW or Git, all of which
contain an SSH client. Or use the PuTTY SSH client with the following
authentication information shown below: Host: 127.0.0.1
Port: 2222
Username: vagrant
Private key: C:/Documents and Settings/greatghoul/.vagrant.d/insecure_private_key

这样你就可以使用类似 putty 的 ssh 客户端来访问 vagrant 来进行开发了,这里极力推荐 Chrome 扩展Secure Shell。

Vagrant 的详细介绍请点这里
Vagrant 的下载地址请点这里

如何使用vagrant在虚拟机安装Hadoop集群 http://www.linuxidc.com/Linux/2013-04/82750.htm

Vagrant 中高效的 Puppet 模块管理 http://www.linuxidc.com/Linux/2014-05/101873.htm

使用 Vagrant 和 Fabric 用于集成测试 http://www.linuxidc.com/Linux/2014-07/104113.htm

使用 Vagrant 搭建开发环境 http://www.linuxidc.com/Linux/2014-07/104116.htm

本文永久更新链接地址http://www.linuxidc.com/Linux/2014-07/104115.htm

Windows 下配置 Vagrant 环境的更多相关文章

  1. windows下配置lamp环境(5)---配置MySQL5.6

    开始配置mysql 1.创建配置文件my.ini   1.进入C:\wamp\MySQL   2.把my-default.ini 另存一份:my.ini   3.开始编辑mysql的配置文件,打开my ...

  2. windows下配置lamp环境(3)---配置PHP5.4

    下面配置php Php文件夹里有两个php.ini-*文件,随便修改一个,去掉后缀,变成php.ini (如图) 打开php.ini ,添加php扩展目录723行左右(其实放哪都无所谓,只不过php. ...

  3. windows下配置lamp环境(0)---软件获取

    工作快一年了,还没有怎么配置过服务器环境,经常使用集成套件wampserver,为了复习配置wamp服务器 特意在虚拟机中测试安装步骤如下. 安装前步骤:下载软件.软件下载地址如下: 1.apache ...

  4. windows下配置lamp环境(2)---配置Apache服务器2.2.25

    配置Apache 配置Apache时,先要找到安装目录中的主配置文httpd.conf,使用文本编辑器打开,最好不要使用windows自带的编辑器,可以使用NotePad++, vim,或者subli ...

  5. windows下配置lamp环境(1)---安装Apache服务器2.2.25

    window下lamp成为wamp; 安装wamp环境的第一步是安装Apache服务器.下面开始安装步骤图文并茂. 一.双击安装包点“next”进行下一步,然后同意协议(这张图没有截):

  6. QT + OpenCV + MinGW 在windows下配置开发环境

           由于研究项目需要,最近开始接触C++界面设计,关于“QT + OpenCV + MinGW在windows下配置开发环境”着实让人头疼,单次配置时间相当长,也十分不容易,本人第一次配置成 ...

  7. windows下配置java环境jdk

    Windows系统下搭建java的开发环境和配置环境变量 具体步骤打开链接地址:https://www.cnblogs.com/lijuntao/p/6694483.html

  8. Windows下配置Erlang环境

    1.下载地址 http://www.erlang.org/downloads 2.下载文件 下载 OTP 22.2 Windows 64-bit Binary File 3.配置环境变量 将下载的安装 ...

  9. 深入分析windows下配置wamp环境各模块的版本兼容性

    版本相关概念说明: ts/nts: thread safety 线程安全 TS refers to multithread capable builds. NTS refers to single t ...

随机推荐

  1. PATA 1036. Boys vs Girls (25)

    https://www.patest.cn/contests/pat-a-practise/1036 #include <bits/stdc++.h> using namespace st ...

  2. 图解kafka - 设计原理解析

    什么是消息队列? 简单来说,消息队列是存放消息的容器.客户端可以将消息发送到消息服务器,也可以从消息服务器获取消息. 问题导读: ********* 为什么需要消息系统? kafka架构? kafka ...

  3. Js笛卡尔乘积

    self.getDescartesSku = function (selSaleProp, i, nowLst, allALst) {         if (selSaleProp.length = ...

  4. GBDT--原来是这么回事(附代码)

    1. 解释一下GBDT算法的过程 GBDT(Gradient Boosting Decision Tree),全名叫梯度提升决策树,使用的是Boosting的思想. 1.1 Boosting思想 Bo ...

  5. 字符串匹配问题(暴力,kmp)

    对于字符串的匹配问题,现在自己能够掌握的就只有两种方法, 第一种就是我们常用的暴力匹配法,那什么是暴力匹配法呢? 假设我们现在有一个文本串和一个模式串,我们现在要找出模式串在文本串的哪个位置. 文本串 ...

  6. 使用@Transactional注意的问题

    @Transactional 基本原理概述 在应用系统调用声明@Transactional 的目标方法时,Spring Framework 默认使用 AOP 代理,在代码运行时生成一个代理对象,根据@ ...

  7. Oracle数据库---序列、索引、同义词

    --创建序列create sequence deptno_seqstart with 50increment by 10maxvalue 70cache 3; --为了方便演示,创建了一个和dept表 ...

  8. Azkaban Condition Flow (条件工作流) 使用简介

    本文上接<Azkaban Flow 2.0 使用简介>,对Azkaban Condition Flow (条件工作流) 做简单介绍 目录 目录 条件工作流 介绍 作用 使用方式 支持的运算 ...

  9. ES6 let const 关键字

    ECMAScript 和 JavaScript的关系? 前者是后者的规格,后者是前者的实现. 符合ECMAScript 规格的还有 Flash 中的AcionScript 和 TypeScript. ...

  10. 使用C#调试Windows服务模板项目

    Windows服务是非常强大的应用程序,可用于在backgorund中执行许多不同类型的任务.他们可以在不需要任何用户登录的情况下启动,并且可以使用除登录用户之外的其他用户帐户运行.但是,如果通过遵循 ...