Playbook 快速入门
Playbook 简介
- Playbooks是Ansible的配置,部署和编排语言。
 - 他们可以描述您希望在远程机器做哪些事或者描述IT流程中一系列步骤。
 - 使用易读的YAML格式组织Playbook文件。
 - 如果Ansible模块是您工作中的工具,那么Playbook就是您的使用说明书,而您的主机资产文件就是您的原材料。
 - 与adhoc任务执行模式相比,Playbooks使用ansible是一种完全不同的方式,并且功能特别强大。
 
1  | # 官方文档:  | 
简单示例
1  | # 卸载掉之前安装的nginx  | 
1  | # 创建 playbook 目录  | 
1  | [root@master playbook]# vim install_nginx.yaml  | 
1  | # 测试执行  | 

1  | # 客户端验证  | 
常用定义
主机和主机组
1  | # work 普通用户  | 
定义变量
- 变量是应用于多个主机的便捷方式
 - 实际在主机执行之前,变量会对每个主机添加,然后在执行中引用。
 
命令行传递
1  | # -e VAR=VALUE 传递参数  | 
主机变量与组变量
1  | # 在Inventory中定义变量  | 
单文件存储变量
1  | 1. Ansible中的首选做法是不将变量存储在Inventory中。  | 
1  | # 所有主机有效  | 
1  | # 主机组有效,文件名要与主机组一致  | 
在Playbook中定义
1  | - hosts: web  | 
1  | [root@master playbook]# vim install_nginx.yaml  | 

Register变量
1  | # 将命令的结果保存成一个变量  | 
1  | [root@master playbook]# vim install_nginx.yaml  | 
1  | # 相当于将执行结果显示  | 

任务列表
- 每个playbook包含一系列任务。这些任务按照顺序执行。
 - 在playbook中,所有主机都会执行相同的任务指令。playbook目的是将选择的主机映射到任务。
 
1  | [root@master playbook]# vim show.yaml  | 
语法检查与调试
1  | # 测试运行,不实际操作:  | 
1  | [root@master playbook]# vim show.yaml  | 
1  | [root@master playbook]# ansible-playbook -C show.yaml  | 
任务控制
- 如果你有一个大的剧本,那么能够在不运行整个剧本的情况下运行特定部分。
 - 使用tags标记
 - 让程序按照阶段部署
 
1  | [root@master playbook]# vim show.yaml  | 
流程控制
条件 when
1  | [root@master playbook]# vim when.yaml  | 
循环
- 常用循环语句
 

1  | [root@master playbook]# vim create_file.yaml  | 
1  | [root@master tmp]# touch {a,b,c}.html  | 
模板 template
1  | # template 调用jinjia模板 并copy文件  | 
条件 和 循环
1  | [root@master config]# vim nginx.conf  | 
