Process

时间:2023-03-09 04:01:07
Process

Process

---
- hosts: test
gather_facts: false
tasks:
- name: Task1
shell: ls
notify: Hander3
- name: Task2
shell: ls
notify: Hander1
ignore_errors: true
- name: Task3
shell: ls
notify: Hander2
handlers:
- name: Hander1
debug: msg="one"
- name: Hander2
debug: msg="two"
- name: Hander3
debug: msg="three"
Q&A
1、如果某个task或hander执行错误 那么整个执行流程终止 它后面的操作就不会再执行(除非设置ignore_errors: true)
Example:
Process
Output:(Task3执行失败 但设置跳过error所以执行流程没有中断 但Hander2不会被通知 Hander1执行失败 没有设置跳过error 所以执行流程终止)
Process
2、(1)round1:Task1执行成功(已经在目的机器成功添加ansible用户)并notify Hander3,Task3执行失败 整个流程终止. (2)round2 修改Task3 使流程执行成功,但Hander3不会被Task1通告执行 因为Task1已经在round1执行过了 round2 Task1的执行状态显示ok 不是changed   
Example:(round2 Task3修改dvgsd为正确命令)
Process
Output:
(1)round1
Process
(2)round2(Task1的状态为ok Hander3没有被通告执行)
Process