|
- ---
- - name: force handlers
- hosts: server2.example.com
- force_handlers: yes
- tasks:
- - name: a
- shell: "/bin/true"
- notify: h_shell
- - name: a shell
- yum:
- name: notapkg
- state: latest
- handlers:
- - name: h_shell
- service:
- name: mariadb
- state: restarted
复制代码 注释和未注释handlers的输出差异:
[student@classroom ansible]$ ansible-playbook v6-4_server2.yml
PLAY [force handlers] ****************************************************************************************************************************************************
TASK [Gathering Facts] ***************************************************************************************************************************************************
ok: [server2.example.com]
TASK [a] *****************************************************************************************************************************************************************
fatal: [server2.example.com]: FAILED! => {"changed": true, "cmd": "/bin/true1", "delta": "0:00:00.006282", "end": "2020-08-12 22:03:19.083473", "msg": "non-zero return code", "rc": 127, "start": "2020-08-12 22:03:19.077191", "stderr": "/bin/sh: /bin/true1: No such file or directory", "stderr_lines": ["/bin/sh: /bin/true1: No such file or directory"], "stdout": "", "stdout_lines": []}
PLAY RECAP ***************************************************************************************************************************************************************
server2.example.com : ok=1 changed=0 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0
以上是把/bin/true改成/bin/true1,仍然保留force_handlers,但是不触发handler
[student@classroom ansible]$ ansible-playbook v6-4_server2.yml
PLAY [force handlers] ****************************************************************************************************************************************************
TASK [Gathering Facts] ***************************************************************************************************************************************************
ok: [server2.example.com]
TASK [a] *****************************************************************************************************************************************************************
changed: [server2.example.com]
shell模块永远都是黄的,changed
TASK [a shell] ***********************************************************************************************************************************************************
fatal: [server2.example.com]: FAILED! => {"changed": false, "failures": ["No package notapkg available."], "msg": "Failed to install some of the specified packages", "rc": 1, "results": []}
RUNNING HANDLER [h_shell] ************************************************************************************************************************************************
PLAY RECAP ***************************************************************************************************************************************************************
server2.example.com : ok=2 changed=1 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0
以上这一段,是没有写force_handlers的(都是/bin/true)。
下面这一段是写了force_handlers的(都是/bin/true)。
[student@classroom ansible]$ ansible-playbook v6-4_server2.yml
PLAY [force handlers] ****************************************************************************************************************************************************
TASK [Gathering Facts] ***************************************************************************************************************************************************
ok: [server2.example.com]
TASK [a] *****************************************************************************************************************************************************************
changed: [server2.example.com]
shell模块永远都是黄的,changed
TASK [a shell] ***********************************************************************************************************************************************************
fatal: [server2.example.com]: FAILED! => {"changed": false, "failures": ["No package notapkg available."], "msg": "Failed to install some of the specified packages", "rc": 1, "results": []}
RUNNING HANDLER [h_shell] ************************************************************************************************************************************************
changed: [server2.example.com]
PLAY RECAP ***************************************************************************************************************************************************************
server2.example.com : ok=3 changed=2 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0
[student@classroom ansible]$
如果task a(出发handler的那个task)是绿的,即使force_handlers也不会执行handler:
- ---
- - name: force handlers
- hosts: server2.example.com
- force_handlers: yes
- tasks:
- - name: a
- service:
- name: sshd
- state: started
- enabled: yes
- notify: h_shell
- - name: a shell
- yum:
- name: notapkg
- state: latest
- handlers:
- - name: h_shell
- service:
- name: mariadb
- state: restarted
复制代码
[student@classroom ansible]$ ansible-playbook v6-4_server2.yml
PLAY [force handlers] ******************************************************************************************************************************************************************
TASK [Gathering Facts] *****************************************************************************************************************************************************************
ok: [server2.example.com]
TASK [a] *******************************************************************************************************************************************************************************
ok: [server2.example.com]
TASK [a shell] *************************************************************************************************************************************************************************
fatal: [server2.example.com]: FAILED! => {"changed": false, "failures": ["No package notapkg available."], "msg": "Failed to install some of the specified packages", "rc": 1, "results": []}
PLAY RECAP *****************************************************************************************************************************************************************************
server2.example.com : ok=2 changed=0 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0
|
|