第1章 Ansible介绍
1.1 Ansible介绍
1.2 Ansible解决了什么运维痛点
1.3 架构
1.3.1 Ansible的架构
1.3.2 Ansible Tower的架构
第2章 Ansible入门
2.1 安装Ansible
2.1.1 在管理员的电脑上安装
2.1.2 被管理的远程主机
2.2 Ansible管理哪些主机
2.2.1 什么是主机目录
2.2.2 主机目录配置文件
2.3 Ansible用命令管理主机
2.3.1 Ansible命令的格式
2.3.2 Ansible命令的功能
2.4 Ansible用脚本管理主机
2.4.1 执行脚本Playbook的方法
2.4.2 Playbook的例子
2.4.3 Play和Playbook
2.5 Ansible模块
2.5.1 什么是Ansible模块
2.5.2 在命令行里使用模块
2.5.3 在Playbook脚本中使用模块
2.5.4 Ansible模块的特点
2.5.5 常用模块
第3章 Ansible进阶
3.1 Ansible的配置
3.1.1 可以配置什么
3.1.2 Ansible配置文件的优先级
3.2 主机清单
3.2.1 远程主机的分组
3.2.2 设置连接参数
3.2.3 变量
3.3 Ansible的脚本Playbook
3.3.1 Playbook的文件格式YAML
3.3.2 执行Playbook的命令
3.3.3 Playbook的基本语法
3.3.4 变量
3.3.5 Playbook也有逻辑控制语句
3.3.6 重用Playbook
3.3.7 用标签,实现执行Playbook中的部分任务
3.4 更多的Ansible模块
3.4.1 模块的分类
3.4.2 Extra模块的使用方法
3.4.3 命令行查看模块的用法
3.5 最佳使用方法
3.5.1 写Playbook的原则
3.5.2 参考别人的Playbook
第4章 Ansible Playbook杂谈
4.1 再谈Ansible变量
4.1.1 变量的作用域
4.1.2 变量的优先级
4.2 使用lookup访问外部文件或数据库中的数据
4.2.1 lookup读取文件
4.2.2 lookup生成随机密码
4.2.3 lookup读取环境变量
4.2.4 lookup读取Linux命令的执行结果
4.2.5 lookup读取template变量替换后的文件
4.2.6 lookup读取配置文件
4.2.7 lookup读取CSV文件的指定单元
4.2.8 lookup读取DNS解析的值
4.2.9 更多的lookup功能
4.3 过滤器
4.3.1 过滤器使用的位置
4.3.2 过滤器对普通变量的操作
4.3.3 过滤器对文件路径的操作
4.3.4 过滤器对字符串变量的操作
4.3.5 过滤器对JSON的操作
4.3.6 过滤器对数据结构的操作
4.3.7 过滤器的链式/连续使用
4.4 测试变量或表达式是否符合条件
4.4.1 测试字符串
4.4.2 比较版本
4.4.3 测试List的包含关系
4.4.4 测试文件路径
4.4.5 测试任务的执行结果
4.5 认识插件
4.5.1 插件类型
4.5.2 常用的插件介绍
第5章 role和Ansible Galaxy
5.1 role和Ansible Galaxy的简要介绍
5.1.1 role
5.1.2 Ansible Galaxy
5.2 role的放置位置
5.2.1 当前目录的roles文件夹下
5.2.2 环境变量ANSIBLE_ROLES_PATH定义的文件夹
5.2.3 Ansible配置文件中roles_path定义的文件夹
5.2.4 默认文件夹/etc/ansible/roles
5.3 在Playbook中如何调用role
5.3.1 调用最简单的role
5.3.2 通过pre_tasks和post_tasks调整role和任务的顺序
5.3.3 调用带有参数的role
5.3.4 与when一起使用role
5.4 如何写role
5.4.1 role的完整定义
5.4.2 默认变量和普通变量的区别
5.4.3 tasks/main.yml如何使用变量、静态文件和模板
5.5 role的依赖
5.6 Ansible Galaxy网站介绍
5.6.1 从Ansible Galaxy网站上下载role
5.6.2 分享你的role
5.7 演示role的创建和分享
5.7.1 改造单个的Playbook为role
5.7.2 在Ansible Galaxy中分享role
第6章 Ansible Tower
6.1 为什么要用Ansible Tower
6.1.1 Ansible和Tower的用户视角架构图
6.1.2 Ansible Tower的主要功能
6.2 如何使用Ansible Tower
6.2.1 安装方法
6.2.2 使用方法
6.2.3 总结
6.3 与第三方平台的整合
6.3.1 Ansible Tower API
6.3.2 Ansible Tower提供的命令行工具
附录A