搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
Ansible权威指南
0.00    
图书来源:
  • 配送范围:
    全国(除港澳台地区)
  • ISBN:
    9787111553298
  • 作      者:
    李松涛,魏巍,甘捷著
  • 出 版 社 :
    机械工业出版社
  • 出版日期:
    2016
收藏
编辑推荐

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

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

展开
作者简介

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


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


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

展开
内容介绍

  多名运维技术专家联袂推荐,海量运维实践者、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和自动化运维的不二之选。

展开
精彩书评

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

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

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

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

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

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

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

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

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

  —— 智锦 资深运维从业者,杭州云霁科技有限公司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

展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证