1. Vagrant功能:

Vagrant uses Oracle’s VirtualBox to build configurable, lightweight, and portable virtual machines dynamically..

【Vagrant 使用Oracle VM VirtualBox 动态创建和配置轻量级的,可重现的,便携的虚拟机环境。】

2. Vagrant下载:

http://downloads.vagrantup.com/tags/v1.0.5

3. Vagrant安装:

3.1. 下载并安装Oracle VM VirtualBox: 例如在Windows环境下,需要安装VirtualBox-4.2.0-80737-Win.exe

https://www.virtualbox.org/wiki/Downloads

3.2. 下载并安装最新版本的Vagrant:

http://downloads.vagrantup.com/

[注]在 Windows and Mac OS X,vagrant 命令应该自动添加到环境变量PATH. 但是在其他操作系统下, 你必须手动添加/opt/vagrant/bin 到环境变量PATH。

4. Vagrant命令

Vagrant安装完成之后,我们就可以从命令行通过vagrant命令来进行操作。vagrant 常用命令如下:

vagrant box add <name> <url>
       vagrant box list
       vagrant box remove <name>
       vagrant box repackage <name> 
       vagrant init [box-name] [box-url]
       vagrant up [vm-name] [--[no-]provision] [-h]
       vagrant destroy [vm-name]
       vagrant suspend [vm-name]
       vagrant reload [vm-name]
       vagrant resume [vm-name]
       vagrant halt [vm-name]
       vagrant status [vm-name] 
       vagrant package [vm-name] [--base name] [--output name.box][--include one,two,three] [--vagrantfile file]
       vagrant provision [vm-name]
       vagrant ssh [vm-name] [-c command] [-- extra ssh args]
       vagrant ssh-config [vm-name] [--host name]

5. Vagrantfile

       任何Vagrant工程下都有一个Vagrantfile, 就像makefile一样,Vagrantfile用来配置vagrant的行为所创建虚拟机的信息,下面是一个基本的Vagrantfile:      

       Vagrant::Config.run do |config|
# Setup the box
config.vm.box = "my_box"
end

6. 创建第一个Vagrant虚拟环境以及工程:

(1)创建工程目录, 并且执行vagrant init命令,该命令会产生最初的 Vagrantfile

$ mkdir vagrant_guide
$ cd vagrant_guide
$ vagrant init

(2)添加一个Base Box:

Vagrant不是从头开始创建虚拟机,而是导入一个虚机的base image,在这个基础上进行构建。这些image就叫做Box.

Vagrant 支持从本地文件系统或者HTTP URL来添加boxes

 $vagrant box add base http://files.vagrantup.com/lucid32.box

     $vagrant box add base D:\lucid32.box

    

(3)配置Project使用这个Box: 修改Vagrantfile为如下内容:

Vagrant::Config.run do |config|
        config.vm.box = "base"
     end

(4)启动虚拟机

   $vagrant up

    

(5)停掉虚拟机

  $vagrant destroy

(6) SSH配置

Vagrant 提供了对虚拟机的SSH连接,只需要执行一个命令:

$vagrant ssh

    在Windows环境下可以使用PUTTY,配置下面的信息来连接虚拟机:

hostname: localhost

port:             2222

Connection Type: SSH

User Name:   vagrant

Password:     vagrant

(7)访问刚才创建的Project.

Vagrant 通过VirtualBox的shared folder来连接你的application和虚拟机, 默认的shared folder的卫士是/vagrant, 所以想要查看刚才创建的项目,只需要执行:

vagrant@lucid32:~$ ls /vagrant
     index.html  Vagrantfile

(8) Provisioning:

通常情况下Box只做最基本的设置,而不是一次到位的设置好所有的环境。Vagrant通常使用chef或者Puppet来做进一步的环境搭建。

回到刚才创建的index.html,我们需要安装Apache。我们下面用Puppet来完成这一设置。

1. 在项目的根目录下创建文件夹manifests,然后在该文件家中创建Puppet的配置文件default.pp,该文件内容如下:

# Basic Puppet Apache manifest

class apache {
exec { 'apt-get update':
command => '/usr/bin/apt-get update'
} package { "apache2":
ensure => present,
} service { "apache2":
ensure => running,
require => Package["apache2"],
}
} include apache

2. 在Vagrantfile里添加对Puppet provisioning的支持:

Vagrant::Config.run do |config|
  config.vm.box = "base"

# Enable the Puppet provisioner
  config.vm.provision :puppet
end

(9) 运行Project

为了使puppet的配置生效,如果不重启虚机,则需要执行vagrant reload命令。

  $ vagrant reload 

因为没有配置port forwarding,所以你还不能从本地浏览器查看Project的输出。只能SSH到虚拟机上查看127.0.0.1的输出:

(10) 进行端口映射

