控制执行顺序
- 对于playbook中的每个play,任务按照任务列表中的顺序来执行
- 在角色添加到play中后,角色任务将添加到任务列表的开头
- 如果play中包含第二个角色,其任务列表添加到第一个角色之后
- 在某些情形中,可能需要在角色之前执行一些play任务
- 若要支持这样的情形,可以为play配置pre_tasks部分,列在此部分中的所有任务将在执行任何角色之前执行。如果这些任务中有任何一个通知了处理程序,则这些处理程序任务也在角色或普通任务之前执行。
以下通过一张图来解释执行顺序:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Jo9f8YRF-1628231329711)(C:\Users\86155\Desktop\执行顺序.png)]
以下使用角色timesync来演示以下:
---
- hosts: 192.168.218.128
pre_tasks:
- debug:
msg: 'pre-task'
notify: my handler
roles:
- timesync
tasks:
- debug:
msg: 'first task'
notify: my handler
post_tasks:
- debug:
msg: 'post-task'
notify: my handler
handlers:
- name: my handler
debug:
msg: Running my handler
- 在上例中,每个部分中都执行debug任务来通知my handler处理程序
- my handler任务执行了三次
- 在执行了所有pre_tasks任务后
- 在执行了所有角色任务和tasks部分中的任务后
- 在执行了所有post_tasks后
利用系统角色重用内容
- 在RHEL8中,该软件包可以从AppStream中获取
RHEL系统角色
安装RHEL系统角色
- RHEL系统角色由rhel-system-roles软件包提供,该软件包可从AppStream流获取。
- 在Ansible控制节点上安装该软件包。
安装RHEL系统角色
[root@192 ~]# yum -y install rhel-system-roles
安装后,RHEL系统角色位于/usr/share/ansible/roles目录中
[root@192 ~]# cd /usr/share/ansible/roles/
[root@192 roles]# ls
linux-system-roles.certificate rhel-system-roles.certificate
linux-system-roles.crypto_policies rhel-system-roles.crypto_policie