①一般下午5点前订单,当日发货,开发票联系客服②教材,学习,考试类书默认有笔记(或做过)③其他类书一般无笔记,提前与客服沟通好再下单,否则本店不承担责任)④部分图书籍采用标准图片,可能存在不同印次不同封面,内容一致⑤出版时间过长的书都可能有自然发黄现象。
¥ 59.25 7.5折 ¥ 79 八品
仅1件
作者Lorin Hochstein
出版社电子工业出版社
ISBN9787121275074
出版时间2016-01
装帧平装
开本16开
定价79元
货号1600068739754742272
上书时间2024-11-13
推荐序一
几年前,我和尔冬都作为技术团队的一员在一起开始新浪微博的研发,研发团队开发完第一个服务后就面临服务发布及管理的问题。最开始是通过工程师手动登录服务器的方式来发布与启动。当服务请求增大、服务单元增多后,工程师便将命令写成脚本,通过SSH 在多台机器执行,半人工地解决了一段时间的问题。当服务规模进一步增大,手工运行SSH 变得困难后,我们开始寻找一些工具来使这些工作自动化,当时能找到的工具都需要在机器上安装一个agent,通过agent 接收指令来执行对应的操作。随着服务集群规模变大、依赖变多,当时使用的工具需要具备指令安全、执行进度汇报、执行结果检测等功能。于是我们自己做了一个脚本,可以通过命令行的方式控制软件发布、服务启动与进度查看。随着机器规模的增加,命令行及脚本的方式显得不是很直观,也不利于新进入团队的人了解及使用。于是我们做了一个Web 界面来中心化管理及执行脚本,并且可以很直观地查看进度,还可以选择发布任务执行的范围,较好地解决了当时服务发布遇到的问题。
几年之后,我们发现Ansible 使用相同的理念更好地解决了以上问题。其设计方法也遵循“脚本+ 可视化管理”的思路,Ansible 本身是一种脚本控制的语言,在此之上,我们可以选择其商业化的Tower 软件来可视化地进行管理。而其脚本在指令安全、执行进度汇报、执行结果检测方面,相对于直接运行操作系统脚本都具有更大的优势。
自动化管理是大势所趋,尔冬及时翻译的《奔跑吧Ansible》一书可以给国内同行带来很多启发,希望大家能够利用Ansible 工具及设计思想将应用的发布和配置管理提升到新的高度。
——TimYang
微博研发副总经理,“高可用架构”公号主
推荐序二
运维发展到今天,已经不是刀耕火种的年代,各种运维自动化工具层出不穷,运维人员也逐步摆脱了直接登录服务器进行操作所带来的烦琐、重复和高风险性。自动化工具也有一个演进过程,从Puppet、Saltstack 到Chef,运维人员在学习和使用的过程中也深深因其复杂性而苦恼,特别是客户端机制。相比之下,Ansible 的使用简单很多,这也是它广受欢迎的主要原因。
运维自动化工具本来是用来简化运维工作的,但如果工具本身比较复杂,甚至需要一定的程序开发能力,就会增加使用和推广的难度。Ansible 有三个最吸引人的地方:无客户端、简单易用和日志集中存储。很多时候,运维人员对服务器仅具有临时权限,甚至没有权限,所以无法部署客户端程序。另外,客户端机制往往也是运维自动化容易出问题的地方,这涉及客户端的安装、配置修改和卸载,其中任何一步没有同步完成,都可能会带来隐患。Ansible 很简单,上手方便,不需要啃一本大部头书才能学会使用(从这一点来看,真可谓业界良心)。另外Ansible 又很好地解决了Shell 操作日志的集中存储问题——这一点在被管理服务器数量少时,貌似作用还不大,但在批量管理大量服务器时,就能显示出其便利性了。所有操作日志都存储在Ansible 发起服务器,可以采用自定义的格式,这样可以很方便地知晓哪些服务器的操作有问题,哪些已成功,而且便于日后的追溯。当然,Ansible 的配置管理功能简单而强大,所有被管理的软件配置都集中存储,如果目标服务器想安装MySQL,InnoDB 所占用内存需要从10GB 调整为12GB,那么在Ansible 发起服务器简单修改即可。
我对Ansible 的印象非常好。在2014 年年底的时候,为了给公司采购公有云提供决策支持,我选定了国内八大公有云,对它们进行了长达四个月的测试,总共进行了上万次测试。每家公有云随机选择3~5 台云主机和RDS,每台云主机测试多轮,每轮测试200 次。测试项目包括网络稳定性(探测节点涵盖全国共400 多个)、CPU、内存、磁盘及云主机整机性能测试。如果不借助于Ansible,仅仅两个人是无论如何也不可能在短时间内完成一万多次测试的。我们基于Ansible 编写了一个批量自动化测试工具,这个工具完成了对新入手云主机的一切工作,包括初始化、测试工具部署、测试数据装载及自动发起指定次数的测试流程。结果很完美,所有测试结果都汇聚在Ansible 发起服务器,我们又开发了一个日志自动分析的工具,能从Ansible log 中截取有用的信息并加以汇总(就只差用Excel 出图了)。
同时,Ansible 虽然不如Puppet 等复杂,但也还是需要一些方法和技巧,而且版本更新迭代较快。因此我也很高兴看到尔冬兄亲自翻译的《奔跑吧Ansible》这本书,其英文原版由Michael DeHaan(Ansible 软件的创作者,Ansible 公司前CTO)亲自作序,其受认可度可见一斑。本书内容编排由浅入深,理论与实践并重,作者特别提到了SSHmultiplexing,Ansible 与之配合,可以用来管理成千上万的服务器节点。
尔冬兄是运维行业资深人士,深度参与了新浪微博从小到大的发展过程。每次和尔冬兄交流,总能感觉到他对运维行业深深的感情,以及关于运维的真知灼见。这次尔冬兄亲自翻译此书,可以说是国内诸多Ansible 使用者的福祉,可以帮助大家更好地学习、理解、掌握Ansible,并融会贯通。
——萧田国
开放运维联盟联合主席,高效运维社区发起人
原书推荐序
在2012 年2 月创立的时候,Ansible 还是一个非常简单的项目,随后它的快速发展令我们倍感惊喜。现在,它已经是上千人参与开发的产品了(如果包括参与贡献想法的人,还会更多),并且广泛部署于几乎每个国家。在各种技术会议中总是能找到有(至少)几个人在使用它,这在计算机领域也是件很不寻常的事。
Ansible 的不平凡源自于它的平凡。Ansible 并不企图做盘古开天地般的创新,而是从那些聪明的家伙们已经提出的想法中提炼出精华,并将这些想法尽可能地落地。
Ansible 旨在探求某些学术的IT 自动化方法(它们本身就是对大型繁杂的商业套件的一种反应)与简单粗暴解决问题的脚本之间的平衡点,另外,我们如何能将配置管理系统、部署发布系统、编配系统(orchestration project)以及千奇百怪但是非常重要的Shell 脚本库替换为一个单一系统呢?这恰恰是Ansible 要实现的理念。
我们可以从IT 自动化技术栈中移除主要架构组件吗?去掉管理性守护进程,转而依赖于OpenSSH,意味着系统转眼间就可以开始管理一台新的计算机,而不需要在被管理的机器上安装任何东西。更深一层来说,系统更趋于可靠和安全了。
我注意到,提前尝试使用自动化系统本该使事情变得简单,但实际上却变得更难了。并且编写以自动化在以前为目的的东西就好像个吸收时间的黑洞,使我无法在本应该更专注的事情上投入更多时间。况且我并不想在这种系统上投入数个月以成为这个领域的专家。
我个人尤其享受编写新的软件,而不喜欢在使其自动化方面花太多时间。简而言之,我希望自动化的事情尽快完成,这样我就能有更多时间投入在我更关注的事情上面。Ansible 并不是一个你需要整天和它打交道的系统。你可以很快把它拿起来,很快搞定,然后又很快回到你更关心的事情上面。
我希望这些也会成为你喜欢Ansible 的原因。
尽管我花了大量时间来确保Ansible 的文档易于理解和掌握,但是有不同形式的材料可以参考,并依此尝试实践应用总是大有裨益的。
在《奔跑吧Ansible》一书中,Lorin 使用非常流畅的行文、适于逐步探索的顺序介绍了Ansible。Lorin 几乎是从最开始就参与到了Ansible 项目中,我真诚地感谢他做出的贡献。
我还要真诚地感谢今天项目中的每一位成员,以及未来的每一位成员。
最后,希望你们喜欢这本书,享受瞬间就可以管理你的计算机的愉悦感!啊,对了,别忘记安装cowsay
——Michael DeHaan
Ansible 软件的创作者,Ansible, Inc. 公司前CTO 注2
2015 年4 月
译者序
由于诸多原因,早在童年时代计算机就进入了我的生活。对计算机的迷恋最终将我带进了计算机工程领域。而让我真正从玩耍转向工程化地对待计算机的分水岭就是,对系统管理领域的接触。好吧,不管多么不乐意,这类工作在那个年代就是被称作网管。从我刚开始入门系统管理的时候,我就一直有一个疑问:如果一家公司足够大,有上百台计算机,该怎么管呢?总不能一个个远程桌面连上去吧?嗯,没错,那个时候我使用的还是Windows,而上百台计算机对于当时的我来说已经是一个很夸张的数字了。
2007 年我加入了新浪平台架构部,这里的工作为我真正打开了新世界的大门。那个时候部门正在使用CFEngine 管理上百台机器、为不同功能的服务器划分角色、为相同功能的服务器进行编号(像为公牛编号那样)、为配置文件编写模板来减少硬编码,所有这一切都用一种工程实践的方法解决了我之前的所有疑问。后来,我才知道这个实践性很强的方法的名字——配置管理。
转眼之间,我已经在新浪工作了七年之久。这七年间我的职位与工作内容有多次变化,但所围绕的工作核心从未改变:如何让数千台服务器按照我们想要的方式运转。为了更好地达到这一目的,我尝试过各种配置管理的方式:从CFEngine 到Puppet、SaltStack,甚至是自行开发配置管理工具。但是每一种方式都与我理想中那个遵循“KISS 原则”、易于学习,且在功能上具有无穷扩展空间的配置管理工具相差甚远——直到经同事文旭的推荐,我认识了Ansible。Ansible 的轻量、最小化抽象层及轻松扩展与收缩一下子就吸引了我。目前为止,它是与我理想中的配置管理工具最接近的一个。
这样优秀的工具我当然不会自己独享。我曾经在各种场合向正在寻找合适配置管理工具的朋友与同事推荐Ansible。我发现有一部分朋友虽然对于Ansible 给予了正面的评价,却对缺少中文文档感觉略有不便。这让我意识到语言仍旧是部分技术人员学习技术的障碍之一。显然,我并不具备帮助技术人员提升英语阅读水平的能力,但至少我可以将这本《奔跑吧Ansible》的中文版带给大家,希望本书可以帮助一些读者快速上手Ansible。
由于水平所限,本书中难免出现一些翻译错误。诚恳地欢迎大家向我或者出版社反馈本书中的各种错误。
最后,我想要感谢赵新宇、陈明杰和刘宇等朋友,他们在翻译本书过程中提供了无私的帮助和支持。还要感谢我的夫人张若金的支持与理解。没有你们就不会有本书的出版。
Lorin Hochstein,任职于SendGrid实验室,是一名负责开发与部署新产品的高级软件工程师。他曾在Nimbis Services任职云服务首席架构师,还曾经是加州大学信息科学院的计算机科学家。Lorin拥有马里兰大学计算机科学博士学位。
译者介绍:陈尔冬,前新浪网技术总监;现华为高级技术专家,从事公有云相关能力建设。
原书推荐序 ................................................................................xxiii
前言 .......................................................................................... xxv
第1 章 概述 ................................................................................1
关于版本的说明 .....................................................................................................2
Ansible 的优点 .......................................................................................................2
Ansible 如何运作 ...................................................................................................3
Ansible 的精妙设计有哪些 ....................................................................................4
易读的语法 .....................................................................................................4
远程主机无须安装任何依赖 ...........................................................................5
基于推送模式 ..................................................................................................5
Ansible 管理小规模集群 .................................................................................6
内置模块 .........................................................................................................6
非常轻量的抽象层 ..........................................................................................7
Ansible 太过于简单了吗 ........................................................................................8
我需要具备哪些基础知识 ......................................................................................9
哪些内容不会涉及 .................................................................................................9
安装Ansible.........................................................................................................10
建立一台用于测试的服务器 ................................................................................ 11
使用Vagrant 来创建测试服务器 ................................................................... 11
xiv | 目录
将测试服务器的信息配置在Ansible 中 ........................................................15
使用ansible.cfg 文件来简化配置 ..................................................................16
继续前进 ..............................................................................................................20
第2 章 playbook :一切的开端 ...................................................21
一些准备工作 ......................................................................................................21
一个简单的playbook ...........................................................................................22
指定一个nginx 配置文件 ..............................................................................24
创建一个定制的首页 .....................................................................................25
创建一个webservers 群组 .............................................................................25
运行这个playbook ...............................................................................................26
playbook 是YAML 格式的 ..................................................................................28
文件的起始 ...................................................................................................28
注释 ...............................................................................................................28
字符串 ...........................................................................................................28
布尔型 ...........................................................................................................29
列表 ...............................................................................................................29
字典 ...............................................................................................................30
折行 ...............................................................................................................30
剖析playbook ......................................................................................................31
play..............................................................................................................
Ansible是近年用户量急速蹿升的互联网配置管理工具。在Ansible之前,行业中已经有很多开源配置管理工具了,特别是鼎鼎大名的Puppet,堪称配置管理界的超级**。然而,Ansible依靠它的简单易用、"零依赖”及弱抽象还是获得了无数开发者和运维工程师的青睐。遗憾的是,由于Ansible还很年轻,除了官方文档外,其他相关的优秀文档可谓凤毛麟角。而本书恰恰就是为了缓解这一现状而写的。作者在本书中演示了如何使用Ansible管理接近真实生产环境的案例,这既演示了Ansible的强大功能,又能够帮助读者快速入门与上手,非常适合作为官方文档的扩展资料来阅读。
本书新版已面世,重磅升级!请选购新版
在当下百家争鸣的配置管理工具领域中,Ansible有着独特的优势:原生即轻量。你不需要在你要管理的机器上安装任何软件,并且它的学习曲线非常平缓。不管你是想要将代码部署到生产环境的开发者,还是寻求更好的自动化解决方案的系统管理员,这本实用指南都将会帮助你快速地在生产环境中使用这个工具。
作者Lorin Hochstein示范了如何编写playbook(Ansible中的配置管理脚本),如何管理远程服务器,并带你探索了这个工具的潜在法宝:内置声明模块。通过阅读本书,
— 没有更多了 —
以下为对购买帮助不大的评价