windows下vagrant的安装使用

vagrant是简便虚拟机操做的一个软件,而使用虚拟机有几个好处:html

一、为了开发环境与生产环境一致(不少开发环境为windows而生产环境为linux),不至于出如今开发环境正常而移步到正式生产环境时出现各类问题,而vagrant经过共享文件,能够实如今主机(windows)下的IDE编写代码操做,直接在虚拟机(linux)中运行展现出效果。linux

二、在vagrant中只须要搭配一次开发环境,而后就能够将搭配好的环境系统镜像打包发送给其余的同事用了,其余同事只须要下载vagrant和virtualBox,而后配置下共享目录后就能够开发了,不再须要关心配置环境的问题了。ios

三、目前好多扩展如swoole、redis等对linux支持更好,甚至有些只支持linux,因此采用虚拟机,不再须要为学习新技术找借口了。git

相关环境机软件版本:主机:win7;虚拟机:CentOS 6.5 x86_64;vagrant:1.9.5;virtualBox:5.2github

1、安装步骤以下:web

一、下载virtualBox,地址点这里,安装redis

二、下载vagrant,地址点这里,安装shell

三、下载镜像,有几个地方能够下载:http://www.vagrantbox.es/https://atlas.hashicorp.com/boxes/search均可以,这里我随便找了个centos65-x86_64-20140116windows

四、将下载的镜像加载,顺便说下,第3步能够不用,vagrant支持在线安装镜像,但因为长城的缘由,因此最好经过其它方法将镜像下载下来,再在本地加载,,打开cmd,输入如下命令:centos

# 命令是这样的,title为本身起的名字,url为box地址,能够在线也能够本地
# vagrant box add {title} {url}
# 实际安装命令,本地下载下来的
vagrant box add CentOs6.5_64 E:\boxes\centos65-x86_64-20140116.box

 五、找一个/新建一个目录,例如vagrant_project,而后初始化环境

复制代码
#新建目录
mkdir vagrant_project
#打开此目录
cd vagrant_project
#初始化,CentOs6.5_64为你上方设置的title
vagrant init CentOs6.5_64
复制代码

初始化成功后,本目录下会出现Vagrantfile这样一个文件,这个是vagrant的配置文件,后续的配置在这里修改

六、先都使用默认的配置,来启动下:

vagrant up

会显示一系列启动信息:

复制代码
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
    default: Adapter 2: hostonly
==> default: Forwarding ports...
    default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222//注意这里
    default: SSH username: vagrant//这里
    default: SSH auth method: private key
    .......
复制代码

若是不报错的话就算是启动成功了,若是出现错误则谷歌或百度,我这边主要遇到的错误为无限卡在 default: SSH auth method: private key这个地方,很大可能的缘由是本机没有开启虚拟化技术,重启电脑,按f2或其它的键进入bios设置,找到virtual相关字样的开启便可。

七、远程链接linux,此时windows下能够用putty或者是xshell来链接,host地址如上方标识的注意: 127.0.0.1:2222,用户名密码都为:vagrant

此时,默认的共享文件夹的对于关系是windows下的vagrant_project文件夹对应linux下的/vagrant文件夹,能够随便在双方创建几个文件测试下是否两方是同步的

八、关闭等命令,因为还有好多须要配置,暂时能够关闭,等配置完成后再启动

#关闭
vagrant halt
#重启
vagrant reload

2、网络配置、共享目录等相关配置

以上仅仅是展现了安装和开启的简单用法,但真正能用于开发还须要额外的配置,打开上方提到的Vagrantfile配置文件来进行配置,好多都是已注释掉的,选择去掉便可

一、网络配置,vagrant有三种配置方法:官网文档点这里查看

  a、端口映射,意思是将虚拟机的端口映射到主机的端口上,主机局域网内能够经过访问这个端口来访问到你虚拟机上的东西

config.vm.forwarded_port 80, 8080

  上述做用是将虚拟机的80端口映射到主机的8080端口上,那我直接访问主机的8080端口就至关于访问虚拟机的80端口

  b、私有网络,只有主机才能访问虚拟机,主句局域网内成员不能访问的虚拟机的内容