修改Vagrantfile, 添加本地端口和虚机端口的映射关系, 然后执行vagrant reload, 然后你就可以通过本地浏览器来访问:http://localhost:4567.

   Vagrant::Config.run do |config|
# Forward guest port 80 to host port 4567
config.vm.forward_port 80, 4567
end 
7. 打包 Packaging
 1. 创建一个新的文件Vagrantfile.pkg,内容如下:
     Vagrant::Config.run do |config|
# Forward apache
config.vm.forward_port 80, 8080
end
2. 打包Project
       $ vagrant package --vagrantfile Vagrantfile.pkg
8. 打包完成后,在工程根目录下就会生成package.box,别人就可以使用这个Box了:
    $ vagrant box add my_box /path/to/the/package.box
$ vagrant init my_box
$ vagrant up
来自:http://blog.csdn.net/jillliang/article/details/8251242

Vagrant 快速入门的更多相关文章

  1. Web Api 入门实战 (快速入门+工具使用+不依赖IIS)

    平台之大势何人能挡? 带着你的Net飞奔吧!:http://www.cnblogs.com/dunitian/p/4822808.html 屁话我也就不多说了,什么简介的也省了,直接简单概括+demo ...

  2. SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=》提升)

     SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=>提升,5个Demo贯彻全篇,感兴趣的玩才是真的学) 官方demo:http://www.asp.net/si ...

  3. 前端开发小白必学技能—非关系数据库又像关系数据库的MongoDB快速入门命令(2)

    今天给大家道个歉,没有及时更新MongoDB快速入门的下篇,最近有点小忙,在此向博友们致歉.下面我将简单地说一下mongdb的一些基本命令以及我们日常开发过程中的一些问题.mongodb可以为我们提供 ...

  4. 【第三篇】ASP.NET MVC快速入门之安全策略(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  5. 【番外篇】ASP.NET MVC快速入门之免费jQuery控件库(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  6. Mybatis框架 的快速入门

    MyBatis 简介 什么是 MyBatis? MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除 了几乎所有的 JDBC 代码和参数的手工设置以及结果 ...

  7. grunt快速入门

    快速入门 Grunt和 Grunt 插件是通过 npm 安装并管理的,npm是 Node.js 的包管理器. Grunt 0.4.x 必须配合Node.js >= 0.8.0版本使用.:奇数版本 ...

  8. 【第一篇】ASP.NET MVC快速入门之数据库操作(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  9. 【第四篇】ASP.NET MVC快速入门之完整示例(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

随机推荐

  1. bootstrap-datetimepicker时间控件

    欢迎各种吐槽. 本人小前端,学习过程中,某日遇到做时间控件的需求,于是无休止的召唤了度娘,发现看不太懂.算是为自己做个笔记,也便于菜鸟级别的看的懂. 首先,我们看看点击选择时间的时候的展示页面吧 年  ...

  2. 嵌入式 十个最值得阅读学习的C开源项目代码

    开源世界有许多优秀的开源项目,我选取其中十个最优秀的.最轻量级的C语言的项目,希望可以为C语言开发人员提供参考. 十个最值得阅读学习的C开源项目代码 1. Webbench 2. Tinyhttpd ...

  3. nginx中针对目录进行IP限制

    一个不错的nginx中针对目录进行IP限制 ,这里我以phpmyadmin目录只能让内网IP访问,而外网不能访问的配置方法,有需要的同学可参考. nginx phpmyadmin 针对内网ip用户开放 ...

  4. 【转】linux下mkisofs制作光盘映像cdrecord刻录光盘

    1.制作光盘映像文件 $mkisofs -R -o /var/tmp/oracle.iso /home/oracle $mkisofs -o myiso.iso /home/oracle/data 补 ...

  5. OpenCV安装要点

    OpenCV安装要点1.设置系统和用户环境变量PATH指向opencv\build\x86\vc10\bin或者opencv\build\x64\vc10\bin2.新建用户环境变量OpenCV指向o ...

  6. MVC&amp;&amp;MVP

    Classic MVC Classic MVC 大概上世纪七十年代,Xerox PARC的Trygve提出了MVC的概念. 并应用在Smalltalk系统中,为了和其它类型的MVC加以区分,历史上习惯 ...

  7. WebSocket with Flask

    转自:https://blog.shonenada.com/post/websocket-with-flask/ WebSocket with Flask HTML5 以前,HTML 还不支持 Web ...

  8. 浅谈Spark(1) - Overview

    Spark是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点:但不同于MapReduce的是 ...

  9. Eclipse配置信息

    1.Eclipse VM arguments的保存位置: .metadata\.plugins\org.eclipse.debug.core\.launches (使用文件比较工具找出配置信息的保存位 ...

  10. windows2008 RDP修改默认端口

    PortNumber[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Teminal Sever\Wds\rdpwd\Tds\tcp] [HKE ...