vagrant使用小结

最近公司用了vagrant的虚拟镜像服务,感觉挺不错的.在此仅记录使用方法.

优点:我们可以通过 Vagrant 封装一个 Linux 的开发环境,分发给团队成员。成员可以在自己喜欢的桌面系统(Mac/Windows/Linux)上开发程序,代码却能统一在封装好的环境里运行,非常霸气.

主要是看重它可以让开发人员在同样开发环境下开发,这样避免每个开发人员因为开发环境不一样导致最后代码上线的一些问题.

缺点:需要提前配置好一个满足开发条件的一些环境.(这个过程其实玩liunx的人,都会,对于不会的人来说,这就是缺点咯.)

本文后面提到的centos-6.5-x86_64-base.box,是centos-6.5的系统,在里面我已经预装了php apache nginx nodejs等等满足程序运行的环境。

下面使用步骤:

1、下载vagrant和VirtualBox

vagrant 下载地址: http://www.vagrantup.com/downloads.html

VirtualBox下载地址: https://www.virtualbox.org/wiki/Downloads

box镜像文件,本文举例子的box文件(centos-6.5-x86_64-base.box,因为源文件太大,就不传了)

2、安装Vagrant 和 VirtualBox

3、在你本地的硬盘上创建一个用来存储Vagrant配置文件的目录,将 1 中下载的 centos-6.5-x86_64-base.box 镜像也放到这个目录里。

比如你创建的目录地址为:  E:\testvbox ,那么就将centos-6.5-x86_64-base.box 放到此目录下.

4、运行cmd命令,到命令行下,并且切换到 3 中创建的目录(testvbox)中。

命令:

cd E:/testvbox

5、在此目录(testvbox)中,依次执行下面的命令:

1).

vagrant box add dev centos-6.5-x86_64-base.box

PS: 上面的命令含义为:vagrant 是vagrant的命令,box为参数,add为添加一个box环境,dev为你要创建的box环境名称,centos-6.5-x86_64-base.box 为你下载的box环境镜像。

2).

vagrant init dev

PS: 上面的命令含义为:vagrant 是vagrant的命令,init为参数,初始化一个box环境,dev为你要初始化的box环境名称。

6、 这时,你会在当前目录下看到一个Vagrantfile文件,这个文件就是vagrant box环境的配置文件。编辑这个文件,你可以用记事本打开这个文件,修改如下几处:

1) . 第22行,去掉前面的#

# config.vm.network :forwarded_port, guest: 80, host: 8080

变为

config.vm.network :forwarded_port, guest: 80, host: 8080

2) . 第26行,去掉前面的#

# config.vm.network :private_network, ip: “192.168.33.10”

变为

config.vm.network :private_network, ip: “192.168.33.10”

PS: 这里是私有ip,只有你自己可以访问虚拟机,如果你想要配置局域网里面可以访问,那就不需要修改26行,保持原样,此时需要修改的是第31行

# config.vm.network :public_network

变为

config.vm.network :public_network, ip: “192.168.8.88”

PS: ip可以配置也可以不用配置,虚拟机可以自动DHCP。我这里是自己配置了的,因为每次自动配置ip地址变来变去不方便.

3) . 第41行

# config.vm.synced_folder “../data”, “/vagrant_data”

改为

config.vm.synced_folder “E:/www”, “/var/www/html”

PS:

1). E:/www 这个为你本地的项目目录,这个目录会自动挂在到box环境中去

2). /var/www/html为虚拟开发环境中的挂载点。

7、最后,修改本地hosts文件,将第6步中第“2)”中的ip地址映射到相应的域名下,将如下添加到你本地的hosts中:

192.168.33.10   www.testvbox.com

PS: 想映射就映射不想映射就IP地址访问好了.

8、最后, 在你的box环境的配置目录(testvbox)下的cmd中运行,如下命令,就可以开启你的虚拟化环境了

vagrant up

至此,启动完成之后,vagrant的虚拟化开发环境就配置完成了.那么此时在浏览器里面就可以访问了.。

【备注】vagrant启动报错The following SSH command responded with a no 参考 http://www.cnblogs.com/renxing123/p/5992588.html

vagrant up报错 Warning: Authentication failure. Retrying...解决方案

在Vagrantfile配置文件中添加了两行代码,使用明文用户名密码

config.ssh.username = "vagrant"
config.ssh.password = "vagrant" 保存 vagrant reload

PS: 额外奉送:

# vagrant halt  关闭虚拟化开发环境

# vagrant reload 修改配置文件后,重启虚拟化开发环境

# vagrant box list 查看当前可用的虚拟化开发环境

# vagrant box remove boxname 删除指定的box环境

# vagrant package 当前正在运行的VirtualBox虚拟环境打包成一个可重复使用的box

# vagrant up 启动虚拟机

# vagrant destroy 销毁虚拟机

PS: 如果发现图片和JS,css文件改过之后没有任何反映,那就是这些被缓存了,

这个时候重启虚拟服务都是没有用的.应做如下修改:

如果是nginx环境 ,那么就找到 nginx.conf ,把里面的 “sendfile on” 修改为 “sendfile off”.

当然,如果你使用Apache也可能遇到类似的问题,那么同样也有类似的配置需要修改为:

EnableSendfile off

PS:

因为liunx不是太熟悉,仅记录个人常使用的一些命令.

apache目录 配置文件
vim /etc/httpd/conf.d/vhost.conf
/etc/init.d/httpd restart

