微信号:infoqchina

介绍:有内容的技术社区媒体

书评:Vagrant up and running

2013-12-11 19:40 InfoQ

Mitchell Hashimoto的新书 "Vagrant up and running" 涵盖了Vagrant从基础用法到功能扩展的方方面面。


第一章中,Mitchell描述了"Vagrant之道"——一些高效使用Vagrant的提议。


他描述了开发者和运维工程师应如何从版本控制工具中签出项目,并通过执行"vagrant up"实现系统全面运作。


Vagrant还提供了简单回退功能"vagrant destroy"。这一功能保证环境的改变可恢复,一行"vagrant up"就能让你回到初始状态。


阐述过基本流程,Mitchell又将Vagrant与其他可选方案(如普通的桌面虚拟化技术、LXC等基于容器的方法以及直接部署在云端等)做了对比。


尽管可行,但比起Vagrant,这些方案在简单性和环境处理的统一性上都有所欠缺。自1.1版起,借助全新的插件系统,Vagrant甚至能够支持这些方案中的大多数。


Mitchell以安装指令为第一章作结。安装Vagrant 1.1时,你要确保移除之前尚未用RubyGems安装过Vagrant的任何版本,因为之前的安装可能带来安装程序的冲突。


第二章中,Mitchell带你上手第一台Vagrant机。他教你如何通过执行"vagrant init"创建新项目;以及连接到Vagrant机的最简单方法,"vagrant ssh"。


他简单介绍了Vagrantfile——一种在每个项目中都要创建的、用于配置Vagrant使用意愿的简单文本文件。


Vagrant机用所谓的"Box" ,类似虚拟机的基础映像。他介绍了box是什么以及项目间所能共享的大量磁盘映像,这使得你不必多次下载。


展示过Vagrant机如何启动,他又介绍了机器使用的基本方式,像ssh,基础网络以及共享文件夹。书中后半部分会就这些方面详细展开。


第三章是Vagrant虚拟机的设置技巧。为了更简单地销毁和新建虚拟机,你得有安装必备软件和完成系统配置的全自动化方案。


他演示了一种上手自动化配置的基础手段,演示中包括一些简单示例,示例用到了shell脚本,Chef 以及Puppet。


配置器使用是一个重要话题,而这一章只是抛砖引玉。Chef 以及Puppet被相关书籍宣称能够完全解决配置管理方面的问题。


第四章中,Mitchell介绍了Vagrant 所支持的各类可行网络模式。他深入探讨了端口转发,单机网络和桥接模式。


Mitchell对每种方案的优缺点进行比对,从而方便读者选择最适合的网络模式。这一章为第五章和多机集群奠定了基础。


Vagrant能用一行命令启动多台配置了相同Vagrantfile的机器。Mitchell讨论了如何控制多台机器:通过命名并将该名称后接在任何Vagrant指令末,可以命令Vagrant将该指令单独应用于某台机器。机器名缺省情况下,Vagrant指令将被用于集群内所有机器。


展示过多机集群的基本操控后,Mitchell向读者介绍了一些网络配置项。本章章末有一个MySQL使用的现实用例。


第六章更深入探索了Boxes的细节。Mitchell讨论了boxes背后的原理:boxes让你在配置时有一个更高的起点,而非每次都用"vagrant up"完成整个操作系统安装。


解释boxes原理之后,Mitchell向读者介绍了Box数据格式并向你展示了如何创建和打包 Boxes。最后介绍了如何为Boxes创建一个默认的Vagrantfile。


第七章是本书最有深度的话题:Vagrant的插件扩展。


Vagrant提供的插件系统能让你扩展功能、添加自定义指令或新配置项、设置自定义配置器,甚至变更现存Vagrant行为。Mitchell为每种情况配以相关示例用以展示着手开发Vagrant扩展的各类可能。这一章还涉及开发环境配置以及错误处理和验证。


Hashimoto的"Vagrant up and running" 带你上手Vagrant。书中介绍了掌握虚拟机必知的重要概念,还有如何自己动手扩展Vagrant的演示。


关于作者


Mitchell Hashimoto是一个热情洋溢的工程师,专业讲师,企业家。Mitchell为开源软件创建、编码了近十年。Mitchell在很多会议上都发表过相关工作的讲演,诸如VelocityConf, OSCON, FOSDEM等等。Mitchell是HashiCorp的创始人,这是一家以创建世界最佳DevOps工具(包括Vagrant在内)为目标的企业。创建HashiCorp之前,Mitchell当过五年的web开发者和四年的运维工程师。


***********************************

本文来自InfoQ微信公众账号:infoqchina

1、回复“今日新闻”,查看今天更新的新闻;

2、回复“今日英文”,查看今天英文站的更新;

3、回复“文章 +关键词”,搜索关键词相关内容;

4、回复“QCon”,了解QCon大会相关信息;

5、回复“活动”,了解最近InfoQ组织的线下沙龙;

6、回复“架构师”,获取《架构师》下载地址;

7、回复“投稿”,了解投稿和加入编辑团队的流程。

***********************************

 
InfoQ 更多文章 Facebook如何实现PB级别数据库自动化备份 学术派Google软件工程师Matt Welsh谈移动开发趋势 Spotify为什么要使用一些“无聊”的技术? 妹纸们放假了,汉纸们做啥? 大多数重构可以避免
猜您喜欢 77%的IT业人员拟继续学习IT知识以防落伍 王健林独家:如何快速挣到一个亿? 新泽西高速实践物联网时代的智慧交通管理 7款开源Java反编译工具 【新生说吧】让能力足以支撑梦想,名校硕士选择华信智原!