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. 如何在VMware虚拟机间建立共享磁盘?

    在同一台电脑上,有时难免要安装多个虚拟机,存储空间就成了最大的问题,那么如何解决虚拟机的硬盘问题呢,Vmware自带的工具可以很好的解决此问题,下面我们就来看看如何在Vmware虚拟机间建立共享磁盘? ...

  2. 下载个jquery-easyui-1.3.0使用,把他导入到myeclipse10里,jquery-1.7.2.min.js报错。 错误如下, Syntax error on token "Invalid Regular Expression Options", no accurate correc

    1.选中报错的jquery文件“jquery-1.2.6.min.js”.2.右键选择 MyEclipse-->Exclude From Validation .3.再右键选择 MyEclips ...

  3. java-No exception of type ConfigurationException can be thrown; an exception type must be a subclass of Throwable

    功能:读配置文件 java菜鸟:导入工程在报名处就开始报错,第一次遇到 import org.apache.commons.lang3.StringUtils; import org.apache.c ...

  4. Dubbo原理解析-注册中心之Zookeeper协议注册中心

    下面我们来看下开源dubbo推荐的业界成熟的zookeeper做为注册中心, zookeeper是hadoop的一个子项目是分布式系统的可靠协调者,他提供了配置维护,名字服务,分布式同步等服务.对于z ...

  5. When not to automate 什么时候不进行自动化

    The cornerstone of test automation is the premise that the expected application behavior is known. W ...

  6. oracle导入导出数据库和创建表空间和用户

    直入主题: 首先在本地创建2个文件,D:\oradata\jgszz\temp.dbf和 D:\oradata\jgszz\data.dbf. 然后执行下面的SQL. /*创建临时表空间 */ cre ...

  7. Solaris系统管理(一)

    最近需要将一个项目从Linux平台迁移到Solaris,对Solaris进行了一点研究,总结如下. 一句话介绍: Solaris 是Sun Microsystems研发的计算机操作系统.它被认为是UN ...

  8. linux modprobe.conf怎么不见了—-CentOS 6

    用习惯了CentOS或RHEL的用户或许很熟悉/etc/modprobe.conf文件,系统声卡.网卡.SCSI卡的驱动类型都在这里定义,同样部分动态加载的模块的参数也可以在这个文件中定义,但是在Ce ...

  9. Hadoop学习记录(7)|Eclipse远程调试Hadoop

    1.创建Hadoop项目 2.创建包.类 这里使用hdfs.WordCount为例 3.编写自定Mapper和Reducer程序 MyMapper类 static class MyMapper ext ...

  10. 使用Ambari部署hadoop集群

    准备工作 1. 设置sudo免密码登陆 由于CentOS安装之后,普通用户无sudo权限,故应该设置sudo权限. 参考文章:http://www.cnblogs.com/maybob/p/32988 ...