nginx目录 配置文件
vim /etc/nginx/conf.d/virtual.conf
/etc/init.d/nginx restart

配置网卡
vim /etc/sysconfig/network-scripts/ifcfg-eth1 
/etc/init.d/network restart

vagrant使用小结的更多相关文章

  1. 使用Vagrant在Windows下部署开发环境

    做Web开发少不了要在本地搭建好开发环境,虽然说目前各种脚本都有对应的Windows版,甚至是一键安装包,但很多时候和Windows环境的相性并不是那么好,各麻烦的问题是实际部署的环境通常是Linux ...

  2. Vagrant 基础全面解析

    这篇 Vagrant 入门文章将带你创建一个 Vagrant 项目,这个过程将会用到 Vagrant 所提供的主要基本特性.如果想了解 Vagrant 能为你带来哪些好处,可以阅读 Vagrant 官 ...

  3. 从零开始编写自己的C#框架(26)——小结

    一直想写个总结,不过实在太忙了,所以一直拖啊拖啊,拖到现在,不过也好,有了这段时间的沉淀,发现自己又有了小小的进步.哈哈...... 原想框架开发的相关开发步骤.文档.代码.功能.部署等都简单的讲过了 ...

  4. Mac OS 使用 Vagrant 管理虚拟机(VirtualBox)

    Vagrant(官网.github)是一款构建虚拟开发环境的工具,支持 Window,Linux,Mac OS,Vagrant 中的 Boxes 概念类似于 Docker(实质是不同的),你可以把它看 ...

  5. Python自然语言处理工具小结

    Python自然语言处理工具小结 作者:白宁超 2016年11月21日21:45:26 目录 [Python NLP]干货!详述Python NLTK下如何使用stanford NLP工具包(1) [ ...

  6. java单向加密算法小结(2)--MD5哈希算法

    上一篇文章整理了Base64算法的相关知识,严格来说,Base64只能算是一种编码方式而非加密算法,这一篇要说的MD5,其实也不算是加密算法,而是一种哈希算法,即将目标文本转化为固定长度,不可逆的字符 ...

  7. iOS--->微信支付小结

    iOS--->微信支付小结 说起支付,除了支付宝支付之外,微信支付也是我们三方支付中最重要的方式之一,承接上面总结的支付宝,接下来把微信支付也总结了一下 ***那么首先还是由公司去创建并申请使用 ...

  8. 使用packer制作vagrant centos box

    使用packer制作vagrant box:centos 制作vagrant box,网上有教程,可以自己step by step的操作.不过直接使用虚拟在VirtualBox中制作vagrant b ...

  9. vagrant 1.8.6 安装过程及总结遇到的坑

    下面先总结遇到的问题,这些问题如果你也遇到,可能需要搜索很多次才能找到原因. 如果想看安装过程,可以先直接跳到后面第二部分部分. 1 问题汇总: 1.1 vagrant版本过高问题. vagrant ...

随机推荐

  1. ap web

    apapplication端吧    应用程序端   也C-S架构Cweb网页端   般封装httpservletrequest和httpservletresponse对象处理些操作  b-s架构

  2. 如何用vue实现树形菜单?

    在公司培训了2周,布置的作业是从树形,grid分页以及echarts中选一个.由于都不是很熟,就挑了第一个.本来想在网上找找参考,然后模仿着做一个,但是网上的代码多少参差不齐,写到一半没了,所以只要自 ...

  3. linux下建ftp用户,并限制用户访问路径[转]

    目的是:在linux系统上建立ftp用户,并限制其通过ftp访问时,只能访问用户主目录:其主目录显示路径也是“/”,看不到上级目录.     例如,我要建立用户usertest,密码为usertest ...

  4. 提示让IE8以下版本的浏览器去更新浏览器

    需求: 强制让IE进行页面渲染时候,用最新的方式渲染,并提示让IE8以下的版本去更新浏览器并给一个连接地址 那,如何满足? <!DOCTYPE html> <html lang=&q ...

  5. Android开发模板代码(一)——简单打开图库选择照片

    首先,先贴上样本代码 //检查权限 public void checkPermission() { if (ContextCompat.checkSelfPermission(this, Manife ...

  6. rem与@media 的优缺点

    首先:   如果我们在做单独移动端网站或者app的时候  我建议  使用 rem  ; 他能让我们在手机各个机型的适配方面:大大减少我们代码的重复性,是我们的代码更兼容. 下面两个图一个调试在常用的机 ...

  7. DAY10-万物皆对象-2018-2-2

    许久没有写了,虽然每天都有在学,但是学的东西也少了,后面难度慢慢加大,学习速度也是变慢了.这是许多天积累下来的笔记,从第一次接触对象,到慢慢去了解,现在处于还待深入了解的状态.万物皆对象,那是不是说没 ...

  8. JavaSE基础篇—MySQL三大范式—数据库设计规范

    1.概   念     范式是一种符合设计要求的总结,要想设计一个结构合理的关系型数据库,必须满足一定的范式.各个范式是以此嵌套包含的,范式越高,设计等级越高,在现实设计中也越难实现,一般数据库只要打 ...

  9. use zlib lib to compress or decompress file

    If you want to compress or decompress file when writing C++ code,you can choose zlib library,that's ...

  10. JFinal 学习笔记之Handler包分析

    HandlerFactory.java HandlerFactory是不可实例化的,因为 它的构造 函数 特意定位 私有 的:它有一个 静态的方法叫做 getHandler,它有两个参数 ,一个是Ha ...