您的位置:首页 > 其它

vagrant 使用方法简介 virtualbox 的命令行管理工具 可以实现virtualbox后台运行

2014-08-30 07:46 901 查看

Vagrant快速入门

分类:
软件测试2012-12-0315:58
5064人阅读评论(0)收藏
举报

目录(?)[+]

1.Vagrant功能:

VagrantusesOracle’s
VirtualBoxtobuildconfigurable,lightweight,andportablevirtualmachinesdynamically..

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

2.Vagrant下载:

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

3.Vagrant安装:

3.1.下载并安装OracleVMVirtualBox:例如在Windows环境下,需要安装VirtualBox-4.2.0-80737-Win.exe
https://www.virtualbox.org/wiki/Downloads
3.2.下载并安装最新版本的Vagrant:
http://downloads.vagrantup.com/
[注]在WindowsandMacOSX,
vagrant
命令应该自动添加到环境变量
PATH
.但是在其他操作系统下,你必须手动添加
/opt/vagrant/bin
到环境变量
PATH。

4.Vagrant命令

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

vagrantboxlist

vagrantboxremove<name>

vagrantboxrepackage<name>

vagrantinit[box-name][box-url]

vagrantup[vm-name][--[no-]provision][-h]

vagrantdestroy[vm-name]

vagrantsuspend[vm-name]

vagrantreload[vm-name]

vagrantresume[vm-name]

vagranthalt[vm-name]

vagrantstatus[vm-name]

vagrantpackage[vm-name][--basename][--outputname.box][--includeone,two,three][--vagrantfilefile]

vagrantprovision[vm-name]

vagrantssh[vm-name][-ccommand][--extrasshargs]

vagrantssh-config[vm-name][--hostname]

5.Vagrantfile

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


Vagrant::Config.rundo|config|
#Setupthebox
config.vm.box="my_box"
end

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

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




(2)添加一个BaseBox:
Vagrant不是从头开始创建虚拟机,而是导入一个虚机的baseimage,在这个基础上进行构建。这些image就叫做Box.
Vagrant支持从本地文件系统或者HTTPURL来添加boxes
$vagrantboxaddbasehttp://files.vagrantup.com/lucid32.box
[b]$vagrantboxaddbaseD:\lucid32.box[/b]



(3)配置Project使用这个Box:修改Vagrantfile为如下内容:
Vagrant::Config.rundo|config|

config.vm.box="base"

end
(4)启动虚拟机
$vagrantup



(5)停掉虚拟机
$vagrantdestroy
(6)SSH配置
Vagrant提供了对虚拟机的SSH连接,只需要执行一个命令:
$vagrantssh
在Windows环境下可以使用PUTTY,配置下面的信息来连接虚拟机:
hostname:localhost
port:2222
ConnectionType:SSH
UserName:vagrant
Password:vagrant



(7)访问刚才创建的Project.
Vagrant通过VirtualBox的sharedfolder来连接你的application和虚拟机,默认的sharedfolder的卫士是/vagrant,所以想要查看刚才创建的项目,只需要执行:
vagrant@lucid32:~$
ls/vagrant

index.htmlVagrantfile
(8)Provisioning:
通常情况下Box只做最基本的设置,而不是一次到位的设置好所有的环境。Vagrant通常使用chef或者Puppet来做进一步的环境搭建。
回到刚才创建的index.html,我们需要安装Apache。我们下面用Puppet来完成这一设置。
1.在项目的根目录下创建文件夹manifests,然后在该文件家中创建Puppet的配置文件default.pp,该文件内容如下:

#BasicPuppetApachemanifest

classapache{
exec{'apt-getupdate':
command=>'/usr/bin/apt-getupdate'
}

package{"apache2":
ensure=>present,
}

service{"apache2":
ensure=>running,
require=>Package["apache2"],
}
}

includeapache


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

Vagrant::Config.rundo|config|

config.vm.box="base"

#EnablethePuppetprovisioner

config.vm.provision:puppet

end


(9)运行Project
为了使puppet的配置生效,如果不重启虚机,则需要执行vagrantreload命令。
$vagrantreload
因为没有配置portforwarding,所以你还不能从本地浏览器查看Project的输出。只能SSH到虚拟机上查看127.0.0.1的输出:



(10)进行端口映射
修改Vagrantfile,添加本地端口和虚机端口的映射关系,然后执行vagrantreload,然后你就可以通过本地浏览器来访问:http://localhost:4567.
Vagrant::Config.rundo|config|
#Forwardguestport80tohostport4567
config.vm.forward_port80,4567
end
[/code]



7.打包Packaging

1.创建一个新的文件Vagrantfile.pkg,内容如下:

Vagrant::Config.rundo|config|
#Forwardapache
config.vm.forward_port80,8080
end
2.打包Project
$vagrantpackage--vagrantfileVagrantfile.pkg
[/code]
8.打包完成后,在工程根目录下就会生成package.box,别人就可以使用这个Box了:

$vagrantboxaddmy_box/path/to/the/package.box
$vagrantinitmy_box
$vagrantup
[/code]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