《Ansible权威指南》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:李松涛,魏巍,甘捷著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2016
  • ISBN:7111553298
  • 页数:331 页
图书介绍:

第一篇 基础入门篇 2

第1章 Ansible基础入门 2

1.1 Ansible是什么 2

1.2 Ansible发展史 4

1.3 为什么选择Ansible 5

1.4 Ansible是如何工作的 6

1.5 Ansible通信发展史 8

1.6 Ansible应用场景 11

1.7 Ansible的安装部署 12

1.7.1 PIP方式 13

1.7.2 YUM方式 13

1.7.3 Apt-get方式 14

1.7.4 源码安装方式 14

1.7.5 验证安装结果 15

1.8 Python多环境扩展管理 16

1.8.1 Pyenv的部署与使用 16

1.8.2 Virtualenv的部署与使用 18

1.9 本章小结 20

第2章 Ansible基础元素介绍 21

2.1 Ansible目录结构介绍 21

2.2 Ansible配置文件解析 23

2.3 Ansible命令用法详解 25

2.4 Ansible系列命令用法详解与使用场景介绍 28

2.4.1 ansible 28

2.4.2 ansible-galaxy 29

2.4.3 ansible-pull 31

2.4.4 ansible-doc 31

2.4.5 ansible-playbook 31

2.4.6 ansible-vault 32

2.4.7 ansible-console 32

2.5 Ansible 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.6 Ansible与正则 37

2.7 本章小结 39

第3章 Ansible Ad-Hoc命令集 40

3.1 Ad-Hoc使用场景 40

3.2 Ad-Hoc命令集介绍 41

3.2.1 Ad-Hoc命令集用法简介 41

3.2.2 通过Ad-Hoc查看系统设置 46

3.2.3 通过Ad-Hoc研究Ansible的并发特性 47

3.2.4 通过Ad-Hoc研究Ansible的模块使用 49

3.3 Ad-Hoc组管理和特定主机变更 52

3.3.1 Ad-Hoc组定义 52

3.3.2 Ad-Hoc配置管理:配置Proxy与Web Servers实践 54

3.3.3 Ad-Hoc配置后端:配置NoSQL与Database Servers实践 56

3.3.4 Ad-Hoc特定主机变更 57

3.4 Ad-Hoc用户与组管理 58

3.4.1 Linux用户管理 58

3.4.2 Windows用户管理 63

3.4.3 应用层用户管理 64

3.5 本章小结 65

第4章 Playbook快速入门 66

4.1 Playbook语法简介 66

4.1.1 多行缩进 67

4.1.2 单行缩写 67

4.2 Playbook案例分析 68

4.3 Playbook与Shell脚本差异对比 71

4.4 Ansible-playbook实战小技巧 71

4.4.1 限定执行范围 71

4.4.2 用户与权限设置 72

4.4.3 Ansible-playbook:其他选项技巧 73

4.5 实战一:Ansible部署Node js企业实践 73

4.5.1 添加第三方源 73

4.5.2 运行Node js进程 77

4.5.3 Node 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.8 Drupal部署过程总结 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.1 Handlers 92

5.2 环境变量 93

5.3 变量 95

5.3.1 Playbook变量 96

5.3.2 在Inventory文件中定义变量 97

5.3.3 注册变量 98

5.3.4 使用高阶变量 98

5.3.5 主机变量和组变量 100

5.3.6 Facts(收集系统信息) 101

5.3.7 Ansible加密模块Vault 104

5.3.8 变量优先级 106

5.4 if/then/when流程控制 107

5.4.1 Jinja2正则表达、Python内置函数和逻辑判断 107

5.4.2 变量注册器register 108

5.4.3 when条件判断 109

5.4.4 changed_when、 failed-when条件判断 110

5.4.5 ignore_ errors条件判断 111

5.5 任务间流程控制 111

5.5.1 任务委托 111

5.5.2 任务暂停 112

5.6 交互式提示 112

5.7 Tags标签 113

5.8 Block块 115

5.9 本章小结 116

第二篇 高级进阶篇 118

第6章 Playbook高级技巧进阶 118

6.1 巧用Includes 118

6.1.1 Includes使用场景 118

6.1.2 Includes用法 119

6.1.3 动态Includes 123

6.1.4 Handler Includes使用技巧 123

6.1.5 Playbooks Includes使用技巧 124

6.2 巧用Roles 124

6.2.1 构建Roles 125

6.2.2 使用Roles重构Playbooks 125

6.2.3 Roles技巧之Handlers:动态变更 129

