开始使用vagrant无痛开发
更新日期:
很久之前,当我还是个小白的时候,学长们是这么教育我的,在windows下面开发的程序员永远都是小白。
作为一个穷屌丝又买不起mac,于是只好默默的学习使用ubuntu,习惯后发现ubuntu开发真的很爽,但是qq,酷狗各种不能用,最要命的是photoshop也没有。
其实我就是需要个开发环境,需要个linux终端,需要个共享的开发目录,可以在windows下开发,在ubuntu下跑程序。
之后团队的大神指出了一条明路,vagrant
vagrant介绍
什么是vagrant,vagrant是一个使用命令行来管理虚拟机环境的工具。说白了vagrant还是建立在virtural box这样的虚拟机软件上的。
它有这些好处:
- 在虚拟机上跑各种环境,通过共享目录在windows下编写代码。
- 启动后直接ssh到虚拟机上。这样就有个终端了。
- 每个虚拟机镜像就是一个box,我们可以使用别人制作好的box,也可以本地打个包,把你的box发给别人,别人就会得到一模一样的开发环境。
分发环境,终端,共享目录,该有的都有了。。从此解脱了。
安装
首先你先要安装VirtualBox。不会装的自行百度谷歌 = =。
下载地址:https://www.virtualbox.org/wiki/Downloads
然后开始安装vagrant
下载地址:http://www.vagrantup.com/downloads.html
我是直接装的win版的,直接一路安装next到底。
装完之后查看一下你的环境变量。如果没有vagrant的,需要自己手动设置下。
使用
装完后在命令行工具里输入:
1 2 3 4 5 | $cd demo //新建一个项目文件夹并且cd进去 $vagrant box add {title} {url} //添加一个box,title随便取,最好是自己的项目名称,url是box的地址,本地,线上的都支持。 $vagrant init {title} //使用上面添加的box在当前目录生成vagrant的环境。 $vagrant up //启动虚拟机 $vagrant ssh //ssh到虚拟机 |
已经有很多人制作了box,官方这边有个box列表都是可以使用的。你可以直接在线添加,也可以下载下来后使用本地地址添加。鉴于天朝的网络问题。还是下到本地保险点。
我使用的是一个装好rails的ubuntubox地址http://leopard.in.ua/rwprecise64/
启动好后,也可以使用其他工具ssh到虚拟机。这边我是用的putty,google的产品一如既往的给力。
ssh地址为127.0.0.1用户名密码都是 vagrant。
默认情况下你初始化的目录/demo会自动共享到虚拟机的/vagrant目录。这样 你就可以把代码放在windows下的demo目录再用终端在虚拟机上跑代码。非常爽。
配置
vagrant的配置都在你的初始化目录的vagrantfile里面。
包括这些配置。
设置虚拟共享目录
1 | config.vm.synced_folder "demo", "/vagrant" |
第一个参数是 本机的目录 第二个是虚拟机上的挂载共享目录
修改端口映射
1 | config.vm.network :forwarded_port, guest: 80, host: 8080 |
第一个参数是 虚拟机的端口
第二个参数是 本机的端口
这个的意思是 将本机的8080端口映射到虚拟机的80端口。这样如果你在虚拟机里面跑了80端口的apache或者nginx等等,就可以在本机通过localhost:8080放到 虚拟机里面80端口的服务。
更多配置见官网
常用命令
1 2 3 4 5 6 7 8 | $ vagrant init # 初始化 $ vagrant up # 启动虚拟机 $ vagrant halt # 关闭虚拟机 $ vagrant reload # 重启虚拟机 $ vagrant ssh # SSH 到虚拟机 $ vagrant status # 查看运行状态 $ vagrant destroy # 销毁虚拟机 $ vagrant mybox # 打包当前的box,生成mybox.box,之后可以分发给别人安装了 |