技术

Scala shell内建指令 scala 最佳实践 centos 下安装sqlplus git简介及使用 Commands to Check Weblogic Server Status Spring 中 cache 的使用 pl/sql developer 相关问题 maven 用法 nexus docker 指南 oracle 相关问题 vim 快捷方式 media wiki 的搭建 安装 Kubernetes 如何的在centos中安装docker Hbase学习 hbase 异常解决 Docker 链接容器 dockerfile 最佳实践 centos 7 网卡配置 docker 学习笔记 guava 用法分享 docker命令行 angular小技巧 kubernetes 相关知识 一些windows下的工具 github 小技巧 angularjs 小技巧 java写代码的一些小技巧 lucene学习 在Windows上安装FishEye 快速安装eclipse插件 在fisheye中添加git repository Modbus 协议简介 读书笔记: angular性能调优 我的交叉编译经验谈 如何管理和配置opkg包 刷机失败后的恢复方法 Openwrt Flash Layout 分区调整 netgear wndr3700v4 刷新固件步骤 Openwrt应用包(package)编译 (基于Openwrt SDK) Openwrt编译 (基于Openwrt ImageBuilder) Build Openwrt环境完整过程 openwrt命令总结 在luci系统中增加服务 sftp 命令 系统完整性检查如何加载虚拟光驱 如何在java中启用jmxremote Bash Shell 技巧点滴 knockout和js测试基础 XAMPP 小技巧 knockout小技巧 有关discuz的资源与一些经验积累 javascript小技巧积累 在centos上安装jetty的过程记录 Vagrant构建虚拟开发环境 离线markdown编辑器:stackedit 关于阿里云服务器使用的几个小技巧 discuz被黑的处理办法 git 相关命令总结 BAE 本地开发环境调试笔记 yo 与 knockout 的使用 一些有用的在线工具网站资源 Discuz!X3.2 升级后无法登录后台的解决方法 knockout的一些有用的例子和资源 GoLang 学习笔记

标签


Vagrant构建虚拟开发环境

2015年10月14日

安装

需要安装最新版的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)。

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/