6.2.4 Roles技巧之Files:文件传输 131

6.2.5 Roles技巧之Templates:模板替换 133

6.2.6 更多复杂的跨平台Roles 135

6.3 Jinja2实现模板高度自定义 136

6.3.1 Jinja2 For循环 136

6.3.2 Jinja2 If条件 137

6.3.3 Jinja多值合并 138

6.3.4 Jinja default()设定 140

6.3.5 Ansible结合Jinja2生成Nginx配置 141

6.3.6 Ansible结合Jinja2生成Apache多主机配置 146

6.3.7 Jinja2动态变量配置及架构优化 148

6.4 Ansible Galaxy 151

6.4.1 Ansible-galaxy命令用法 151

6.4.2 使用Galaxy 152

6.5 本章小结 154

第7章 Inventory文件扩展 155

7.1 Inventory文件实战 155

7.2 独立的Inventory文件 159

7.3 Inventory变量 159

7.3.1 host vars目录 160

7.3.2 group vars目录 161

7.4 动态Inventory 161

7.5 本章小结 168

第8章 Ansible插件扩展 169

8.1 Ansible插件使用场景 169

8.2 Ansible插件类型 170

8.3 如何编写自己的插件 171

8.4 插件案例实践 172

8.5 本章小结 174

第9章 Ansible企业应用实战 175

9.1 为新系统添加安全认证SSHKey 175

9.1.1 Ansible密码认证 175

9.1.2 ssh-copy-id 176

9.1.3 Kickstart 177

9.1.4 Python Paramiko 178

9.1.5 Expect 179

9.2 企业高可用架构的Ansible应用 180

9.2.1 Playbook目录编排 181

9.2.2 高可用架构基于Ansible的自动化实现 181

9.2.3 使用Includes衔接各服务配置 188

9.3 ELK日志系统基于Ansible的自动化实现 189

9.3.1 ELK Server的自动化实现 190

9.3.2 ELK Client的自动化实现 192

9.4 实时日志系统基于Ansible的自动化实现 192

9.4.1 配置概览 192

9.4.2 架构部署 193

9.5 Zabbix基于Ansible的自动化实现 195

9.5.1 Zabbix Server基于Ansible的自动化实现 196

9.5.2 Zabbix Agent基于Ansible的自动化实现 199

9.5.3 Zabbix Proxy基于Ansible的自动化实现 201

9.6 Ansible+Git+GitLab实现自动化发布 202

9.6.1 架构概览 203

9.6.2 架构部署 203

9.7 Docker的Ansible自动化应用 206

9.7.1 Docker容器入门 206

9.7.2 使用Ansible创建和管理容器 207

9.7.3 基于Ansible创建Flask的Docker容器 208

9.7.4 数据存储容器配置 210

9.7.5 Flask容器配置 211

9.7.6 MySQL容器配置 213

9.7.7 启动容器 215

9.8 本章小结 215

第10章 Ansible基于Windows的管理架构 217

10.1 Ansible管理机部署安装 218

10.2 Windows系统预配置 219

10.3 Windows下可用模块 224

10.4 Windows Ansible模块使用实战 224

10.5 本章小结 226

第11章 Ansible安全优化篇 227

11.1 SSH与远程连接简介 227

11.1.1 Telnet 228

11.1.2 RLOGIN、RSH和RCP 228

11.1.3 SSH 228

11.1.4 SSH的发展和远程访问的未来 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自动化开发篇 242

第12章 Ansible模块编写 242

12.1 初步认识Ansible模块 242

12.2 Ansible简单模块编写 243

12.3 模块变量添加 245

12.4 模块状态返回的标识及应用 246

12.5 模块退出状态处理 249

12.6 模块其他功能补充 250

12.7 Ansible模块API的调用 251

12.8 本章小结 265

第13章 开发自己的Ansible WebUI 267

13.1 搭建Django开发环境 267

13.1.1 为什么要使用Web页面做管理 267

13.1.2 系统及软件环境 268

13.2 Django配置文件详解 269

13.2.1 Django的基础配置及运行 269

13.2.2 Django的主配置目录介绍 270

13.2.3 Django的app目录介绍 271

13.3 编写Ansible的Web接口 272

13.4 前端基础知识介绍 278

13.4.1 HTML和CSS简介 278

13.4.2 JavaScript简介 279

13.5 Ansible WebUI界面开发 280

13.5.1 对接前端页面与Ansible的Web接口 280

13.5.2 配置Web页面传参 282

13.6 本章小结 285

第14章 Web与Ansible结合的常用实例 286

14.1 Web方式管理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