Chef作为 DevOps运动的重要工具之一,用于快速实现云端自动化配置管理。全书共16章,主题涉及Chef配置管理、Ruby及其语法、如何写Chef recipe,如何用Test Kitchen管理沙盒测试环境,如何用Chef客户端管理单个节点,Chef cookbook如何写和如何用,如何用Chef服务器管理多个节点,搜索、数据包、角色、开发环境和测试等都有介绍。
本书是一本介绍Chef基础架构自动化平台的入门书,有比较强的实操性,很适合刚开始接触Chef、配置管理和自动化编程的读者阅读和参考。
在云时代,Chef作为DevOps运动的重要工具之一,主要用于实现自动化配置管理和运维,帮助大大小小的企业解决各种运维问题。本书针对刚开始接触配置管理的开发人员和系统管理员,阐述了如何在短短几分钟或者几个小时之内搭建和部署应用,而不像以往那样要花几天或者几周时间。
本书介绍如何写基于Ruby的Chef代码,通过实例来引导读者逐步掌握各种Chef工具和配置管理概念。只要略懂命令行,熟悉基本的系统管理,就可以通过本书迅速掌握Chef。
前言
这是一本什么书
《学习Chef》是一本针对学习Chef基础架构自动化平台的入门书籍。这是一本面向
Chef、配置管理和自动化编程初学者的书籍。
通过使用Chef,你将可以对你的基础架构内应用程序的配置、打包和部署以代码的形式
表现出来。我们会展示为什么通过代码来为你的基础架构建模会很轻松、自然地带来可
在任何时候重建整个基础架构的便利,而手动运行命令则不能如此。一旦你理解了这个
用代码来记录和建模整个基础架构的蓝图,就可以在几分钟或小时内建立或重建你的整
个应用基础架构,而不是像手动进行那样需要几天、几周或更长时间来完成。本书为入
门书籍,你并不需要拥有任何Chef、基础架构自动化或编程的经验。
首先,我们会展示如何在你的个人开发用电脑上配置Chef的开发环境。你将来会使用此
开发环境来撰写和测试Chef代码。俗话说“实践出真知”,学写代码也如此。因此我们
会在本书中尽早引导你开始实践写代码,并在每个新章节介绍一个新的概念和相应的
Chef工具来慢慢引导你前进。我们也会提供动手实例来帮助你加深对概念的理解,实践
动手写代码。
在你读完本书之后,你将对Chef和基础架构自动化的基本概念有较好的理解。然后可
以继续阅读以下两本对Chef更深入探讨的书籍:Stephen Nelson-Smith写的Test-Driven
Infrastructure with Chef(第2版)和Jon Cowie写的Customizing Chef。
谁是此书的读者群体
本书适合没有Chef和基础架构自动化经验的系统管理员和软件工程师。读者需要相对熟
悉命令行的使用及能够完成基本的系统管理任务。
本书中所有的动手实例都可以在Linux、Mac OS X或Windows上操作。必要的时候,我
们会提供分别针对每个平台的讲解。由于目前并没有针对Chef的易用的集成开发环境
(IDE),和Chef交互的主要界面是命令行。幸运的是,除了最开始的安装过程之外,
Chef的命令行界面在各个平台上几乎相同,这使我们能够在本书覆盖上述三个操作系统
下Chef的使用而不至于过度干扰使用其中任何一个操作系统的读者。
你不需要拥有自动化编程经历来阅读此书,但你至少要写过shell脚本、批处理文件或
PowerShell脚本。你应该在学习写Chef代码之前对写任何一种脚本相对熟悉。
为什么都是厨房用语
在阅读此书的时候,你也许会注意到Chef的发明者使用厨房用语来描述基础架构自动化
工具和概念。Chef软件公司(发明并维护Chef的公司)的工程师们在早期创建Chef的时
候发现类似菜谱或按照配方单做菜的说法是对一些诸如一个自动化脚本的集合或运行一
份永远能一致重建一个基础架构组件的代码的抽象概念的很好的比喻。如此使用厨房用
语来做比喻,能让初学者面对其他专业用语相对更容易接受基础架构自动化的概念。除
此以外,从市场和品牌的角度也让人更容易记得Chef。
本书采用的约定
本书采用以下排版约定。
斜体(italic)
用于表明新的术语、URL、电子邮件地址、文件名和文件扩展名。
等宽字体(Constant width)
用于程序清单,在正文段落中出现的程序元素(如变量或函数名)、数据库、数据类
型、环境变量、语句和关键字也采用这样的字体。
等宽粗体(Constant width bold)
用于显示命令或应该由用户键入的其他文本。
等宽斜体(Constant width italic)
表明这里的文本需要替换为用户提供的值或其他由上下文确定的值。
提示:这个图标表示小提示或建议。
说明:这个图标表示通用的说明。
警告:这个图标表示警告或需要注意。
示例代码的使用
补充资料(案例代码、练习等等) 可在此链接下载(英文):http://learningchef.com。
本书的目的是帮助读者完成工作。通常情况下,可以在你的程序或文档中使用本书中
给出的代码。不必联系我们获得代码使用授权,除非你需要使用大量的代码。例如,
在写程序的时候引用几段代码不需要向我们申请许可。但以光盘方式销售或重新发行
O’Reilly书中的示例确需要获得许可。引用本书或引用本书中的示例代码来回答问题也
不需要申请许可。但是,如果要将本书中的大量范例代码加入你的产品文档,则需要申
请许可。
我们欣赏引用时注明出处的做法,但不强求。引用通常包括书名、作者、出版社和
ISBN,例如“Learning Chef by Mischa Taylor and Seth Vargo (O’Reilly). Copyright 2015
Mischa Taylor and Seth Vargo,978-1-491-94493-6”。
如果觉得使用示例代码的情况不属于前面列出的合理使用或许可范围,请通过电子邮件
联系我们,邮箱地址为permissions@oreilly.com。
Safari® Books Online
说明: Safari Books Online是一个按需定制的数字图书馆,以图书和视频的形式提供全球技术领域
和经管领域内知名作者的专业作品。
专业技术人员、软件开发人员、网页设计人员、商务人员和创意专家将Safari Books
Online用作自己开展研究、解决问题、学习和完成资格认证培训的重要来源。
Safari Books Online为组织机构、政府部门、教育和个人提供广泛、灵活的产品组合
和定价方式。在这里,订阅者通过一个可以全文检索的数据库中就能够访问数千种图
书、培训视频和正式出版之前的书稿,这些内容提供商有O’Reilly Media、Prentice Hall
Professional、Addison-Wesley Professional、Microsoft Press、Sams、Que、Peachpit
Press、Focal Press、Cisco Press、John Wiley & Sons、Syngress、Morgan Kaufmann、
IBM Redbooks、Packt、Adobe Press、FT Press、Apress、Manning、New Riders、
McGraw-Hill、Jones & Bartlett、Course Technology及其他几百家出版社。欢迎访问
Safari Books Online,了解更多详情。
联系我们
对于本书,如果有任何意见或疑问,请通过以下地址联系出版商:
美国:
O’Reilly Media,Inc.
1005 Gravenstein Highway North
Sebastopol,CA 95472
中国:
北京市西城区西直门南大街2号成铭大厦C座807室(100035)
奥莱利技术咨询(北京)有限公司
本书也有相关的网页,我们在上面列出了勘误表、范例以及其他一些信息。网址如下:
http://shop.oreilly.com/product/9781491944936.do(英文版)。
对本书做出评论或者询问技术问题,请发送E-mail至以下邮箱:bookquestions@oreilly.com。
如果希望获得关于本书、会议、资源中心和O’Reilly的更多信息,请访问以下网址:
http://www.oreilly.com。
致谢
来自Mischa:我要感谢所有对本书创作过程中给予反馈的人。感谢我的姐姐和Jane Maris
Sinagub博士给予我的精神支持和鼓励。
我要真心地感谢所有对本书有所贡献的人,包括但不限于: Alex Vi n y a r、Alyssa
Nabors、Anthony Stonebarger、Daniel DeLeo、Deluan Quintao、Eric Helgeson、Gene
Harris、Glenna Gorlick、Jason Steele、Jennifer Davis、Jo Rhett、John Keiser、Jennifer
Davis、John Fitzpatrick、Jon Cowie、Julian Dunn、Katherine Daniels、Kelly Setzer、
Kimberly Lanning、Landon Medlock、Lejo Varughese、Mandi Walls、Michael Goetz、
Michael Vitale、Nathen Harvey、Patricia Fernandes、Rhiannon Portwood、Sascha
Bates、Sean Carolan、Serdar Sutay、Shane Robinson、Steve Taylor和Thomas Petchel。
感谢Chef软件公司把Chef基础培训资料授予Creative Commons Attribution Share Alike许
可。 本书中使用了其中的一些图表和例子。同时感谢Courtney Nash、Brian Anderson和
所有O’Reilly同仁,你们的Atlas写作系统使整个写作过程变得愉快。
特别感谢:Mark Burgess做的理论开发让Chef成为可能,John Keiser提供written in stone
示例,Jennifer Davis对如何组织本书最开始的章节提供了宝贵的反馈,John Fitzpatrick
测试了安装的示例及提供反馈,Nathen Harvey帮助提供入门资料,Sascha Bates对于
Chef初学者需要从何学起提供了清晰的指导,Adam Jacob和Sean O'Meara给我的关于
Chef配置管理理论的指导,以及Steve Taylor和Mark Andersen给予机会在培训中试用本
书的内容。
最后,我要感谢我的共同作者Seth Vargo所给予的信任,使我可以一起完成此书。
来自Seth:我想感谢让本书成为可能的所有人。我尤其要感谢Nathen Harvey、Ramez
Mourad和Jake Vanderdray,因为他们向我介绍了Chef和整个Chef社区。没有他们的鼓励
和帮助,我不可能完成此书。
除了要感谢所有Mischa已经提到的人之外,我还要感谢我的团队Seth Chisamore和
Yvonne Lam一直以来的支持和帮助;感谢我的室友和最好的朋友Joe Frick支持我整晚
都在电脑前敲键盘(而放弃其他娱乐活动); 感谢卡耐基·梅隆大学的Larry Heimann
教授和Jeria Quesenberry教授带给我足以使我能成为一位教育者的经历和机会; 感谢
Stafford Brunk迫我跳出固有思维;感谢我的父母Richard Stormer、Robbin Stormer、
Robert Vargo和Dara Vargo的大量支持和对我完成此书的持续提醒。
同时要感谢Courtney、Brian、Sonia和整个O’Reilly团队把整个写作过程变得完美。我
同时希望特别感谢我的共同作者Mischa Taylor之卓越贡献和为完成本书而付出的辛勤努
力,没有你,我不可能做到。
Mischa Taylor是一名Chef咨询师,这家位于西雅图的高成长新创公司,主营业务为打造Chef平台,快速实现自动化配置,并将业务过程移到云端。他的兴趣聚焦于打造高质量的产品和提升组织内部工程实践的生产力。他能说会道且擅长指导,同时在软件开发和神经网络计算方面也颇有专研和造诣。
Seth Vargo是HashiCorp的软件工程师和开源倡导者。他先后任职于Chef (Opscode), CustomInk和匹兹堡的多家新创公司。他对技术和组织文化有很强烈的爱好。在写代码和开源相关工作之余,他喜欢参与本地用户组和会议。他是匹兹堡DevOps Days的组织者。
闫诺,Chef创始工程师。在Chef软件公司任职期间作为主要工程师研发了托管企业Chef服务。2011年离开Chef参与创办消费者推荐搜索引擎公司Livestar,2013年并入以图片为基础的推荐、探索引擎公司Pinterest。在Pinterest任职期间,他参与构建综合性实时认知及响应平台,后者服务于Pinterest的自动化垃圾内容处理、通知推送服务、广告服务及内容推荐服务等。2015年底,他离开Pinterest,目前正在为解决新的工程挑战而忙得乐此不彼。
闫诺毕业于美国华盛顿大学(西雅图),大学主修应用及计算数学。平时对世界各地的文化和各类艺术很感兴趣。工作之余,时常为朋友圈内有需要的创业公司提供帮助,积极参与鼓励大学生学习科学、技术、工程及数学的公益项目。