首页>参考读物>计算机科学与技术>计算机网络

Ansible自动化运维:技术与最佳实践
作者 : 陈金窗 沈灿 刘政委 编著
丛书名 : 实战
出版日期 : 2016-05-05
ISBN : 978-7-111-53115-9
定价 : 69.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 328
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

云计算时代大规模集群的出现使得自动化运维尤为重要,网络运维管理人员面临大规模集群管理的问题,应运而生了很多自动化运维工具,其中,Ansible就是一个开源的优秀的自动化运维工具。Ansible极为灵活,能够大大简化系统管理员的自动化配置管理与流程控制方式。本书作者通过大量实例,详细讲解这个工具的自动化运维方式与技巧,分享了自己在工作中的实战经验,对各类网络运维人员提供了翔实的指南。
本书分为三大部分:第一部分“基础篇”、第二部分“实战篇”、第三部分“进阶篇”,共17章,基础篇包括:Ansible概述、定义主机与主机组清单清单、Ansible Ad-Hoc模式、playbooks基础与详解、Ansible模块概述等。实战篇通过几个实例讲解Ansible的部署特点与管理技巧,包括:Ansible最佳实践指南、部署 LAMP、部署Tomcat集群、部署Zabbix等。进阶篇包括:AutoScaling、管理Hadoop、管理Docker、Ansible与Jenkins集成、Facts、模块与插件定制、Ansible Tower剖析等。

图书特色

本书由资深运维人员联手打造,通过大量实例,详细讲解Ansible自动化运维方式与技巧。
从最基础的架构解析、安装配置,到典型应用场景与案例分析,作者分享了自己在工作中的实战经验,是掌握大规模集群运维管理的必备参考。

Ansible是目前业界最火的自动化运维工具。与Puppet等DevOps工具不同的是,Ansible的无客户端部署模式,极大地降低了用户门槛,而其优良的设计又不失配管编排的架构优势。本书内容由浅入深,方便读者掌握,并快速运用到自己的实际环境中。跟随着本书的章节递进,读者可以逐渐掌握到大规模环境下的自动化运维能力,真正成为DevOps的弄潮儿。
—— 日志易产品总监,前微博系统架构师  饶琛琳
本书作者之一灿哥热衷于运维事业,是国内早期的运维自动化发起人,灿哥运维技术学识渊博、平时注意积累,博客的文章被广为流传。一直期待Ansible相关书籍,这本书将成为运维领域的经典之作。
—— 搜狐社交产品中心Python服务端负责人  张斌
与灿哥相识已久,多年来他一直专注于自动化运维的研究,并长期奋战在国内知名互联网公司,积累了丰富的经验。此书是灿哥又一倾力之作,也是国内工程师写的第一本Ansible书籍,可谓干货满满,值得细细研读。
—— 优酷土豆公司高级信息安全工程师  徐元振


陈金窗 资深运维人员,曾就职于金山、姬慕石等互联网公司,目前在天翼云负责服务VIP客户运营。从事IT基础架构运维技术与管理近二十年,负责过多个大型IT运维项目,对大规模系统运维技术有深刻理解,乐于分享,组建了Ansible中国用户组QQ群,分享了大量文章和技术细节,极大地促进了Ansible技术的推广与应用。

沈灿 运维圈知名博主“灿哥”,曾就职于蓝讯、京东、Yottaa等互联网公司,对CDN和自动化运维技术有着丰富的经验,乐于分享,有很多技术文章和讲座广为流传。

刘政委 资深运维人员,从事大型在线游戏运维7年多,对系统集成、游戏自动化运维技术有丰富的经验,同时在社区分享了大量文章,广受好评。

图书前言

随着信息技术的迅速发展,形形色色的互联网应用已经成为我们日常生活不可分割的部分。云计算已经改变IT资源部署、配置和管理的方式,服务供应商向着“一切皆服务”交付模式努力。用户享受通过将基础设施扩展并作为服务使用带来的高效、便捷,服务供应商通过云生态环境能够向用户提供更高价值的服务。
这一切背后都有着庞大的IT系统做支撑,作为负责保障稳定运行的运维工作所面临的挑战越来越大。传统的人工运维方式已经无法满足业务的发展需求,需要从流程化、标准化、自动化去构建运维体系。随着DevOps运动的兴起,运维人员、研发人员、质量控制人员都从更大范围来看待自己的工作,打破运维、研发之间的壁垒,进行相互渗透、融合。DevOps项目在数量和体量上持续增长,支撑持续集成、持续交付的自动化工具不断涌现。
Ansible是DevOps项目基础支撑工具之一,是第一款实现读/写跨平台的“Infrastructure-as-code”工具,从系统管理者到开发者,都可使用Ansible自动化部署并维护整个应用的生命周期,实现持续交付。
Ansible是Github上最热门的开源自动化工具之一,当前已经超过1000人为Github上的Ansible做过贡献。2013年笔者创建的“Ansible中国用户组”QQ群(群号:142851673)也相当活跃,当前专业会员已超过1000人。
本书将带领读者探索Ansible自动化运维的神奇之旅,为运维工作节省时间、节约成本,并支持云环境应用部署。
读者对象
本书主要读者对象包括:
IT运维人员、系统管理员、企业网管。
运营开发人员、应用部署人员。
系统架构师。
大专院校的计算机专业学生。
主要内容
本书是笔者在多年的学习、研究、实践的基础上,对Anisble进行系统的总结和梳理,其中既包括对Ansible基础知识的详细讲解,又包括日常运维工作中典型应用场景的实践案例,还介绍Anisble业界丰富的进展和发展趋势。本书的实践案例和脚本,可以在实验和生产环境中针对本书描述的场景进行复制和使用。
本书的目标是介绍如何较好地使用Anisble,从初始的命令行开始,到编写playbooks,再到管理大型、复杂的环境,最后介绍如何构建自己的模块、编写插件扩展Ansible增加新的功能。对于新手来说,本书提供了关于自动化运维的具体操作实战。对有经验的维护人员来说,本书提供了如何把Ansible与具体应用相结合,讲解Ansible的最佳实践。对于产品专家来说,本书介绍了如何扩展Ansible自动化运维工具手段,讨论Ansible如何与其他系统的交互才能提供可满足最终用户需求的集成解决方案。
本书主体包括14章。各章可以独立阅读,但对于还没有大规模应用经验的新手,建议按照顺序、循序渐进阅读。
本书第1、2、7、11~13章由陈金窗编写,第3~6、8~10、14章、附录由沈灿编写,最后由刘政委进行校审。由于笔者的水平有限,编写时间仓促,且自动化运维方兴未艾,Ansible当前仍处于快速发展之中,因此书中内容难免会出现一些错误或不准确的地方,恳请读者评判指正、不吝赐教。
致谢
首先感谢Ansible创始人Michael DeHaan和他的研发团队独具慧眼、发明创造了功能强大、轻量级的自动化运维工具。同时感谢提供Anisble模块的所有第三方作者,是他们辛勤的劳动和乐于分享,才使得Ansible产生巨大威力,在他们身上闪烁着开源精神的绚丽光芒。
感谢机械工业出版社的编辑们一年来始终的支持、积极的鼓励、耐心的帮助,并逐字审阅、校正,才使本书的出版成为可能。
本书有一些内容参考了网络论坛、博客等,由于参考资料众多,有些时间久远无法了解确切出处,在此对热爱分享知识的网友表示深深的谢意。
最后,谨以此书献给我们最亲爱的家人和自己,以及众多热爱开源技术的朋友们!

陈金窗
2016年2月于北京

上架指导

计算机\网络

封底文字

Ansible是目前业界最火的自动化运维工具。与Puppet等DevOps工具不同的是,Ansible的无客户端部署模式,极大地降低了用户门槛,而其优良的设计又不失配管编排的架构优势。本书内容由浅入深,方便读者掌握,并快速运用到自己的实际环境中。跟随着本书的章节递进,读者可以逐渐掌握到大规模环境下的自动化运维能力,真正成为DevOps的弄潮儿。
——饶琛琳 日志易产品总监,前微博系统架构师