config.vm.network "private_network", ip: "192.168.33.10"

  上述设置完成后,在本机能够经过192.168.33.10来访问虚拟机,须要注意192.168.33.10虽然能够随便设定,但若是主机的ip为192.168.1.xxx字段,那就不要这个再用这个区段,能够2.xxx或3.xxx或其它,以避免形成冲突。

  c、共有网络,主机局域网内成员能够访问虚拟机中的内容,虚拟机至关于局域网内的一员

config.vm.network "public_network", ip: "192.168.1.120"

  以上配置通常来讲开发环境也不须要局域网内成员访问,因此大部分状况下是选择用b、私有网络来开发,这个可根据实际状况来选择。

二、共享目录,用户能够自定义共享目录,在Vagrantfile配置文件中配置:

#禁用原有的默认的共享目录
config.vm.synced_folder '.', '/vagrant', disabled: true
#增长新的共享目录,第二个参数以当前文件夹为基准
config.vm.synced_folder "abc", "/www/web/abc",

上方至关与windows下的vagrant_project/abc文件夹对应linux下的/www/web/abc文件夹

除了能够自定义共享文件外,还能够选择共享的方式,vagrant有四种共享的方式,官网文档请点这里查看

  a、NFS共享方式,windows平台没法使用此配置,且用此方式时不能修改文件的全部者和全部组

  b、RSync共享方式,全部平台均可以使用,但这种方式貌似有个缺点就是主机的改动能够同步到虚拟机中,但虚拟机中的改动没法同步到主机中,若是要实现双向同步可能还需作其它设置,因为没有用过,因此不太清楚。

  c、SMB共享方式,只有windows平台可使用,曾有找一些资料来配置,但一直没有成功,因此具体的并不太清楚,但貌似效率是挺不错的。

  d、VirtualBox共享方式,这是VirtualBox提供的也是vagrant默认的共享方式。当文件数量小时用着不错,当文件数量大的时候打开网页会卡到超时。

总之以上,若是主机是mac,则推荐用NFS共享方式,若是是windows则推荐用smb或者rsync方式,若是文件不多,那用默认的就能够了。

但除了上方说的,windows下其实还有方式能够加快网站访问速度,那就是用Vagrant WinNFSd这款插件,插件地址点这里,这种方式是windows下提升速度最简单的方式了:

vagrant plugin install vagrant-winnfsd

安装完成后配置type为nfs,虽然官网上说nfs不能应用于windows,但用这个插件后就能够了。

config.vm.synced_folder "abc", "/www/web/abc",type:"nfs"

测试了下,此插件仍是很是有效的,原先打开yii2框架的文件会超时,或十、20多秒,但用了这个后响应在2s之内,仍是能够接受的。另提供一个参考资料:让Vagrant在Windwos下支持使用NFS/SMB共享文件夹从而解决目录共享IO缓慢的问题

 3、域名访问及打包分发

一、域名访问,主要是虚拟的本地域名配置问题

这里仍是安装了lanmp_v3.1,具体的安装方法能够看之前的文章:Linux下安装LANMP环境或者去下载官网上去找安装说明

新建一个站点,指定目录到共享的目录,随便取个虚拟的域名:www.abc.com

测试须要在主机中修改host,以下:(至于虚拟机中/etc/hosts文件中,测试修改与不修改都不影响访问)

192.168.33.10    www.abc.com
192.168.33.10    abc.com

而后直接在浏览器中用http://www.abc.com既可显示虚拟机中的内容了。而直接在windows中的的IDE修改文件,会实时经过这个网址展现出来。

二、打包分发

vagrant package

等待一段时间,会发如今目录生成一个package.box的文件,这个就是已经包含安装环境的镜像了,将此镜像发给同事,让其安装上方所属的步骤加载镜像vagrant box add {title} {url}命令,而后配置本身的网络及共享文件夹就能够直接开发了,远离从新配置环境的烦恼。

以上就是vagrant经常使用的一些操做,挺不错的,试试吧!

相关文章
相关标签/搜索