
如果服务器数量很多,配置信息比较多,可以使用ansible playbook剧本管理远程主机,从而以非常简便的方式实现任务处理的自动化与流程化。playbook由一个或多个“play”组成的列表,play的主要功能是ansible中的Task定义好的角色,指定剧本对应的服务器组。从根本上说,task是一个任务,task调用ansible各种模块module,将多个play组织在一个playbook剧本中,然后组成一个非常完整的流程控制集合。基于ansible playbook还可以收集命令、可以创建任务集,这样能够大大降低管理工作的复杂程度,playbook采用yaml语法结构,易于阅读、方便配置。yaml(Yet Another Markup Language),是一种直观的能够被电脑识别的数据序列化格式,是一种可读性高且容易被人类阅读,容易和脚本语言交互,用来表达资料序列的编程语言。它参考了其它多种语言,包括:XML、C语言、Python、P二楼以及电子邮件格式RFC2822,是类似于标准通用语言的子集XML的数据描述语言,语法比XML简单很多。yaml使用空白字符和分行来分隔资料,适合用grep、python、perl、ruby操作。yaml语言特性如下:1.可读性强;2.和脚本语言的交互性好;3.使用实现语言的数据类型;4.一致的信息模型;5.易于实现;6.基于流来处理;7.可扩展性强;playbooks组件包括如下:Target 定义playbook的远程主机组; Variable 定义playbook使用的变量; Task 定义远程主机上执行的任务列表; Handler 定义task执行完成以后需要调用的任务,例如配置文件被改动(CHANGED),则启动handler任务重启相关联的服务,与notify配合使用;Target常用参数如下: