书籍作者:李松涛 | ISBN:9787111553298 |
书籍语言:简体中文 | 连载状态:全集 |
电子书格式:pdf,txt,epub,mobi,azw3 | 下载次数:1571 |
创建日期:2021-02-14 | 发布日期:2021-02-14 |
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板 |
多名运维技术专家联袂推荐,海量运维实践者、Ansible布道者联合撰写,知识全面、实践性强。
本书共三篇,14章内容。
第一篇为基础入门篇(第1章~5章),该篇着重介绍Ansible发展史、工作原理、基础元素组成,Playbook入门等,是掌握Ansible高级技巧的基石。
第二篇为高级进阶篇(第6~11章),该篇是本书重点和*大构成部分,着重结合企业实际需求场景,以大量的实际案例介绍Ansible的高级语法和实际应用技巧,涉及的技术点有Roles、Inventory、Jinja2、Galaxy等;结合的行业主流技术包括(但不限)Zabbix、Except、Memcache、Inotify、Logio、GitLab、Docker、LNMP、Redis、MySQL、Node.js等,并提供丰富的实战案例供大家参考学习。
第三篇为Web自动化开发篇(第12~14章),该篇主要介绍如何开发Web全自动化发布界面,使用当前*流行成熟的Python语言,并结合Django前后端技术,通过Ansible celery管理后台任务队列。这部分内容从零基础部分开始介绍,逐步引导上手。
一言概之,本书涵盖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基础、高级技法与定制化扩展展、7个实战企业案例,以及Web自动化开发,解决入门简单、深入难问题 。
前 言Preface
为什么要写这本书首次接触Ansible是缘于一次杭州出差。当时接触互联网3年左右,正是技能的储备阶段,看到Ansible这样的新兴自动化工具不免充满好奇。当时腾讯的蓝鲸还没有出来,但abs脚本和ijobs自动化体系已经应用多年,并在整个IEG中心广泛应用。大型企业讲究分工精细化,各司其职,强大的自我研发能力。但伴随业绩和KPI的压力,很多人其实是没有多余精力关注外界技术领域的发展,尤其是游戏行业,行业自身属性对开发人员的技术能力要求非常高,前沿开源技术与业务特殊性需求并不能很好地融合,致使多数工具依赖于开发人员,整体运维体系以应用、发现、维护、服务方向为主,底层运维没有技术能力和资源协调能力为业务创造直接价值。高级运维和领导层更需着眼于高层面的业务拓展和整体运维体系规划,所以多数互联网前沿技术以技能储备的方式被引入,待机蓄力而发。
后来蓝鲸和ijobs融合后,在强大技术力的驱动下,运维的技术能力进一步淡化,对应的业务能力、需求发现、服务意识被强化,并提出更高的要求,DevOps的岗位定义更加明确。蓝鲸平台类似于苹果公司的App Store,是一个载体,只要有开发能力就可以编写自己的应用。只要应用的通用性足够高,所有业务都可以下载使用,而通用性则是开源技术最讲究的点。同时开源工具也是非常好的学习对象,往往经过简单的修改即可变成自己的产品,因此运维对开源技术的关注度越来越高,而笔者也正是在这样的背景下接触到Ansible。
对比主流的自动化工具SaltStack、Puppet等,Ansible给人最直观的感觉就是比较简单,而这也是笔者选择使用Ansible最重要的理由之一。因为笔者一直认为每个人精力有限,如腾讯早期的Ops技能培训希望个人同时兼备Ops和Dev的战略,但直到现在身边真正同时具备Dev和Ops能力于一身的人凤毛麟角。类似于Puppet和SaltStack这样的工具,高级使用均需涉及诸如Class类开发这样的技能才可运用,而初级运维和没有开发经验的运维掌握面向对象技术去开发高级应用确实没有那么妥当。Ansible早期的官网也是以Stupid Simple来形容其简单程度的,其前沿的去中心化思想和近期被RedHat(红帽)官方收购的消息,也更坚定了笔者使用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去中心化思想和“简单就是一切”的原则也使其在运维圈快速流行。但正如所有事物一样,入门简单并不代表深入简单,这也正是本书的意义所在。
从适合读者阅读和掌握知识的结构安排上讲,本书分为“基础入门篇”“高级进阶篇”“Web自动化开发篇”。本书在介绍新技术应用的同时更注重读者对技术的消化和接受程度,整个过程都秉承原理→练习→实战的思路,让读者轻松逐步深入,不会有生硬和突兀感。在介绍Ansible的核心技术应用Playbook章节更是不惜用50页左右的篇幅,通过企业实际案例讲解分析Playbook的使用技巧和经验心得。在Ansible企业应用实战相关章节,详细介绍Ansible与现今流行技术的结合使用,以及如何自我发展、自我完善技能。
在由浅入深介绍Ansible的同时,本书所有的应用案例按章节顺序全部上传至GitHub,附带自研的Web自动化页面,也全部开源至GitHub(同时本书写作团队收入的20%将捐赠给开源组织,捐赠金额和去向也会通过公众号和网站的方式对外公开)。
读者对象IT网络运维工程师业务运维工程师DevOps技术人员中小型企业无运维岗但需运维服务器的开发人员虚拟化技术人员对自动化理念感兴趣的技术人员如何阅读本书本书分为三篇,共14章,其中第1~3、6、8~10由李松涛编写,第4、5、7、11由魏巍编写,第8、12~14章由甘捷编写。
第一篇为基础入门篇(第1~5章),该篇着重介绍Ansible发展史,工作原理,基础元素组成,Playbook入门。该部分内容虽简单,却是掌握Ansible高级技巧的基石,如没有接触过相关自动化工具和Ansible,还需认真阅读。
第二篇为高级进阶篇(第6~11章),该篇也是本书内容的最大构成部分,着重结合企业实际需求场景,以大量的实际案例拓展介绍Ansible的高级语法进阶和实际应用技巧,涉及的技术点有Roles、Inventory、Jinja2、Galaxy等。结合的行业主流技术包括(但不限)Zabbix、Except、MemCache、Inotify、Logio、GitLab、Docker、LNMP、Redis、MySQL、Node.js等,并提供丰富的实战案例供大家参考学习。
第三篇为Web自动化开发篇(第12~14章),该篇内容主要针对不想购买Tower产品,但又有Web全自动化发布界面需求的人而专门撰写。该部分内容使用当前最流行成熟的Python,并结合Django前后端技术,通过Ansible celery管理后台任务队列。虽该部分内容从零基础部分开始介绍,逐步引导上手,但考虑时间和精力成本,建议具备一定的Python、Django、前端基础后进行学习。
本书前11章,各章没有强关联,如觉得内容已掌握可跳跃式阅读,遇到不理解的地方回头再看也问题不大。从第12章开始为Web化自动开发章节,需要循序渐进地学习,建议按顺序阅读。
勘误和支持Ansible的发展非常快,当我们开始着手写这本书的时候Ansible的版本还是1.9.4,但没过多久2.0稳定版本就更新出来,但1.9版本分支还一直在维护,随后又陆续更新了1.9.5和1.9.6的稳定版,这对我们的写作也造成一定的困扰。当时多数公司使用的还是1.9版本的分支,2.0分支也陆续收到朋友们反馈各类问题。所以本书的写作过程总体还是基于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,为写作这本书,我牺牲了很多陪伴她的时间,但也正因为有了她的付出与支持,我才能坚持写下去。
同时,也要郑重感谢马哥教育在我写作的过程中提供不遗余力的资源支持,让我们得以放开手脚无所束缚地完成写作工作。
谨以此书献给我最亲爱的家人,以及众多热爱开源技术的朋友们!
李松涛(stanley)2016年8月
以下推荐人按姓名音序排序。
随着信息时代发展,全球运维体系不断升级,灵活多变、安全稳定、自动高效的持续保障迫在眉睫。开源运动为IT奠定了坚实的基础环境,使得我们可以不断吮吸着其中的养分而茁壮成长。然而,为适应快速、高效运维,自动化基础设施势必成为运维必备技能。纵观自动化工具,如Puppet、SaltStack、Func、Chef、Ansible,基于Linux原生SSH(不需要agent),并糅合众多老牌运维工具的优秀特性,集成了批量命令执行和文件处理等诸多功能。相信不少朋友已经在使用这些工具,作者也从中直接受益,并结合实战经验汇总成本书,以帮助更多热爱开源的朋友。我们坚信,集众人智慧的结晶,专注开源事业,定能让更多人享受开源运动带来的丰硕成果。而Ansible也将成为专业人员必备技能,这本集合基础原理和实战案例的书籍会成为运维人员必备宝典。
——马永亮,马哥教育创始人Ansible可以说是配置管理领域的新锐,一经推出便受到了很多运维及客户的青睐。Ansible的架构设计简洁,上手也非常简单,学习成本很低。在我们的客户自动化方案中,考虑到安全性、稳定性、便捷性等多方面要求,我们也把对Ansible的兼容作为首选。非常感谢Stanley和其他笔者不辞辛劳地编写此书,值得大家钦佩。相信本书能给读者带来很大的收益。
——王津银(互联网运维杂谈老王),优维科技创始人当前,云计算正在快速落地,云使资源的利用更高效,但是云只解决了系统层面资源使用的问题,业务层面的运维自动化还必须借助运维自动化工具、结合具体的业务场景来解决。在众多的自动化工具中,使用Python开发的Ansible无疑是运维人员的最爱,因为它符合Python简单高效的原则。但是Ansible入门容易精通难。很高兴看到李松涛和他的朋友们撰写的这本书的出版,本书使快速精通Ansible成为可能。相信通过阅读本书,没有接触过Ansible的读者可以快速入门,已经在使用Ansible的读者可以从中学到更多知识。
——肖力,《深度实践KVM》作者有一种距离叫菜鸟到高手的进阶,有一种练级捷径叫活学活用《Ansible权威指南》。本书案例通用、好使、接地气。
菜鸟得之如获至宝,稳扎稳打中轻松晋级;高手用之简洁高效,深度实践中融会贯通。
资深脚本运维有一天会发现,越做越累,正所谓:成也脚本,累也脚本。
场景化运维,可能吗?Playbook帮你实现操作通用或者简化,把纷繁复杂的脚本变为场景中一个个的步骤,让你可以边维护边游戏,提升运维人员的工作效率。
还在为Serverlist的管理发愁吗?Invertory帮你实现服务器分层管理,架构拓扑图一目了然。
还在为生成配置文件时感叹“时间都去哪了”吗?Jinjia的高效配置生成速度,让生成1万个复杂配置文件由30分钟变为1分钟,并且减少了业务停机时间。
本书对Ansible的周边扩展介绍得比较实在,理论联系实践。作者从丰富的工作经验总结出案例,详细列举了celery、模块扩展等具体应用,让Ansbile更加贴合实际的应用场景。
如果你想成为场景化运维人员,如果你想提升工作效率,本书就是为你量身定制的不二选择。
——张志浩,腾讯游戏运营规划专家随着互联网和云计算的蓬勃发展,数据中心基础设施急速增加,IT运维逐渐成为现代企业生产经营的核心,而且要求越来越高。而要实现海量系统运维和DevOps,兼顾稳定和效率,就离不开运维自动化软件。
回顾运维自动化的发展历程,最早的运维自动化是脚本自动化,依靠SSH通道批量执行脚本。但人们很快就发现,每个运维人员习惯写一堆脚本,脚本的管理维护成为问题,误操作也时有发生。为了解决这个问题,Puppet、SaltStack、Ansible等一批优秀的开源软件应运而生,运维正式进入自动化时代。
当前中国大部分数据中心还是处于“人肉运维”的时代,自动化运维的需求非常强。但对于初学者来说,要驾驭好这些软件也不容易。很多初学者会误认为运维自动化的核心是批量执行,其实不然,运维自动化的核心是配置管理,自动化只是最终效果。
Ansible是运维自动化软件的后起之秀,发展非常快。其特点是简单易用、无代理架构,使用Python这样的运维语言易于二次开发,这使得Ansible非常适合互联网的运维场景和初学者。
本书作者之一李松涛是行业中少有的“能文能武”运维从业者,经过了腾讯海量系统运维的锻炼,又承担了Ansible中国“布道者”的角色,不辞辛苦地在社区和行业中分享经验,最终,花费了大量心血促成了本书的诞生。“授人以鱼,不如授人以渔”,本书不但介绍了Ansible的基础知识,还介绍了Ansible的实践经验和高阶的二次开发,对读者深入理解Ansible、构建自动化运维体系非常有帮助。
我把运维自动化分为:人肉运维、操作自动化、资源统一配置、一体化运维、运营指挥5个成熟度阶段,广大运维同行可以做的事情还很多。衷心祝愿李松涛再接再厉,通过著书立说和传道授业的方式,惠及更多的运维从业者,让天下没有难运维的数据中心。
——智锦,资深运维从业者,杭州云霁科技有限公司CEO
本书赞誉
前言
第一篇 基础入门篇
第1章Ansible基础入门 2
1.1Ansible是什么 2
1.2Ansible发展史 4
1.3为什么选择Ansible 5
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.1ansible 28
2.4.2ansible-galaxy 29
2.4.3ansible-pull 31
2.4.4ansible-doc 31
2.4.5ansible-playbook 31
2.4.6ansible-vault 32
2.4.7ansible-console 32
2.5Ansible Inventory配置及详解 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章Ansible Ad-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与Web Servers实践 54
3.3.3Ad-Hoc配置后端:配置NoSQL与Database Servers实践 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.js app服务部署总结 78
4.6实战二:Drupal基于LAMP的自动化部署 78
4.6.1定义变量并设置Handlers 79
4.6.2部署LAMP基础服务 80
4.6.3配置Apache 81
4.6.4配置PHP 82
4.6.5配置MySQL 83
4.6.6安装Drush和Composer 84
4.6.7通过Git和Drush安装Drupal 85
4.6.8Drupal部署过程总结 86
4.7实战三:Ansible部署Tomcat企业实战 86
4.7.1定义变量并设置Handlers 86
4.7.2安装Java 87
4.7.3安装Tomcat 8 88
4.7.4安装Apache Solr 89
4.8本章小结 91
第5章Ansible Playbook拓展 92
5.1Handlers 92
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加密模块Vault 104
5.3.8变量优先级 106
5.4if/then/when——流程控制 107
5.4.1Jinja2 正则表达、Python 内置函数和逻辑判断 107
5.4.2变量注册器register 108
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巧用 Includes 118
6.1.1Includes使用场景 118
6.1.2Includes用法 119
6.1.3动态 Includes 123
6.1.4Handler Includes使用技巧 123
6.1.5Playbooks Includes使用技巧 124
6.2巧用Roles 124
6.2.1构建Roles 125
6.2.2使用Roles重构Playbooks 125
6.2.3Roles技巧之Handlers:动态变更 129
6.2.4Roles技巧之Files:文件传输 131
6.2.5Roles技巧之Templates:模板替换 133
6.2.6更多复杂的跨平台Roles 135
6.3Jinja2实现模板高度自定义 136
6.3.1Jinja2 For循环 136
6.3.2Jinja2 If条件 137
6.3.3Jinja多值合并 138
6.3.4Jinja default()设定 140
6.3.5Ansible结合Jinja2生成Nginx配置 141
6.3.6Ansible结合Jinja2生成Apache多主机配置 146
6.3.7Jinja2动态变量配置及架构优化 148
6.4Ansible Galaxy 151
6.4.1Ansible-galaxy命令用法 151
6.4.2使用Galaxy 152
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动态Inventory 161
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为新系统添加安全认证SSHKey 175
9.1.1Ansible密码认证 175
9.1.2ssh-copy-id 176
9.1.3Kickstart 177
9.1.4Python Paramiko 178
9.1.5Expect 179
9.2企业高可用架构的Ansible应用 180
9.2.1Playbook目录编排 181
9.2.2高可用架构基于Ansible的自动化实现 181
9.2.3使用Includes衔接各服务配置 188
9.3ELK日志系统基于Ansible的自动化实现 189
9.3.1ELK Server的自动化实现 190
9.3.2ELK Client的自动化实现 192
9.4实时日志系统基于Ansible的自动化实现 192
9.4.1配置概览 192
9.4.2架构部署 193
9.5Zabbix基于Ansible的自动化实现 195
9.5.1Zabbix Server基于Ansible的自动化实现 196
9.5.2Zabbix Agent基于Ansible的自动化实现 199
9.5.3Zabbix Proxy基于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.4Windows Ansible模块使用实战 224
10.5本章小结 226
第11章Ansible安全优化篇 227
11.1SSH与远程连接简介 227
11.1.1Telnet 228
11.1.2RLOGIN、RSH和RCP 228
11.1.3SSH 228
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和AppArmor 239
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章开发自己的Ansible WebUI 267
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.5Ansible WebUI界面开发 280
13.5.1对接前端页面与Ansible的Web接口 280
13.5.2配置Web页面传参 282
13.6本章小结 285
第14章Web与Ansible结合的常用实例 286
14.1Web方式管理Ansible的Inventory 286
14.1.1重新定制Ansible的Hosts文件规则 286
14.1.2使用ConfigParser解析并生成Ansible Hosts文件 287
14.1.3使用数据库的存储数据生成的Ansible Hosts文件 290
14.1.4通过页面来生成Hosts文件 293
14.2使用celery后台执行任务 301
14.2.1为什么要使用celery 301
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