windows下vagrant的安装使用

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

1、为了开发环境与生产环境一致(很多开发环境为windows而生产环境为linux),不至于出现在开发环境正常而移步到正式生产环境时出现各种问题,而vagrant通过共享文件,可以实现在主机(windows)下的IDE编写代码操作,直接在虚拟机(linux)中运行展示出效果。

2、在vagrant中只需要搭配一次开发环境,然后就可以将搭配好的环境系统镜像打包发送给其他的同事用了,其他同事只需要下载vagrant和virtualBox,然后配置下共享目录后就可以开发了,再也不需要关心配置环境的问题了。

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

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

一、安装步骤如下:

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

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

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

4、将下载的镜像加载,顺便说下,第3步可以不用,vagrant支持在线安装镜像,但由于长城的原因,所以最好通过其它方法将镜像下载下来,再在本地加载,,打开cmd,输入以下命令:

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

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

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

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

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

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: natdefault: 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相关字样的开启即可。

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

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

8、关闭等命令,由于还有好多需要配置,暂时可以关闭,等配置完成后再启动

#关闭
vagrant halt
#重启
vagrant reload

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

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

1、网络配置,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、私有网络来开发,这个可根据实际情况来选择。

2、共享目录,用户可以自定义共享目录,在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框架的文件会超时,或10、20多秒,但用了这个后响应在2s以内,还是可以接受的。另提供一个参考资料:让Vagrant在Windwos下支持使用NFS/SMB共享文件夹从而解决目录共享IO缓慢的问题

 三、域名访问及打包分发

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

这里还是安装了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修改文件,会实时通过这个网址展示出来。

2、打包分发

vagrant package

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

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

转载于:https://www.cnblogs.com/gongchixin/articles/10141436.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/484540.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《2021全球脑科学发展报告》发布

来源:众诚智库编辑:蒲蒲近年来,以人工智能、量子信息、集成电路、生命健康、脑科学、生物育种、空天科技、深地深海等为代表的新一轮科技革命和产业变革深入发展,正在重构全球创新版图、重塑全球经济结构。在众多极具“颠覆性”的…

学者要研究真问题做真学问

来源:秦四清科学网博客链接地址:http://blog.sciencenet.cn/blog-575926-1289864.html创新难,原创更难,难于上青天。究其原因,主要在于学者缺乏对“真问题”的发现能力和凝练能力。创新的本质,是通过新的思…

cordova使用cordova-plugin-baidumaplocation插件获取定位

cordova使用cordova-plugin-baidumaplocation插件获取定位 原文:cordova使用cordova-plugin-baidumaplocation插件获取定位版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mate_ge/article/details/78913914 1、首先在百度地…

神经网络完成芯片设计仅需几小时

来源:科技日报作者:张梦然 科技日报北京6月9日电 (记者张梦然)英国《自然》杂志9日发表一项人工智能突破性成就,美国科学家团队报告机器学习工具已可以极大地加速计算机芯片设计。研究显示,该方法能给出可行的芯片设计…

python-类的基本知识

#类的基本知识 #类对象的优点:多态,封装,继承#多态 from random import choice s[A,"B","C","D"] chchoice(s)#从列表中随机选择元素,并返回 print(ch)#例:序列中的count函数为多态函数…

ElementUI实现地址自动补全文本框

新冠疫情自我检测系统网页设计开发文档 Sylvan Ding 的第一个基于 Vue.js 的项目. 本项目所提供的信息,只供参考之用,不保证信息的准确性、有效性、及时性和完整性,更多内容请查看国家卫健委网站! Explore the docs View Demo…

孙茂松:机器能创造吗?

来源:TsinghuaNLP中国人工智能学会主办的2021全球人工智能技术大会(GAITC 2021)6月5日-6日在杭州举行。6月5日晚,中央音乐学院音乐人工智能系主任李小兵教授和清华大学人工智能研究院常务副院长孙茂松教授共同主持了《当AI与艺术相…

Nginx+Fastdfs

注: 在配置时,使用非root用户配置 fdfs/fdfs 1. 集群部署 1.1. 准备 创建目录:本文档中所有内容安装到/fdfs目录 [fdfs5861be93b5b0 /]$mkdir -p /fdfs/fastdfs/data /fdfs/nginx/nginx_temp /fdfs/soft && ln -s /fdfs/fastdf…

6小时完成,Jeff Dean领衔AI设计芯片方案登Nature,谷歌第四代TPU已用 芯快递 今天...

来源:机器之心编辑:杜伟、陈萍将芯片的布局规划看作一个深度强化学习问题,谷歌大脑团队希望用 AI 来提升芯片设计效率。基于 AI 的最新设计方案可以在数小时内完成人类设计师耗费数月才能完成的芯片布局,这将有可能引领一场新的芯…

python-异常

#异常:每个异常都是一些类的实例,这些实例可以被引发,也可以进行捕捉; #异常的引发:通过raise语句可以引发异常raise Exception raise Exception("MyException!")#通过dir函数可以得到模块的内容 import mat…

在Docker中运行Vue.js项目(开发环境/生产环境)

新冠疫情自我检测系统网页设计开发文档 Sylvan Ding 的第一个基于 Vue.js 的项目. 本项目所提供的信息,只供参考之用,不保证信息的准确性、有效性、及时性和完整性,更多内容请查看国家卫健委网站! Explore the docs View Demo…

所有竞争,本质都是“硬核能力”之争

来源:中科创星文 :君莫笑轮值主编:智勇 值班编辑 :金木研一、科技创新,是世界进步的第一推动力站在5000年后的今天,回首人类的发展进程,从石器时代—青铜时代—铁器时代—蒸汽时代—电气时代—信…

深度报告:芯片设计EDA 2.0时代,三大路径搞定六大挑战

编辑:智东西内参EDA是Electronic Design Automation的缩写,几十年来成为芯片设计模块、工具、流程的代称。从仿真、综合到版图,从前端到后端,从模拟到数字再到混合设计,以及工艺制造等,EDA工具涵盖了芯片设…

2018上海

转载于:https://www.cnblogs.com/kakaisgood/p/10158442.html

python-类方法和属性

#类方法,属性和迭代器 #为了类是新型的,应该把语句__metaclass__type放在模块的开始, #或者子类化内建类object class newtype(object):pass#构造方法:一个对象创建后,会立即调用构造方法,即__init__ class…

taro中子父传值

其实网上很多方法,我这只是一个简单的demo,废话不多说直接上代码 import Taro, { Component } from tarojs/taro import { View, Text } from tarojs/components import ./index.less//子组件 class Child extends Component{constructor(props) {super(props);this.state ({}…

如何计算感受野(Receptive Field)

深度神经网络中的感受野(Receptive Field) 本文转载自知乎:深度神经网络中的感受野(Receptive Field) - 蓝木达的文章 - 知乎 在机器视觉领域的深度神经网络中有一个概念叫做感受野,用来表示网络内部的不同位置的神经元对原图像的感受范围的大小。神经元…

物理学需要哲学,哲学需要物理学

来源:微信公众号“Philosophia 哲学社”撰文:卡洛罗威利(Carlo Rovelli)翻译:朱科夫「反对哲学」是一位当代伟大的物理学家——诺贝尔物理奖得主、基本粒子物理「标准模型」的奠基人斯蒂文温伯格(Steven We…

[转帖]Oracle 11G RAC For Windows 2008 R2部署手册

Oracle 11G RAC For Windows 2008 R2部署手册(亲测,成功实施多次) https://www.cnblogs.com/yhfssp/p/7821593.html 总体规划 服务器规划 1、建议使用两台硬件配置一模一样的服务器来作为 RAC 环境的两个物理节点 2、服务器至少需要配置两块物…

生日快乐送女朋友的网页生日礼物模版

生日快乐送女朋友的网页生日礼物模版 Demo: http://sylvanding.online/happy-birthday-20221120 仓库:https://github.com/sylvanding/happy-birthday-20221120 参考 背景 https://codepen.io/arcs/pen/XKKYZW蛋糕 https://codepen.io/fixcl/pen/AaBNZB卡片 http…