在一个台上讲情怀,台下拼资金和规模的时代,作为基础资源的管理者和背锅侠,运维的日常,不再是宕机、重启、装机诸如此类枯燥又重复的机械运动,而是对计算、存储、网络、安全等资源和能力的抽象,以服务形式对内或对外交付,通过监控来实现用量审计并与调度策略的联动实现资源和能力的伸缩来帮助公司和用户应对各类复杂业务场景和外部挑战。在这样的一个趋势下,先天对用户友好的非侵入式的ansible以其弹性灵活的框架插件(模块)架构模式无疑将会是最佳实践。此书源自作者多年使用Ansible的运维经验,秉承不吹嘘实用的宗旨,书中包含ansible常见API的封装实例,极具参考价值。
—— CHINAIX互联网交换中心创始人   陈李粮

与灿哥是老朋友了,没事总是一起品茶论道。他热衷于运维事业,是国内早起的运维自动化发起人,灿哥运维技术学识渊博、平时注意积累,博客的文章被广为流传。一直期待相关书籍,这次《Ansible自动化运维与实践》绝对是运维领域的经典之作。
——搜狐社交产品中心python服务端负责人 张斌


与灿哥相识已久,多年来他一直专注于自动化运维的研究,并长期奋战在国内知名互联网公司,积累了丰富的经验,此书是灿哥又一倾力之作,也是国内工程师写的第一本Ansible的书籍,可谓干货满满,值得细细研读。
——优酷高级信息安全工程师  徐元振

作者简介

陈金窗 沈灿 刘政委 编著:暂无简介

图书目录

