需要安装最新版的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 销毁当前虚拟机
vagrant up
显示信息:
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)。
使用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-pip。 安装mysql-dev遇到EnvironmentError: mysql_config not found问题,找不到头文件。需要安装libmysqld-dev,和python-dev。
vagrant把box默认放在C盘的用户文件夹下,严重占用C盘空间(其实最初的box也就300多兆大小),我需要将其移动到其它位置。 将.vagrant.d文件夹移动到其它位置,并设置他的路径为环境变量VARANT_HOME即可。
参考
vagrant官网:http://www.vagrantup.com/
virtualbox官网:https://www.virtualbox.org/