【前言】
上次说了ansible的任务模式之一:ad-hoc模式,然而这种模式只适合一些简单任务,但是当一个设施过于复杂,需要大量操作的时候,执行ad-hoc命令显然是费时费力的,这时就要使用ansible的另一种任务模式了—-playbook。
【playbook介绍】
playbook是ansible用于配置、部署和管理被控节点的剧本。
通过palybook的详细描述,执行其中的一系列tasks,可以让远端主机达到预期的状态。playbook就像ansible控制器给被控节点列出的一系列to-do-list,而被控节点必须要完成。
换个意思理解,playbook 字面意思,即剧本,现实中由演员按照剧本表演,在Ansible中,这次由计算机进行表演,由计算机安装,部署应用,提供对外服务,以及组织计算机处理各种各样的事情。
使用playbook你可以方便的重用这些代码,可以移植到不同的机器上面,像函数一样,最大化的利用代码。在你使用ansible的过程中,你会发现,你所处理的大部分操作都是编写playbook。可以把常见的应用都编写成playbook,之后管理服务器会变得十分简单。
【ansible playbook格式】
playbook由YAML语言编写。
YAMLL( /ˈjæməl/ )参考了其他多种语言,包括:XML、C语言、Python、Perl以及电子邮件格式RFC2822,Clark Evans在2001年5月在首次发表了这种语言,另外Ingy döt Net与OrenBen-Kiki也是这语言的共同设计者。
YMAL格式是类似于JSON的文件格式,便于人理解和阅读,同时便于书写。首先学习了解一下YMAL的格式,对我们后面书写playbook很有帮助。
以下为playbook常用到的YMAL格式:
1、文件的第一行应该以”- - -” (三个连字符)开始,表示YAML文件的开始。
2、在同一行中,#之后的内容表示注释,类似于shell,Python和ruby
3、YAML中的列表元素以” - ” 开头,然后紧跟着一个空格,后面为元素内容;同一个列表中的元素应该保持相同的缩进,否则会被当做错误处理。
4、不能空格和tab混用
5、区别大小写
6、一个完整的代码块功能需要最少元素包括name: task
使用ansible-playbook运行playbook文件,得到输出信息,输出内容为JSON格式,并且由不同颜色组成,便于识别。一般而言:
绿色代表执行成功,系统保持原样
黄色代表系统状态发生改变
红色代表执行失败,显示错误输出。
在/etc/ansible/ansible.cfg文件中有所定义:
[root@centos7 ansible]# vim /etc/ansible/ansible.cfg
[colors]
#highlight = white
#verbose = blue
#warn = bright purple
#error = red
#debug = dark gray
#deprecate = purple
#skip = cyan
#unreachable = red
#ok = green
#changed = yellow
#diff_add = green
#diff_remove = red
#diff_lines = cyan
playbook的核心元素:
hosts:主机
tasks:任务列表
variables
temp