编辑推荐

  

  运维专家联袂推荐,资深Ansible布道者联合撰写,辅以原理,注重实践。

  涵盖Ansible基础、高级技法与定制化扩展展、7个实战企业案例,以及Web自动化开发,解决入门简单、深入难问题。

内容简介

  

  多名运维技术专家联袂推荐,海量运维实践者、Ansible布道者联合撰写,知识全面、实践性强。

  《Ansible权威指南》共三篇,14章内容。

  第一篇为基础入门篇(第1章~5章),该篇着重介绍Ansible发展史、工作原理、基础元素组成,Playbook入门等,是掌握Ansible高级技巧的基石。

  第二篇为高级进阶篇(第6~11章),该篇是《Ansible权威指南》重点,着重结合企业实际需求场景,以大量的实际案例介绍Ansible的高级语法和实际应用技巧,涉及的技术点有Roles、Inventory、Jinja2、Galaxy等;结合的行业主流技术包括(但不限)Zabbix、Except、Memcache、Inotify、Logio、GitLab、Docker、LNMP、Redis、MySQL、Node.js等,并提供丰富的实战案例供大家参考学习。

  第三篇为Web自动化开发篇(第12~14章),该篇主要介绍如何开发Web全自动化发布界面,使用当前流行成熟的Python语言,并结合Django前后端技术,通过Ansiblecelery管理后台任务队列。这部分内容从零基础部分开始介绍,逐步引导上手。

  一言概之,《Ansible权威指南》涵盖Ansible基础、高级技巧、定制化扩展,贯穿实用企业应用案例,以及Web自动化开发,是系统学习Ansible和自动化运维的优佳图书。

