封面
版权信息
本书赞誉
前言
第一篇 基础入门篇
第1章 Ansible基础入门
1.1 Ansible是什么
1.2 Ansible发展史
1.3 为什么选择Ansible
1.4 Ansible是如何工作的
1.5 Ansible通信发展史
1.6 Ansible应用场景
1.7 Ansible的安装部署
1.7.1 PIP方式
1.7.2 YUM方式
1.7.3 Apt-get方式
1.7.4 源码安装方式
1.7.5 验证安装结果
1.8 Python多环境扩展管理
1.8.1 Pyenv的部署与使用
1.8.2 Virtualenv的部署与使用
1.9 本章小结
第2章 Ansible基础元素介绍
2.1 Ansible目录结构介绍
2.2 Ansible配置文件解析
2.3 Ansible命令用法详解
2.4 Ansible系列命令用法详解与使用场景介绍
2.4.1 ansible
2.4.2 ansible-galaxy
2.4.3 ansible-pull
2.4.4 ansible-doc
2.4.5 ansible-playbook
2.4.6 ansible-vault
2.4.7 ansible-console
2.5 Ansible Inventory配置及详解
2.5.1 定义主机和组
2.5.2 定义主机变量
2.5.3 定义组变量
2.5.4 定义组嵌套及组变量
2.5.5 多重变量定义
2.5.6 其他Inventory参数列表
2.6 Ansible与正则
2.7 本章小结
第3章 Ansible Ad-Hoc命令集
3.1 Ad-Hoc使用场景
3.2 Ad-Hoc命令集介绍
3.2.1 Ad-Hoc命令集用法简介
3.2.2 通过Ad-Hoc查看系统设置
3.2.3 通过Ad-Hoc研究Ansible的并发特性
3.2.4 通过Ad-Hoc研究Ansible的模块使用
3.3 Ad-Hoc组管理和特定主机变更
3.3.1 Ad-Hoc组定义
3.3.2 Ad-Hoc配置管理:配置Proxy与Web Servers实践
3.3.3 Ad-Hoc配置后端:配置NoSQL与Database Servers实践
3.3.4 Ad-Hoc特定主机变更
3.4 Ad-Hoc用户与组管理
3.4.1 Linux用户管理
3.4.2 Windows用户管理
3.4.3 应用层用户管理
3.5 本章小结
第4章 Playbook快速入门
4.1 Playbook语法简介
4.1.1 多行缩进
4.1.2 单行缩写
4.2 Playbook案例分析
4.3 Playbook与Shell脚本差异对比
4.4 Ansible-playbook实战小技巧
4.4.1 限定执行范围
4.4.2 用户与权限设置
4.4.3 Ansible-playbook:其他选项技巧
4.5 实战一:Ansible部署Node.js企业实践
4.5.1 添加第三方源
4.5.2 运行Node.js进程
4.5.3 Node.js app服务部署总结
4.6 实战二:Drupal基于LAMP的自动化部署
4.6.1 定义变量并设置Handlers
4.6.2 部署LAMP基础服务
4.6.3 配置Apache
4.6.4 配置PHP
4.6.5 配置MySQL
4.6.6 安装Drush和Composer
4.6.7 通过Git和Drush安装Drupal
4.6.8 Drupal部署过程总结
4.7 实战三:Ansible部署Tomcat企业实战
4.7.1 定义变量并设置Handlers
4.7.2 安装Java
4.7.3 安装Tomcat 8
4.7.4 安装Apache Solr
4.8 本章小结
第5章 Ansible Playbook拓展
5.1 Handlers
5.2 环境变量
5.3 变量
5.3.1 Playbook 变量
5.3.2 在Inventory文件中定义变量
5.3.3 注册变量
5.3.4 使用高阶变量
5.3.5 主机变量和组变量
5.3.6 Facts(收集系统信息)
5.3.7 Ansible加密模块Vault
5.3.8 变量优先级
5.4 if/then/when——流程控制
5.4.1 Jinja2 正则表达、Python 内置函数和逻辑判断
5.4.2 变量注册器register
5.4.3 when条件判断
5.4.4 changed_when、failed_when条件判断
5.4.5 ignore_errors条件判断
5.5 任务间流程控制
5.5.1 任务委托
5.5.2 任务暂停
5.6 交互式提示
5.7 Tags标签
5.8 Block块
5.9 本章小结
第二篇 高级进阶篇
第6章 Playbook高级技巧进阶
6.1 巧用 Includes
6.1.1 Includes使用场景
6.1.2 Includes用法
6.1.3 动态 Includes
6.1.4 Handler Includes使用技巧
6.1.5 Playbooks Includes使用技巧
6.2 巧用Roles
6.2.1 构建Roles
6.2.2 使用Roles重构Playbooks
6.2.3 Roles技巧之Handlers:动态变更
6.2.4 Roles技巧之Files:文件传输
6.2.5 Roles技巧之Templates:模板替换
6.2.6 更多复杂的跨平台Roles
6.3 Jinja2实现模板高度自定义
6.3.1 Jinja2 For循环
6.3.2 Jinja2 If条件
6.3.3 Jinja多值合并
6.3.4 Jinja default()设定
6.3.5 Ansible结合Jinja2生成Nginx配置
6.3.6 Ansible结合Jinja2生成Apache多主机配置
6.3.7 Jinja2动态变量配置及架构优化
6.4 Ansible Galaxy
6.4.1 Ansible-galaxy命令用法
6.4.2 使用Galaxy
6.5 本章小结
第7章 Inventory文件扩展
7.1 Inventory文件实战
7.2 独立的Inventory文件
7.3 Inventory变量
7.3.1 host_vars目录
7.3.2 group_vars目录
7.4 动态Inventory
7.5 本章小结
第8章 Ansible插件扩展
8.1 Ansible 插件使用场景
8.2 Ansible插件类型
8.3 如何编写自己的插件
8.4 插件案例实践
8.5 本章小结
第9章 Ansible企业应用实战
9.1 为新系统添加安全认证SSHKey
9.1.1 Ansible密码认证
9.1.2 ssh-copy-id
9.1.3 Kickstart
9.1.4 Python Paramiko
9.1.5 Expect
9.2 企业高可用架构的Ansible应用
9.2.1 Playbook目录编排
9.2.2 高可用架构基于Ansible的自动化实现
9.2.3 使用Includes衔接各服务配置
9.3 ELK日志系统基于Ansible的自动化实现
9.3.1 ELK Server的自动化实现
9.3.2 ELK Client的自动化实现
9.4 实时日志系统基于Ansible的自动化实现
9.4.1 配置概览
9.4.2 架构部署
9.5 Zabbix基于Ansible的自动化实现
9.5.1 Zabbix Server基于Ansible的自动化实现
9.5.2 Zabbix Agent基于Ansible的自动化实现
9.5.3 Zabbix Proxy基于Ansible的自动化实现
9.6 Ansible+Git+GitLab实现自动化发布
9.6.1 架构概览
9.6.2 架构部署
9.7 Docker的Ansible自动化应用
9.7.1 Docker容器入门
9.7.2 使用Ansible创建和管理容器
9.7.3 基于Ansible创建Flask的Docker容器
9.7.4 数据存储容器配置
9.7.5 Flask容器配置
9.7.6 MySQL容器配置
9.7.7 启动容器
9.8 本章小结
第10章 Ansible基于Windows的管理架构
10.1 Ansible管理机部署安装
10.2 Windows系统预配置
10.3 Windows下可用模块
10.4 Windows Ansible模块使用实战
10.5 本章小结
第11章 Ansible安全优化篇
11.1 SSH与远程连接简介
11.1.1 Telnet
11.1.2 RLOGIN、RSH和RCP
11.1.3 SSH
11.1.4 SSH的发展和远程访问的未来
11.2 通信加密
11.3 禁止root远程登录
11.4 操作系统简介
11.5 遵守权限最小化原则
11.5.1 用户管理
11.5.2 文件权限管理
11.6 定期维护更新
11.6.1 手动更新
11.6.2 自动定时更新
11.7 善用Iptables防火墙
11.8 定期磁盘巡检
11.9 系统登录日志审记
11.10 正确使用SELinux和AppArmor
11.11 本章小结
第三篇 Web自动化开发篇
第12章 Ansible模块编写
12.1 初步认识Ansible模块
12.2 Ansible简单模块编写
12.3 模块变量添加
12.4 模块状态返回的标识及应用
12.5 模块退出状态处理
12.6 模块其他功能补充
12.7 Ansible模块API的调用
12.8 本章小结
第13章 开发自己的Ansible WebUI
13.1 搭建Django开发环境
13.1.1 为什么要使用Web页面做管理
13.1.2 系统及软件环境
13.2 Django配置文件详解
13.2.1 Django的基础配置及运行
13.2.2 Django的主配置目录介绍
13.2.3 Django的app目录介绍
13.3 编写Ansible的Web接口
13.4 前端基础知识介绍
13.4.1 HTML和CSS简介
13.4.2 JavaScript简介
13.5 Ansible WebUI界面开发
13.5.1 对接前端页面与Ansible的Web接口
13.5.2 配置Web页面传参
13.6 本章小结
第14章 Web与Ansible结合的常用实例
14.1 Web方式管理Ansible的Inventory
14.1.1 重新定制Ansible的Hosts文件规则
14.1.2 使用ConfigParser解析并生成Ansible Hosts文件
14.1.3 使用数据库的存储数据生成的Ansible Hosts文件
14.1.4 通过页面来生成Hosts文件
14.2 使用celery后台执行任务
14.2.1 为什么要使用celery
14.2.2 使用celery的前期准备
14.2.3 使用celery开始任务
14.2.4 使用celery取消正在进行的任务
14.3 运行YML文件并实时读取日志
14.4 通过页面上传文件并基于Ansible分发
14.5 在页面上构建YML文件注册中心
14.6 操作者注册中心界面
14.7 本章小结
更新时间:2019-01-04 06:59:49