阿里、蚂蚁、晟腾、中科加禾精彩分享 AI 基础设施洞见,现购票可享受 9 折优惠 |AICon 了解详情
写点什么

书评:Vagrant up and running

  • 2013-12-10
  • 本文字数:1739 字

    阅读完需:约 6 分钟

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 )关注我们,并与我们的编辑和其他读者朋友交流。

2013-12-10 08:232096

评论

发布
暂无评论
发现更多内容

Flink集群部署:Standalone部署

正向成长

开箱即用cypress

夏兮。

PO Cypress

分布式任务框架:xxl-job使用问题整理

程序员架构进阶

开源 分布式任务调度 七日更 2月春节不断更 XXL-JOB

【STM32】TIM---基本定时器

AXYZdong

硬件 stm32 2月春节不断更

数据量大读写缓慢如何优化(5)【读缓存】

我爱娃哈哈😍

redis 缓存 架构设计实战 缓存设计

程序员成长第八篇:做好测试工作

石云升

程序员 测试 2月春节不断更

Jacoco统计web接口/功能测试的代码覆盖率

夏兮。

tomcat WebService JACOCO

第十二周学习心得

cc

日记 2021年2月16日(周二)

Changing Lin

2月春节不断更

week12-conclusion

J

LeetCode题解:62. 不同路径,动态规划,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

ElasticSearch.02 - 安装

insight

elasticsearch 2月春节不断更

面向对象设计原则

引花眠

面向对象设计原则

11. 用别人写好的代码,完成我的工作,剩下的时间去摸鱼

梦想橡皮擦

Python 2月春节不断更 python入门

SonarQube&Gitlab-CI 实现静态代码分析

夏兮。

ci gitlab SonarQube

week12-homework

J

ARTS打卡 第31周

引花眠

微服务 ARTS 打卡计划

自动化测试中的Page Object

夏兮。

Python PO selenium

CI-基于JMeter的性能测试

夏兮。

翻译:《实用的Python编程》01_04_Strings

codists

人工智能 爬虫 后端 数据结构与算法 Python Monad

深度讲解背包问题:面试中每五道动态规划就有一道是背包模型 ...

宫水三叶的刷题日记

深度思考 面试 LeetCode 动态规划 数据结构与算法

Elasticsearch Mapping Index索引

escray

elastic 七日更 死磕Elasticsearch 60天通过Elastic认证考试 2月春节不断更

DO、DTO、BO、VO、POJO区别

安琪拉的博客

系统设计

web自动化测试-puppeteer入门与实践

夏兮。

puppeteer

诊所数字化:诊所老板为什么拒绝预约制?

boshi

数字化转型 医院 七日更

什么是MySQL数据库?看这一篇干货文章就够了!

我是哪吒

学习 程序员 后端 MySQ 2月春节不断更

第四章作业

Deborah

如何搭建自动化测试框架

夏兮。

js puppeteer automation

年终述职PPT(996一年,怎么会什么都没干!)

鲁米

年终总结

sonarLint与IntelliJ IDEA 集成

夏兮。

第十二周命题作业

cc

书评:Vagrant up and running_DevOps & 平台工程_Matthias Marschall_InfoQ精选文章