作者简介

  李松涛(照片),英文昵称Stanley,2008年正式接触Linux开源领域,先后供职于上海九城、上海腾讯、上海诺亚财富等互联网公司,数次从0到1打造运维自动化体系。热衷开源技术,曾主导Ansible中文权*指南站点建设与Ansible官网本土化(http://www.ansible.com.cn/)工作。“运维部落”公众号发起人(迄今125+技术文章,2500人+关注),Ansible中文*威等系列开源技术QQ群发起人。


  魏巍(照片),狂热的骑行与开源爱好者,现任国内某一线互联网公司高级运维工程师。2009年开始接触并从事运维行业。专注于运维自动化、Docker及大数据领域,活跃于各大开源社区,多次应邀直播分享Linux开源技术。


  甘捷(照片),现任国内某一线互联网公司运维开发,从业以来一直专注于运维自动化开发领域,致力企业级运维自动化方案的解决,曾多次一力主导Web运维自动化架构设计及核心代码研发工作,结合CMDB等平台,并以Ansible作为基础支撑,不断地改善和实现运维的高自由度化、可配置化及可视化的目标。

精彩书评

  

  作者结合实战经验汇总成《Ansible权威指南》,以帮助更多热爱开源的朋友。而Ansible也将成为专业人员必备技能,这本集合基础原理和实战案例的书籍会成为运维人员必备宝典。

  ——马永亮马哥教育创始人
  
  

  在我们的客户自动化方案中,考虑到安全性、稳定性、便捷性等多方面要求,我们也把对Ansible的兼容作为必选。非常感谢Stanley和其他笔者不辞辛劳地编写此书,值得大家钦佩。相信《Ansible权威指南》能给读者带来很大的收益。

  ——王津银(互联网运维杂谈老王)优维科技创始人
  
  

  Ansible入门容易精通难,很高兴看到李松涛和他的朋友们撰写的这《Ansible权威指南》的出版,《Ansible权威指南》使快速精通Ansible成为可能。相信通过阅读《Ansible权威指南》,没有接触过Ansible的读者可以快速入门,已经在使用Ansible的读者可以从中学到更多知识。

  ——肖力《深度实践KVM》作者
  
  

  《Ansible权威指南》对Ansible的周边扩展介绍得比较实在,理论联系实践。作者从丰富的工作经验总结出案例,详细列举了celery、模块扩展等具体应用,让Ansbile更加贴合实际的应用场景。

  ——张志浩腾讯游戏运营规划专家
  
  

  “授人以鱼,不如授人以渔”,《Ansible权威指南》不但介绍了Ansible的基础知识,还介绍了Ansible的实践经验和高阶的二次开发,对读者深入理解Ansible、构建自动化运维体系非常有帮助。

  ——智锦资深运维从业者,杭州云霁科技有限公司CEO

目录

Ansible权威指南》赞誉
前言
第一篇 基础入门篇
第1章Ansible基础入门2
1.1Ansible是什么2
1.2Ansible发展史4
1.3为什么选择Ansible5
1.4Ansible是如何工作的6
1.5Ansible通信发展史8
1.6Ansible应用场景11
1.7Ansible的安装部署12
1.7.1PIP方式13
1.7.2YUM方式13
1.7.3Apt-get方式14
1.7.4源码安装方式14
1.7.5验证安装结果15
1.8Python多环境扩展管理16
1.8.1Pyenv的部署与使用16
1.8.2Virtualenv的部署与使用18
1.9本章小结20
第2章Ansible基础元素介绍21
2.1Ansible目录结构介绍21
2.2Ansible配置文件解析23
2.3Ansible命令用法详解25
2.4Ansible系列命令用法详解与使用场景介绍28
2.4.1ansible28
2.4.2ansible-galaxy29
2.4.3ansible-pull31
2.4.4ansible-doc31
2.4.5ansible-playbook31
2.4.6ansible-vault32
2.4.7ansible-console32
2.5AnsibleInventory配置及详解34
2.5.1定义主机和组34
2.5.2定义主机变量35
2.5.3定义组变量35
2.5.4定义组嵌套及组变量36
2.5.5多重变量定义36
2.5.6其他Inventory参数列表37
2.6Ansible与正则37
2.7本章小结39
第3章AnsibleAd-Hoc命令集40
3.1Ad-Hoc使用场景40
3.2Ad-Hoc命令集介绍41
3.2.1Ad-Hoc命令集用法简介41
3.2.2通过Ad-Hoc查看系统设置46
3.2.3通过Ad-Hoc研究Ansible的并发特性47
3.2.4通过Ad-Hoc研究Ansible的模块使用49
3.3Ad-Hoc组管理和特定主机变更52
3.3.1Ad-Hoc组定义52
3.3.2Ad-Hoc配置管理:配置Proxy与WebServers实践54
3.3.3Ad-Hoc配置后端:配置NoSQL与DatabaseServers实践56
3.3.4Ad-Hoc特定主机变更57
3.4Ad-Hoc用户与组管理58
3.4.1Linux用户管理58
3.4.2Windows用户管理63
3.4.3应用层用户管理64
3.5本章小结65
第4章Playbook快速入门66
4.1Playbook语法简介66
4.1.1多行缩进67
4.1.2单行缩写67
4.2Playbook案例分析68
4.3Playbook与Shell脚本差异对比71
4.4Ansible-playbook实战小技巧71
4.4.1限定执行范围71
4.4.2用户与权限设置72
4.4.3Ansible-playbook:其他选项技巧73
4.5实战一:Ansible部署Node.js企业实践73
4.5.1添加第三方源73
4.5.2运行Node.js进程77
4.5.3Node.jsapp服务部署总结78
4.6实战二:Drupal基于LAMP的自动化部署78
4.6.1定义变量并设置Handlers79
4.6.2部署LAMP基础服务80
4.6.3配置Apache81
4.6.4配置PHP82
4.6.5配置MySQL83
4.6.6安装Drush和Composer84
4.6.7通过Git和Drush安装Drupal85
4.6.8Drupal部署过程总结86
4.7实战三:Ansible部署Tomcat企业实战86
4.7.1定义变量并设置Handlers86
4.7.2安装Java87
4.7.3安装Tomcat888
4.7.4安装ApacheSolr89
4.8本章小结91
第5章AnsiblePlaybook拓展92
5.1Handlers92
5.2环境变量93
5.3变量95
5.3.1Playbook变量96
5.3.2在Inventory文件中定义变量97
5.3.3注册变量98
5.3.4使用高阶变量98
5.3.5主机变量和组变量100
5.3.6Facts(收集系统信息)101
5.3.7Ansible加密模块Vault104
5.3.8变量优先级106
5.4if/then/when——流程控制107
5.4.1Jinja2正则表达、Python内置函数和逻辑判断107
5.4.2变量注册器register108
5.4.3when条件判断109
5.4.4changed_when、failed_when条件判断110
5.4.5ignore_errors条件判断111
5.5任务间流程控制111
5.5.1任务委托111
5.5.2任务暂停112
5.6交互式提示112
5.7Tags标签113
5.8Block块115
5.9本章小结116
第二篇 高级进阶篇
第6章Playbook高级技巧进阶118
6.1巧用Includes118
6.1.1Includes使用场景118
6.1.2Includes用法119
6.1.3动态Includes123
6.1.4HandlerIncludes使用技巧123
6.1.5PlaybooksIncludes使用技巧124
6.2巧用Roles124
6.2.1构建Roles125
6.2.2使用Roles重构Playbooks125
6.2.3Roles技巧之Handlers:动态变更129
6.2.4Roles技巧之Files:文件传输131
6.2.5Roles技巧之Templates:模板替换133
6.2.6更多复杂的跨平台Roles135
6.3Jinja2实现模板高度自定义136
6.3.1Jinja2For循环136
6.3.2Jinja2If条件137
6.3.3Jinja多值合并138
6.3.4Jinjadefault()设定140
6.3.5Ansible结合Jinja2生成Nginx配置141
6.3.6Ansible结合Jinja2生成Apache多主机配置146
6.3.7Jinja2动态变量配置及架构优化148
6.4AnsibleGalaxy151
6.4.1Ansible-galaxy命令用法151
6.4.2使用Galaxy152
6.5本章小结154
第7章Inventory文件扩展155
7.1Inventory文件实战155
7.2独立的Inventory文件159
7.3Inventory变量159
7.3.1host_vars目录160
7.3.2group_vars目录161
7.4动态Inventory161
7.5本章小结168
第8章Ansible插件扩展169
8.1Ansible插件使用场景169
8.2Ansible插件类型170
8.3如何编写自己的插件171
8.4插件案例实践172
8.5本章小结174
第9章Ansible企业应用实战175
9.1为新系统添加安全认证SSHKey175
9.1.1Ansible密码认证175
9.1.2ssh-copy-id176
9.1.3Kickstart177
9.1.4PythonParamiko178
9.1.5Expect179
9.2企业高可用架构的Ansible应用180
9.2.1Playbook目录编排181
9.2.2高可用架构基于Ansible的自动化实现181
9.2.3使用Includes衔接各服务配置188
9.3ELK日志系统基于Ansible的自动化实现189
9.3.1ELKServer的自动化实现190
9.3.2ELKClient的自动化实现192
9.4实时日志系统基于Ansible的自动化实现192
9.4.1配置概览192
9.4.2架构部署193
9.5Zabbix基于Ansible的自动化实现195
9.5.1ZabbixServer基于Ansible的自动化实现196
9.5.2ZabbixAgent基于Ansible的自动化实现199
9.5.3ZabbixProxy基于Ansible的自动化实现201
9.6Ansible+Git+GitLab实现自动化发布202
9.6.1架构概览203
9.6.2架构部署203
9.7Docker的Ansible自动化应用206
9.7.1Docker容器入门206
9.7.2使用Ansible创建和管理容器207
9.7.3基于Ansible创建Flask的Docker容器208
9.7.4数据存储容器配置210
9.7.5Flask容器配置211
9.7.6MySQL容器配置213
9.7.7启动容器215
9.8本章小结215
第10章Ansible基于Windows的管理架构217
10.1Ansible管理机部署安装218
10.2Windows系统预配置219
10.3Windows下可用模块224
10.4WindowsAnsible模块使用实战224
10.5本章小结226
第11章Ansible安全优化篇227
11.1SSH与远程连接简介227
11.1.1Telnet228
11.1.2RLOGIN、RSH和RCP228
11.1.3SSH228
11.1.4SSH的发展和远程访问的未来229
11.2通信加密230
11.3禁止root远程登录231
11.4操作系统简介232
11.5遵守权限最小化原则233
11.5.1用户管理233
11.5.2文件权限管理233
11.6定期维护更新234
11.6.1手动更新234
11.6.2自动定时更新234
11.7善用Iptables防火墙236
11.8定期磁盘巡检238
11.9系统登录日志审记238
11.10 正确使用SELinux和AppArmor239
11.11 本章小结240
第三篇 Web自动化开发篇
第12章Ansible模块编写242
12.1初步认识Ansible模块242
12.2Ansible简单模块编写243
12.3模块变量添加245
12.4模块状态返回的标识及应用246
12.5模块退出状态处理249
12.6模块其他功能补充250
12.7Ansible模块API的调用251
12.8本章小结265
第13章开发自己的AnsibleWebUI267
13.1搭建Django开发环境267
13.1.1为什么要使用Web页面做管理267
13.1.2系统及软件环境268
13.2Django配置文件详解269
13.2.1Django的基础配置及运行269
13.2.2Django的主配置目录介绍270
13.2.3Django的app目录介绍271
13.3编写Ansible的Web接口272
13.4前端基础知识介绍278
13.4.1HTML和CSS简介278
13.4.2JavaScript简介279
13.5AnsibleWebUI界面开发280
13.5.1对接前端页面与Ansible的Web接口280
13.5.2配置Web页面传参282
13.6本章小结285
第14章Web与Ansible结合的常用实例286
14.1Web方式管理Ansible的Inventory286
14.1.1重新定制Ansible的Hosts文件规则286
14.1.2使用ConfigParser解析并生成AnsibleHosts文件287
14.1.3使用数据库的存储数据生成的AnsibleHosts文件290
14.1.4通过页面来生成Hosts文件293
14.2使用celery后台执行任务301
14.2.1为什么要使用celery301
14.2.2使用celery的前期准备301
14.2.3使用celery开始任务303
14.2.4使用celery取消正在进行的任务305
14.3运行YML文件并实时读取日志306
14.4通过页面上传文件并基于Ansible分发313
14.5在页面上构建YML文件注册中心316
14.6操作者注册中心界面324
14.7本章小结331

前言/序言

  前  言Preface

  为什么要写这《Ansible权威指南》首次接触Ansible是缘于一次杭州出差。当时接触互联网3年左右,正是技能的储备阶段,看到Ansible这样的新兴自动化工具不免充满好奇。当时腾讯的蓝鲸还没有出来,但abs脚本和ijobs自动化体系已经应用多年,并在整个IEG中心广泛应用。大型企业讲究分工精细化,各司其职,强大的自我研发能力。但伴随业绩和KPI的压力,很多人其实是没有多余精力关注外界技术领域的发展,尤其是游戏行业,行业自身属性对开发人员的技术能力要求非常高,前沿开源技术与业务特殊性需求并不能很好地融合,致使多数工具依赖于开发人员,整体运维体系以应用、发现、维护、服务方向为主,底层运维没有技术能力和资源协调能力为业务创造直接价值。高级运维和领导层更需着眼于高层面的业务拓展和整体运维体系规划,所以多数互联网前沿技术以技能储备的方式被引入,待机蓄力而发。

  后来蓝鲸和ijobs融合后,在强大技术力的驱动下,运维的技术能力进一步淡化,对应的业务能力、需求发现、服务意识被强化,并提出更高的要求,DevOps的岗位定义更加明确。蓝鲸平台类似于苹果公司的AppStore,是一个载体,只要有开发能力就可以编写自己的应用。只要应用的通用性足够高,所有业务都可以下载使用,而通用性则是开源技术最讲究的点。同时开源工具也是非常好的学习对象,往往经过简单的修改即可变成自己的产品,因此运维对开源技术的关注度越来越高,而笔者也正是在这样的背景下接触到Ansible。

  对比主流的自动化工具SaltStack、Puppet等,Ansible给人最直观的感觉就是比较简单,而这也是笔者选择使用Ansible最重要的理由之一。因为笔者一直认为每个人精力有限,如腾讯早期的Ops技能培训希望个人同时兼备Ops和Dev的战略,但直到现在身边真正同时具备Dev和Ops能力于一身的人凤毛麟角。类似于Puppet和SaltStack这样的工具,高级使用均需涉及诸如Class类开发这样的技能才可运用,而初级运维和没有开发经验的运维掌握面向对象技术去开发高级应用确实没有那么妥当。Ansible早期的官网也是以StupidSimple来形容其简单程度的,其前沿的去中心化思想和近期被RedHat(红帽)官方收购的消息,也更坚定了笔者使用Ansible的想法。

  但当时Ansible在国内公司应用的并不多,且其官网屡屡被破解,使得虽然自动化的理念早已家喻户晓,但国内Ansible的文档和社区却始终不温不火。无独有偶,笔者发现腾讯也开始在自家蓝鲸平台使用Ansible,并结合业务进行了深入应用,所以就产生了编写一本Ansible书籍的想法。因此,也有了后来的Ansible官网中文翻译团队和《Ansible权威指南》写作团队,再后来也就有了Ansible中文权威网站、运维部落微信公众号、Ansible部落微信群、Ansible中文权威QQ群。更为幸运和开心的是,在坚持的过程中也遇到了一批自动化工具爱好者。http://www.ansible.com.cn/将Ansible官网中大家日常常用的部分功能翻译成中文,所以起名为Ansible中文权威指南。而后Google、Baidu的关键字搜索结果仅次于官网,这使得我们的信心大增。这里要特别感谢马哥Linux团队成员的薛定谔的章鱼、guli、以马内利、黄博文、coocla、云中鹤、stanley,这些朋友们历经数月,辛勤翻译多达5万字文档。

  在一次和朋友聊天中,朋友问到你们Ansible已经应用这么久,同时也有自己独立开发的界面,现在国内Ansible的势头虽高,但文档和书籍欠缺,何不把你们的经验总结出来分享给更多朋友呢。我当时一怔,但也有担心:一方面精力不支,另一方面老婆怀孕,我担心生活工作不能兼顾。后来在老婆的鼓励下,经肖力和黄博文兄的引荐认识了华章公司的高编辑,正式开始书籍的编写之旅。在这个过程中,很高兴又有新的伙伴骑行牛人魏巍和Python能力出众的甘捷陆续加入,也使得个人的压力和精力有更多的释放,书籍的内容也有更完整、丰富的互补。在整个写书过程中我们也在成立的运维部落、Ansible公众号和QQ群,定期分享书籍内容,收集用户反馈和体验。到目前为止,QQ群近1300人,公众号也有2000多人在关注。群中也专门请行业应用经验丰富的专员来解答Ansible的技术类问题,同时成立专门的QA站点,收集用户QQ群问题处理方案,并对积极回答问题勇于分享的朋友定期寄送礼品以示鼓励。团队很高兴也很幸运能通过这样的方式为国内Ansible的发展贡献自己的力量。

  《Ansible权威指南》特色从技术层面讲,运维自动化理论及思想在国内日趋成熟,自动化工具更是遍地开花。现在运维不再纠结于没有工具可用,而是惆怅于选择何种工具。而Ansible正是在这样的大环境下产生,并且迅速脱颖而出。Ansible去中心化思想和“简单就是一切”的原则也使其在运维圈快速流行。但正如所有事物一样,入门简单并不代表深入简单,这也正是《Ansible权威指南》的意义所在。

  从适合读者阅读和掌握知识的结构安排上讲,《Ansible权威指南》分为“基础入门篇”“高级进阶篇”“Web自动化开发篇”。《Ansible权威指南》在介绍新技术应用的同时更注重读者对技术的消化和接受程度,整个过程都秉承原理→练习→实战的思路,让读者轻松逐步深入,不会有生硬和突兀感。在介绍Ansible的核心技术应用Playbook章节更是不惜用50页左右的篇幅,通过企业实际案例讲解分析Playbook的使用技巧和经验心得。在Ansible企业应用实战相关章节,详细介绍Ansible与现今流行技术的结合使用,以及如何自我发展、自我完善技能。

  在由浅入深介绍Ansible的同时,《Ansible权威指南》所有的应用案例按章节顺序全部上传至GitHub,附带自研的Web自动化页面,也全部开源至GitHub(同时《Ansible权威指南》写作团队收入的20%将捐赠给开源组织,捐赠金额和去向也会通过公众号和网站的方式对外公开)。

  读者对象IT网络运维工程师业务运维工程师DevOps技术人员中小型企业无运维岗但需运维服务器的开发人员虚拟化技术人员对自动化理念感兴趣的技术人员如何阅读《Ansible权威指南》《Ansible权威指南》分为三篇,共14章,其中第1~3、6、8~10由李松涛编写,第4、5、7、11由魏巍编写,第8、12~14章由甘捷编写。

  第一篇为基础入门篇(第1~5章),该篇着重介绍Ansible发展史,工作原理,基础元素组成,Playbook入门。该部分内容虽简单,却是掌握Ansible高级技巧的基石,如没有接触过相关自动化工具和Ansible,还需认真阅读。

  第二篇为高级进阶篇(第6~11章),该篇也是《Ansible权威指南》内容的最大构成部分,着重结合企业实际需求场景,以大量的实际案例拓展介绍Ansible的高级语法进阶和实际应用技巧,涉及的技术点有Roles、Inventory、Jinja2、Galaxy等。结合的行业主流技术包括(但不限)Zabbix、Except、MemCache、Inotify、Logio、GitLab、Docker、LNMP、Redis、MySQL、Node.js等,并提供丰富的实战案例供大家参考学习。

  第三篇为Web自动化开发篇(第12~14章),该篇内容主要针对不想购买Tower产品,但又有Web全自动化发布界面需求的人而专门撰写。该部分内容使用当前最流行成熟的Python,并结合Django前后端技术,通过Ansiblecelery管理后台任务队列。虽该部分内容从零基础部分开始介绍,逐步引导上手,但考虑时间和精力成本,建议具备一定的Python、Django、前端基础后进行学习。

  《Ansible权威指南》前11章,各章没有强关联,如觉得内容已掌握可跳跃式阅读,遇到不理解的地方回头再看也问题不大。从第12章开始为Web化自动开发章节,需要循序渐进地学习,建议按顺序阅读。

  勘误和支持Ansible的发展非常快,当我们开始着手写这《Ansible权威指南》的时候Ansible的版本还是1.9.4,但没过多久2.0稳定版本就更新出来,但1.9版本分支还一直在维护,随后又陆续更新了1.9.5和1.9.6的稳定版,这对我们的写作也造成一定的困扰。当时多数公司使用的还是1.9版本的分支,2.0分支也陆续收到朋友们反馈各类问题。所以《Ansible权威指南》的写作过程总体还是基于1.9分支的基础,1.9和2.0的差别主要在于API接口和页面开发上,后者功能模块更加完善丰富,但对于普通使用者整体差别不大,有差别的地方书中均会提到。

  由于笔者的水平有限,编写时间仓促,所有的写作过程都在深夜和周末,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。如果您有更多的宝贵意见,欢迎您关注我们的公众号linux178,或加入我们的QQ群:Ansible中文权威-2号群(486022616),或访问我们的问答平台http://www.178linux.com/qa,我们会尽量提供最满意的解答。期待能够得到你们的真挚反馈,在技术之路上互勉共进。

  我想和作者聊聊微信公众号:

  linux178或扫以下二维码QA公共平台:

  http://www.178linux.com/qa普通用户请加群:

  Ansible中文权威-2号群486022616书籍读者请加群:

  中文权威读者群577479881致谢感谢翻译团队在Ansible官网文档翻译过程中的无私付出。

  感谢魏巍、甘捷两位“笔友”在我狂轰滥炸的“淫威”下坚持写作,并持续输出高质量的内容。感谢机械工业出版社华章公司的策划编辑高婧雅,在近一年的时间中始终支持我的写作。你们的鼓励和帮助引导我们顺利完成全部书稿。

  特别致谢最后,我要特别感谢我的太太yolanda,为写作这《Ansible权威指南》,我牺牲了很多陪伴她的时间,但也正因为有了她的付出与支持,我才能坚持写下去。

  同时,也要郑重感谢马哥教育在我写作的过程中提供不遗余力的资源支持,让我们得以放开手脚无所束缚地完成写作工作。

  谨以此书献给我最亲爱的家人,以及众多热爱开源技术的朋友们!

  李松涛(stanley)2016年8月

  以下推荐人按姓名音序排序。

  随着信息时代发展,全球运维体系不断升级,灵活多变、安全稳定、自动高效的持续保障迫在眉睫。开源运动为IT奠定了坚实的基础环境,使得我们可以不断吮吸着其中的养分而茁壮成长。然而,为适应快速、高效运维,自动化基础设施势必成为运维必备技能。纵观自动化工具,如Puppet、SaltStack、Func、Chef、Ansible,基于Linux原生SSH(不需要agent),并糅合众多老牌运维工具的优秀特性,集成了批量命令执行和文件处理等诸多功能。相信不少朋友已经在使用这些工具,作者也从中直接受益,并结合实战经验汇总成《Ansible权威指南》,以帮助更多热爱开源的朋友。我们坚信,集众人智慧的结晶,专注开源事业,定能让更多人享受开源运动带来的丰硕成果。而Ansible也将成为专业人员必备技能,这本集合基础原理和实战案例的书籍会成为运维人员必备宝典。

  ——马永亮,马哥教育创始人Ansible可以说是配置管理领域的新锐,一经推出便受到了很多运维及客户的青睐。Ansible的架构设计简洁,上手也非常简单,学习成本很低。在我们的客户自动化方案中,考虑到安全性、稳定性、便捷性等多方面要求,我们也把对Ansible的兼容作为首选。非常感谢Stanley和其他笔者不辞辛劳地编写此书,值得大家钦佩。相信《Ansible权威指南》能给读者带来很大的收益。

  ——王津银(互联网运维杂谈老王),优维科技创始人当前,云计算正在快速落地,云使资源的利用更高效,但是云只解决了系统层面资源使用的问题,业务层面的运维自动化还必须借助运维自动化工具、结合具体的业务场景来解决。在众多的自动化工具中,使用Python开发的Ansible无疑是运维人员的最爱,因为它符合Python简单高效的原则。但是Ansible入门容易精通难。很高兴看到李松涛和他的朋友们撰写的这《Ansible权威指南》的出版,《Ansible权威指南》使快速精通Ansible成为可能。相信通过阅读《Ansible权威指南》,没有接触过Ansible的读者可以快速入门,已经在使用Ansible的读者可以从中学到更多知识。

  ——肖力,《深度实践KVM》作者有一种距离叫菜鸟到高手的进阶,有一种练级捷径叫活学活用《Ansible权威指南》。《Ansible权威指南》案例通用、好使、接地气。

  菜鸟得之如获至宝,稳扎稳打中轻松晋级;高手用之简洁高效,深度实践中融会贯通。

  资深脚本运维有一天会发现,越做越累,正所谓:成也脚本,累也脚本。

  场景化运维,可能吗?Playbook帮你实现操作通用或者简化,把纷繁复杂的脚本变为场景中一个个的步骤,让你可以边维护边游戏,提升运维人员的工作效率。

  还在为Serverlist的管理发愁吗?Invertory帮你实现服务器分层管理,架构拓扑图一目了然。

  还在为生成配置文件时感叹“时间都去哪了”吗?Jinjia的高效配置生成速度,让生成1万个复杂配置文件由30分钟变为1分钟,并且减少了业务停机时间。

  《Ansible权威指南》对Ansible的周边扩展介绍得比较实在,理论联系实践。作者从丰富的工作经验总结出案例,详细列举了celery、模块扩展等具体应用,让Ansbile更加贴合实际的应用场景。

  如果你想成为场景化运维人员,如果你想提升工作效率,《Ansible权威指南》就是为你量身定制的不二选择。

  ——张志浩,腾讯游戏运营规划专家随着互联网和云计算的蓬勃发展,数据中心基础设施急速增加,IT运维逐渐成为现代企业生产经营的核心,而且要求越来越高。而要实现海量系统运维和DevOps,兼顾稳定和效率,就离不开运维自动化软件。

  回顾运维自动化的发展历程,最早的运维自动化是脚本自动化,依靠SSH通道批量执行脚本。但人们很快就发现,每个运维人员习惯写一堆脚本,脚本的管理维护成为问题,误操作也时有发生。为了解决这个问题,Puppet、SaltStack、Ansible等一批优秀的开源软件应运而生,运维正式进入自动化时代。

  当前中国大部分数据中心还是处于“人肉运维”的时代,自动化运维的需求非常强。但对于初学者来说,要驾驭好这些软件也不容易。很多初学者会误认为运维自动化的核心是批量执行,其实不然,运维自动化的核心是配置管理,自动化只是最终效果。

  Ansible是运维自动化软件的后起之秀,发展非常快。其特点是简单易用、无代理架构,使用Python这样的运维语言易于二次开发,这使得Ansible非常适合互联网的运维场景和初学者。

  《Ansible权威指南》作者之一李松涛是行业中少有的“能文能武”运维从业者,经过了腾讯海量系统运维的锻炼,又承担了Ansible中国“布道者”的角色,不辞辛苦地在社区和行业中分享经验,最终,花费了大量心血促成了《Ansible权威指南》的诞生。“授人以鱼,不如授人以渔”,《Ansible权威指南》不但介绍了Ansible的基础知识,还介绍了Ansible的实践经验和高阶的二次开发,对读者深入理解Ansible、构建自动化运维体系非常有帮助。

  我把运维自动化分为:人肉运维、操作自动化、资源统一配置、一体化运维、运营指挥5个成熟度阶段,广大运维同行可以做的事情还很多。衷心祝愿李松涛再接再厉,通过著书立说和传道授业的方式,惠及更多的运维从业者,让天下没有难运维的数据中心。

  ——智锦,资深运维从业者,杭州云霁科技有限公司CEO


其他推荐