16
使Vagrant 构建开发环境 20141229 严谨的PHP/Linux研讨会QQ群技术分享 blackpuppy QQ 20293543

使用 Vagrant 构建开发环境

Embed Size (px)

Citation preview

Page 1: 使用 Vagrant 构建开发环境

使⽤用Vagrant

构建开发环境

2014年12⽉月29⽇日 严谨的PHP/Linux研讨会QQ群技术分享 blackpuppy QQ 20293543

Page 2: 使用 Vagrant 构建开发环境

内容Vagrant要解决的问题

Vagrant之道

Vagrant的组成元素

实例演⽰示

进⼀一步的思考 参考资料

Page 3: 使用 Vagrant 构建开发环境

Vagrant要解决的问题⼿手⼯工安装、配置各种软件,这包括:

操作系统:Linux(Ubuntu、CentOS等)、Windows(各种版本)

web服务器:Apache、Nginx等等

语⾔言:PHP/HHVM、Python、Ruby、Node.js等等

数据库:MySQL、MariaDB、PostgreSQL、Redis、Cassandra等等

其它⼯工具:RabbitMQ、Solr等等

Page 4: 使用 Vagrant 构建开发环境

Vagrant要解决的问题(续)

⽆无法重现问题

甲:你说的问题,怎么在我的机器上没事⼉儿啊?

⼄乙:可问题的确存在,不信你到我的机器上来看。

甲:那我的机器和你的环境哪⾥里不同呢?

Page 5: 使用 Vagrant 构建开发环境

Vagrant要解决的问题(续)

团队中没有统⼀一的⽅方法配置开发环境,保持相同的环境

同⼀一台机器上,要为参与的不同项⺫⽬目配置不同的环境

团队中不同的成员使⽤用的机器、操作系统不同

Page 6: 使用 Vagrant 构建开发环境

解决⽅方法 - Vagrant!

管理虚拟机

为团队构建⼀一致的环境

⾃自动化安装和配置的过程

隔离不同的项⺫⽬目,使⽤用各⾃自独⽴立的虚拟机

Page 7: 使用 Vagrant 构建开发环境

Vagrant之道签出代码,vagrant up,继续使⽤用熟悉的⼯工具

只需准备Vagrant的配置和相应脚本

随时 vagrant destroy,再 vagrant up

⽤用完就 vagrant suspend 或 vagrant halt

在团队之内、项⺫⽬目之间共享相同的⼯工作流程

避免“在我的机器上没有这个问题”的问题

Page 8: 使用 Vagrant 构建开发环境

Vagrant可以做什么

通过SSH登录虚拟机

关掉虚拟机

删除虚拟机(虚拟硬盘及其配置信息)

暂停、恢复虚拟机

打包、分发虚拟机

Page 9: 使用 Vagrant 构建开发环境

Vagrant的组成元素配置⽂文件Vagrantfile - 指明下列元素

provider(供应商) - 控制虚拟机

provision - 安装、配置虚拟机上的软件

box - 打包、分发虚拟机

插件 - 扩展功能,可以使⽤用Ruby⾃自⾏行开发

Page 10: 使用 Vagrant 构建开发环境

实例演⽰示

实例⼀一 最简单的Vagrant环境

实例⼆二 Python Sphinx⽂文档环境

实例三 LAMP开发环境

Page 11: 使用 Vagrant 构建开发环境

Vagrant的常⽤用命令vagrant up

vagrant suspend

vagrant halt

vagrant destroy

vagrant status

vagrant global-status

Page 12: 使用 Vagrant 构建开发环境

进⼀一步的思考使⽤用Docker,可以节省资源,极⼤大地缩短虚拟机的启动时间,也利于⽣生产环境的部署

打包、分发box

是否可以使⽤用Vagrant来配置Windows虚拟机?应该使⽤用什么样的provision?是否可以使⽤用PowerShell和DSC?

是否可以使⽤用Vagrant来配置Mac虚拟机?好像不能,也没必要

Page 13: 使用 Vagrant 构建开发环境

参考资料本次技术分享的详细内容 http://www.cnblogs.com/blackpuppy/p/vagrant_manage_development_environment.html

Vagrant官⺴⽹网 https://www.vagrantup.com/

Vagrant Getting Started https://docs.vagrantup.com/v2/getting-started/

Vagrant Documentation https://docs.vagrantup.com/v2/

Atlas (之前叫Vagrant Cloud) https://atlas.hashicorp.com

Page 14: 使用 Vagrant 构建开发环境

参考资料(续)

Vagrant: up and running, ISBN 978-1-449-33583-0 http://shop.oreilly.com/product/0636920026358.do

Hello Vagrant - ⻩黄博⽂文 http://www.cnblogs.com/huang0925/p/3349841.html

Docker与Vagrant之间的特点⽐比较 http://www.cnblogs.com/vikings-blog/p/3973265.html

Page 15: 使用 Vagrant 构建开发环境

问答讨论

Page 16: 使用 Vagrant 构建开发环境

希望抛砖引⽟玉! 谢谢您的参与! 再⻅见!