一:playbooks;
playbooks是Ansible用于配置、部署和管理被控节点的剧本。 通过执行一系列tasks,让远程主机达到预期状态;playbooks就像Ansible控制器给被控节点列出的的一系列to-do-list,而被控节点必须要完成。playbooks由YAML语言编写,YAML参考了其他多种语言,包括:XML、C语言、Python、Perl以及电子邮件格式RFC2822,Clark Evans在2001年5月在首次发表了这种语言,另外Ingy döt Net与Oren Ben-Kiki也是这语言的共同设计者。
playbooks格式:
1、文件的第一行应该以 ”—” (三个连字符)开始,表明YAML文件的开始(非必须);
2、在同一行中,#之后的内容表示注释,类似于shell,python和ruby;
3、YMAL中的列表元素以”-”开头然后紧跟着一个空格,后面为元素内容;
4、同一个列表中的元素应该保持相同的缩进。否则会被当做错误处理;
5、play中hosts,variables,roles,tasks等对象的表示方法都是键值中间以”:”分隔表示,”:”后面还要增加一个空格;
6、文件以.yml结尾。
eg:- apple;- banana;- orange等价于JSON的这种格式
Playbooks配置文件的基础组件:
Hosts:运行指定任务的目标主机;
remoute_user: 在远程主机上执行任务的用户;
sudo_user:也可以使用sudo,但是用户必须要有执行相应tasks的权限;
tasks:任务列表;
模块,模块参数;
格式:
(1) action: module arguments
(2) module: arguments
注意:shell和command模块后面直接跟命令,而非key=value类的参数列表;
(1) 某任务的状态在运行后为changed时,可通过“notify”通知给相应的handlers;