写点什么

书评: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:232218

评论

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

数据价值平台化输出:数据服务平台

Taylor

数据中台 接口管理 API接口管理 数据服务 数据服务平台

Spring Security 在 Servlet 的作用区域

HoneyMoose

《MySQL入门很轻松》第4章:数据表中存放的数据类型

乌龟哥哥

9月月更

Java中的悲观锁和乐观锁是什么意思?其分类依据是啥?

wljslmz

Java 乐观锁 悲观锁 9月月更

字符串哈希

留白的艺术

新品速递|海泰边缘安全网关护航工控数据采集

电子信息发烧客

微信架构图

Johnny

#架构实战营

「产品运营」研发效能之DevOps平台如何运营?

laofo

DevOps cicd 研发效能 持续交付 工程效率

极速体验SpringCloud Gateway

程序员欣宸

Java SpringCloud SpringCloud Gateway 9月月更

面试官问我 JS 中 foreach 能不能跳出循环

茶无味的一天

JavaScript js foreach for

leetcode 513. Find Bottom Left Tree Value 找树左下角的值 (简单)

okokabcd

LeetCode 数据结构与算法

无线网络安全技术中的王牌标准:WPA到底是个什么东东?解决了什么问题?

wljslmz

网络安全 无线技术 9月月更 WAP

工业4.0时代IIoT存储面临哪些挑战

CnosDB

IoT 时序数据库 开源社区 CnosDB infra

第1章:初识数据库与MySQL----数据库基本概念

乌龟哥哥

9月月更

《MySQL入门很轻松》第2章:MySQL管理工具介绍

乌龟哥哥

9月月更

打破线上社交“不可能三角”,语音社交可以做到既要、又要、还要

擎声科技

音视频 sdk 语音社交 实时互动 擎声Qtt

Databricks Data Science&Engineering模块介绍

Jackchang234987

大数据 数据产品经理 数据产品 大数据开发 Databricks

OptaPlanner场景和示例

成长兔🐇

(WebFlux)004、WebFilter踩坑记录

编号94530

Spring Boot WebFlux Reactor3 WebFilter

部署华为云DWS过程

乌龟哥哥

9月月更

从单机百万tpmc到分布式千万tpmc,GaussDB性能提升的3个关键技术剖析

乌龟哥哥

9月月更

大数据开发应用场景解读

Jackchang234987

大数据 数据开发

14个你必须要知道的ubuntu快捷键

乌龟哥哥

9月月更

《MySQL入门很轻松》第5章:数据完整性及其分类

乌龟哥哥

9月月更

Python之简易计算器的制作

梦笔生花

Python 9月月更 简易计算器

Python之鸡兔同笼

梦笔生花

9月月更 Python语法 鸡兔同笼

开发者有话说|我想给你讲一个故事

石云升

个人成长 9月月更

Python之斐波那契数列的实现

梦笔生花

Python 9月月更 斐波那契数列

第56届世乒赛团体赛开幕!三思近900㎡ LED显示点燃赛事激情

电子信息发烧客

2022-09-30:以下go语言代码输出什么?A: true true false true false; B: true false false true false; C: true true

福大大架构师每日一题

给你一本武林秘籍,和KeeWiDB一起登顶高性能

腾讯云数据库

redis 腾讯云 NoSQL 数据库 腾讯云数据库 KeeWiDB

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