前 言
第1章 Ansible架构及特点 1
1.1 Ansible软件及公司 2
1.1.1 Ansible应用领域 3
1.1.2 Ansible软件发布 5
1.1.3 Ansible公司服务 8
1.2 Ansible架构模式 9
1.2.1 Ansible管理方式 10
1.2.2 Ansible系统架构 11
1.2.3 任务执行模式 13
1.3 Ansible特性 14
1.3.1 Ansible功能特性 14
1.3.2 Ansible与其他配置管理的对比 21
1.4 Ansible与DevOps 22
1.5 本章小结 26
第2章 Ansible安装与配置 27
2.1 Ansible环境准备 27
2.2 安装Ansible 30
2.2.1 直接用源码安装 30
2.2.2 用包管理工具安装 32
2.3 配置运行环境 34
2.3.1 配置Ansible环境 34
2.3.2 使用公钥认证 36
2.3.3 配置Linux主机SSH无密码访问 36
2.4 Ansible小试身手 38
2.4.1 主机连通性测试 38
2.4.2 在被管节点上批量执行命令 39
2.5 获取帮助信息 40
2.6 本章小结 42
第3章 Ansible 组件介绍 43
3.1 Ansible Inventory 43
3.2 Ansible Ad-Hoc 命令 49
3.3 Ansible playbook 56
3.4 Ansible facts 56
3.5 Ansible role 60
3.6 Ansible Galaxy 63
3.7 本章小结 63
第4章 playbook详解 64
4.1 playbook基本语法 64
4.2 playbook变量与引用 70
4.3 playbook循环 81
4.4 playbook lookups 91
4.5 playbook conditionals 96
4.6 Jinja2 filter 99
4.7 playbook内置变量 102
4.8 本章小结 106
第5章 Ansible最佳实践 107
5.1 优化Ansible速度 107
5.2 目录结构 113
5.3 定义多环境 115
5.4 灰度发布与检测 115
5.5 统一管理 116
5.6 使用ansible-shell交互命令行 116
5.7 本章小结 118
第6章 扩展Ansible组件 119
6.1 扩展facts 119
6.2 扩展模块 125
6.3 callback插件 130
6.4 lookup插件 137
6.5 Jinja2 filter 139
6.6 本章小结 143
第7章 用ansible-vault保护敏感数据 144
7.1 了解ansible-vault如何保护数据 145
7.1.1 高级加密标准 145
7.1.2 ansible-vault能够加密什么 145
7.2 使用ansible-vault 146
7.2.1 创建加密数据文件 146
7.2.2 更新加密的数据文件 147
7.2.3 变更加密数据密钥 148
7.3 典型应用场景 148
7.3.1 实践场景1:保护Ansible role中的敏感数据 149
7.3.2 实践场景2:使用加密做用户认证 151
7.3.3 实践场景3:保护Nginx中的SSL密钥 152
7.4 本章小结 155
第8章 Ansible与云计算 156
8.1 了解云平台管理流程 156
8.2 Ansible AWS和OpenStack 157
8.3 Ansible与Docker 162
8.4 Ansible Jenkins 165
8.5 本章小结 169
第9章 部署Zabbix组件 170
9.1 了解部署流程 170
9.2 编写业务roles 171
9.3 安装部署 177
9.4 本章小结 179
第10章 部署HAProxy + LAMP架构 180
10.1 了解整体架构流程 180
10.2 编写业务roles 181
10.3 配置部署以及测试 186
10.4 扩容与维护 188
10.5 本章小结 189
第11章 大数据环境的应用实战 190
11.1 某运营商大数据环境 191
11.2 准备大数据集群环境 192
11.2.1 安装操作系统 195
11.2.2 操作系统初始化 198
11.2.3 Ansible无口令密钥执行环境 204
11.2.4 安装、配置JDK 205
11.3 部署Hadoop集群 207
11.3.1 准备Hadoop基础角色 209
11.3.2 部署NameNode角色 219
11.3.3 部署资源管理器角色 221
11.3.4 部署DataNode角色 222
11.4 部署后Hadoop初始化与验证 223
11.4.1 部署后初始化 223
11.4.2 部署后Hadoop验证 224
11.5 本章小结 226
第12章 Ansible管理Windows系统 227
12.1 Ansible管理Windows工作原理 228
12.2 搭建Ansible管理工作组Windows环境 229
12.2.1 安装、配置控制主机 230
12.2.2 被管Windows主机配置 230
12.2.3 配置资源清单 232
12.2.4 测试被管Windows主机的连通性 234
12.2.5 常见问题处理 235
12.3 搭建Ansible管理活动目录Windows环境 236
12.4 支持管理Windows模块 239
12.5 常用Windows管理实例 240
12.6 本章小结 244
第13章 网络自动化管理的应用实战 246
13.1 网络管理也自动化了 246
13.2 Ansible官方集成的网络角色 249
13.3 生成配置文件及部署 251
13.3.1 生成网络配置模板 252
13.3.2 部署配置模板 255
13.4 通过SNMP方式配置网络 257
13.5 网络设备厂商提供接口实现自动化 259
13.5.1 管理Cisco NX-OS 259
13.5.2 管理JUNOS 269
13.5.3 管理Cumulus Linux 273
13.6 本章小结 279
第14章 Ansible API 280
14.1 runner API 280
14.2 playbook API 283
14.3 使用Flask封装Ansible API 286
14.4 使用Celery实现任务异步化 290
14.5 使用jQuery Ajax异步请求 297
14.6 本章小结 300
附录A Ansible.cfg配置文件参数详解 301
附录B YAML与Jinjia 306
附录C Ansible pull模式 312
附录D SSH Forward模式 316

教学资源推荐
作者: 教育部高等学校计算机类专业教学指导委员会 物联网工程专业教学研究专家组 编制
作者: 陈鸣 李兵 雷磊 编著
作者: [美]W. 理查德·史蒂文斯(W. Richard Stevens) 著
参考读物推荐
作者: 山金孝 潘晓华 刘世民 著
作者: 吴功宜 吴英 编著
作者: 陈源 胡慧超 刘蕴如 等著