安装
需要安装最新版的VirtualBox和Vagrant,并将VirtualBox和Vagrant的目录添加到系统环境变量PATH中。
准备镜像
vagrant使用在virtualbox虚拟机基础上封装的box镜像。Vagrant在添加镜像时会自动下载镜像文件,但鉴于国内访问国外网的速度,建议事先使用下载工具单独下载镜像。
Box镜像下载站:http://www.vagrantbox.es/
我下载Vagrant官方的Ubuntu precise 64 VirtualBox镜像,存放到某个目录下面,比如:
F:\Virtual Machine\vbox\precise64.box
创建环境
创建开发目录
作为使用vagrant的主目录,后续将自动生成配置文件Vagrantfile,并将该目录自动映射到虚拟机中的/vagrant目录下。比如,使用如下目录
D:\project\vagrant\dev
添加镜像
使用 vagrant box add [box-name] [box-url] 添加box。box名称默认为base。
在上面目录处打开命令行提示符或powershell。添加镜像F:\Virtual Machine\vbox\precise64.box到Vagrant,使用如下命令:
|
vagrant
box
add
base
"file://f:\Virtual Machine\vbox\precise64.box"
|
其中base为box名称,后面是镜像文件的路径。
提示:
|
Downloading
box
from
URL
:
file
:
//f:\Virtual Machine\vbox\precise64.box
Extracting
box
.
.
.
ate
:
247M
/
s
,
Estimated
time
remaining
:
--
:
--
:
--
)
Successfully
added
box
'base'
with
provider
'virtualbox'
!
|
表示成功添加名为base的box。
初始化
在开发目录中初始化vagrant。
|
vagrant
init
[
box
-
name
]
|
如果box是base,可以省略box-name,否则必须给出box的名字。
执行命令后显示:
|
A
`
Vagrantfile
`
has
been
placed
in
this
directory
.
You
are
now
ready
to
`
vagrant
up
`
your
first
virtual
environment
!
Please
read
the
comments
in
the
Vagrantfile
as
well
as
documentation
on
`
vagrantup
.
com
`
for
more
information
on
using
Vagrant
.
|
表示自动生成配置文件Vagrantfile,可以使用vagrant up启动虚拟机。
修改配置文件
添加某些选项,方便后续开发。
比如网络设置采用端口映射:
|
config
.
vm
.
network
:
forwarded_port
,
guest
:
80
,
host
:
8080
|
使用
基本操作命令
vagrant init 初始化
vagrant up 启动虚拟机
vagrant halt 关闭虚拟机
vagrant reload 重启虚拟机
vagrant ssh SSH登陆虚拟机
vagrant status 查看虚拟机运行状态
vagrant destroy 销毁当前虚拟机
启动虚拟机
显示信息:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
Bringing
machine
'default'
up
with
'virtualbox'
provider
.
.
.
[
default
]
Importing
base
box
'base'
.
.
.
[
default
]
Matching
MAC
address
for
NAT
networking
.
.
.
[
default
]
Setting
the
name
of
the
VM
.
.
.
[
default
]
Clearing
any
previously
set
forwarded
ports
.
.
.
[
default
]
Clearing
any
previously
set
network
interfaces
.
.
.
[
default
]
Preparing
network
interfaces
based
on
configuration
.
.
.
[
default
]
Forwarding
ports
.
.
.
[
default
]
--
22
=
>
2222
(
adapter
1
)
[
default
]
--
80
=
>
8080
(
adapter
1
)
[
default
]
Booting
VM
.
.
.
[
default
]
Waiting
for
machine
to
boot
.
This
may
take
a
few
minutes
.
.
.
DL
is
deprecated
,
please
use
Fiddle
[
default
]
Machine
booted
and
ready
!
[
default
]
The
guest
additions
on
this
VM
do
not
match
the
installed
version
of
VirtualBox
!
In
most
cases
this
is
fine
,
but
in
rare
cases
it
can
prevent
things
such
as
shared
folders
from
working
properly
.
If
you
see
shared
folder
errors
,
please
make
sure
the
guest
additions
within
the
virtual
machine
match
the
version
of
VirtualBox
you
have
installed
on
your
host
and
reload
your
VM
.
Guest
Additions
Version
:
4.2.0
VirtualBox
Version
:
4.3
[
default
]
Mounting
shared
folders
.
.
.
[
default
]
--
/
vagrant
|
上面有两个端口映射(22和80)以及一个共享文件夹映射(/vagrant)。
SSH登陆
使用vagrant ssh登陆虚拟环境。但Windows的命令行提示符cmd没有ssh命令。不过由于我安装git时添加其到环境变量PATH,git内置ssh命令,可以直接在命令行中登陆。
|
PS
D
:
\
project
\
vagrant
\
dev
>
vagrant
ssh
Welcome
to
Ubuntu
12.04
LTS
(
GNU
/
Linux
3.2.0
-
23
-
generic
x86_64
)
*
Documentation
:
https
:
//help.ubuntu.com/
Welcome
to
your
Vagrant
-
built
virtual
machine
.
Last
login
:
Wed
Feb
26
13
:
57
:
16
2014
from
10.0.2.2
vagrant
@
precise64
:
~
$
|
可以使用其他ssh客户端,如Putty、Xshell等。
地址为127.0.0.1
端口见上面的映射关系,为2222
用户名为vagrant
Private key为 C:/Users/用户名/.vagrant.d/insecure_private_key
安装软件
添加中文支持
镜像为英文版,需要添加简体中文支持
|
sudo
apt
-
get
install
language
-
pack
-
zh
-
hans
|
修改默认语言为简体中文,编辑/etc/default/locale,将语言改为zh_CN.UTF8。
添加各种Python库
首先需要安装python-pip。
安装mysql-dev遇到EnvironmentError: mysql_config not found问题,找不到头文件。需要安装libmysqld-dev,和python-dev。
进一步
释放C盘空间
vagrant把box默认放在C盘的用户文件夹下,严重占用C盘空间(其实最初的box也就300多兆大小),我需要将其移动到其它位置。
将.vagrant.d文件夹移动到其它位置,并设置他的路径为环境变量VARANT_HOME即可。
参考
vagrant官网:http://www.vagrantup.com/
virtualbox官网:https://www.virtualbox.org/