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