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 开发者和四年的运维工程师。
英文链接: Book Review: Vagrant up and running
感谢水羽哲对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。
评论