Vagrant 快速入门
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 快速入门的更多相关文章
- Web Api 入门实战 (快速入门+工具使用+不依赖IIS)
平台之大势何人能挡? 带着你的Net飞奔吧!:http://www.cnblogs.com/dunitian/p/4822808.html 屁话我也就不多说了,什么简介的也省了,直接简单概括+demo ...
- SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=》提升)
SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=>提升,5个Demo贯彻全篇,感兴趣的玩才是真的学) 官方demo:http://www.asp.net/si ...
- 前端开发小白必学技能—非关系数据库又像关系数据库的MongoDB快速入门命令(2)
今天给大家道个歉,没有及时更新MongoDB快速入门的下篇,最近有点小忙,在此向博友们致歉.下面我将简单地说一下mongdb的一些基本命令以及我们日常开发过程中的一些问题.mongodb可以为我们提供 ...
- 【第三篇】ASP.NET MVC快速入门之安全策略(MVC5+EF6)
目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...
- 【番外篇】ASP.NET MVC快速入门之免费jQuery控件库(MVC5+EF6)
目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...
- Mybatis框架 的快速入门
MyBatis 简介 什么是 MyBatis? MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除 了几乎所有的 JDBC 代码和参数的手工设置以及结果 ...
- grunt快速入门
快速入门 Grunt和 Grunt 插件是通过 npm 安装并管理的,npm是 Node.js 的包管理器. Grunt 0.4.x 必须配合Node.js >= 0.8.0版本使用.:奇数版本 ...
- 【第一篇】ASP.NET MVC快速入门之数据库操作(MVC5+EF6)
目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...
- 【第四篇】ASP.NET MVC快速入门之完整示例(MVC5+EF6)
目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...
随机推荐
- 如何在VMware虚拟机间建立共享磁盘?
在同一台电脑上,有时难免要安装多个虚拟机,存储空间就成了最大的问题,那么如何解决虚拟机的硬盘问题呢,Vmware自带的工具可以很好的解决此问题,下面我们就来看看如何在Vmware虚拟机间建立共享磁盘? ...
- 下载个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 ...
- 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 ...
- Dubbo原理解析-注册中心之Zookeeper协议注册中心
下面我们来看下开源dubbo推荐的业界成熟的zookeeper做为注册中心, zookeeper是hadoop的一个子项目是分布式系统的可靠协调者,他提供了配置维护,名字服务,分布式同步等服务.对于z ...
- When not to automate 什么时候不进行自动化
The cornerstone of test automation is the premise that the expected application behavior is known. W ...
- oracle导入导出数据库和创建表空间和用户
直入主题: 首先在本地创建2个文件,D:\oradata\jgszz\temp.dbf和 D:\oradata\jgszz\data.dbf. 然后执行下面的SQL. /*创建临时表空间 */ cre ...
- Solaris系统管理(一)
最近需要将一个项目从Linux平台迁移到Solaris,对Solaris进行了一点研究,总结如下. 一句话介绍: Solaris 是Sun Microsystems研发的计算机操作系统.它被认为是UN ...
- linux modprobe.conf怎么不见了—-CentOS 6
用习惯了CentOS或RHEL的用户或许很熟悉/etc/modprobe.conf文件,系统声卡.网卡.SCSI卡的驱动类型都在这里定义,同样部分动态加载的模块的参数也可以在这个文件中定义,但是在Ce ...
- Hadoop学习记录(7)|Eclipse远程调试Hadoop
1.创建Hadoop项目 2.创建包.类 这里使用hdfs.WordCount为例 3.编写自定Mapper和Reducer程序 MyMapper类 static class MyMapper ext ...
- 使用Ambari部署hadoop集群
准备工作 1. 设置sudo免密码登陆 由于CentOS安装之后,普通用户无sudo权限,故应该设置sudo权限. 参考文章:http://www.cnblogs.com/maybob/p/32988 ...