Ansible适用于临时命令,一条命名只能调用一个模块,对于完成一个任务来说,需要调用很多模块才能完成,过程繁琐,Playbook则可以完成Ansible繁琐的工作从而变得简单。
Playbook扩展名是yml格式,使用带空格字符的缩进来表示数据的结构。对使用多少空格的缩进没有严格的要求,但是有两个基本规则:
1,层次结构中相同级别的数据元素必须具有相同的缩进;
2,子项必须比父项缩进的更多;
可以添加空行增加可读性;
注意:只能使用空格缩进,不能使用tab缩进;
Playbook以三个破折号(---)作为文档开始标记。以三个点(...)作为文档结尾标记,尽管在实践中这个经常被省略。
在这些标记之间,Playbook由一组plays构成。YAM列表中的item以一个破折号开始,后跟空格。
执行剧本的几个命令 ;
ansible-playbook --syntax-check *.yml ---->> 检查语法
ansible-playbook -C *.yml ---->> 模拟执行
ansible-playbook *.yml ---->>执行这个剧本
实例:编辑yml文件对远端服务器192.168.200.117和192.168.200.118进行安装启动httpd服务
---
- name: httpd install and config
hosts: 192.168.200.117
tasks:
- name: install httpd
yum:
name: httpd
state: present
- name: start httpd
service:
name: httpd
state: started
- name: config firewalld to httpd
firewalld:
service: http
permanent: yes
immediate: yes
state: enabled
ansible-playbook --syntax-check /root/website.yml 检查语法是否错误
ansible-playbook -C /root/website.yml 空转运行,对远端服务器进行模拟运行,对远程没有任何影响
curl 192.168.200.117 尝试登陆192.168.200.117
ansible-playbook /root/website.yml 应用yml
curl 192.168.200.117 再次登陆192.168.200.117主页看下,出现主页
编辑 /root/website.yml,添加192.168.200.119
ansible-playbook --syntax-check /root/website.yml 检查语法是否错误
ansible-playbook -C /root/website.yml 再次空转,是否运行正常
curl 192.168.200.117 尝试登陆192.168.200.119
ansible-playbook /root/website.yml 正式执行yml文件
curl 192.168.200.117 再次登陆192.168.200.119主页看下,出现主页
从这个例子可以看出,Playbook通过编写剧本可以执行一些重复性的操作,方便易懂。