|
本来会执行成功:
- ---
- - name: failed_when
- hosts: server3.example.com
- tasks:
- - name: run user creation script
- shell: "echo SPOTO"
- register: v_create
- # failed_when: '"already exists" not in v_create.stderr'
- # ignore_errors: yes
- - name: debug info
- debug:
- var: v_create
-
复制代码 但是要有条件地让它执行失败:
- ---
- - name: failed_when
- hosts: server3.example.com
- tasks:
- - name: run user creation script
- shell: "echo SPOTO"
- register: v_create
- failed_when: '"SPOTO" in v_create.stdout'
- ignore_errors: yes
- - name: debug info
- debug:
- var: v_create
复制代码
- [student@classroom ansible]$ ansible-playbook v6-5_server3.yml
复制代码 PLAY [failed_when] *************************************************************************************************************************************************************
TASK [Gathering Facts] *********************************************************************************************************************************************************
ok: [server3.example.com]
TASK [run user creation script] ************************************************************************************************************************************************
fatal: [server3.example.com]: FAILED! => {"changed": true, "cmd": "echo SPOTO", "delta": "0:00:00.003968", "end": "2020-08-15 15:33:56.816235", "failed_when_result": true, "rc": 0, "start": "2020-08-15 15:33:56.812267", "stderr": "", "stderr_lines": [], "stdout": "SPOTO", "stdout_lines": ["SPOTO"]}
...ignoring
TASK [debug info] **************************************************************************************************************************************************************
ok: [server3.example.com] => {
"v_create": {
"changed": true,
"cmd": "echo SPOTO",
"delta": "0:00:00.003968",
"end": "2020-08-15 15:33:56.816235",
"failed": true,
"failed_when_result": true,
"rc": 0,
"start": "2020-08-15 15:33:56.812267",
"stderr": "",
"stderr_lines": [],
"stdout": "SPOTO",
"stdout_lines": [
"SPOTO"
]
}
}
PLAY RECAP *********************************************************************************************************************************************************************
server3.example.com : ok=3 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=1
- ---
- - name: failed_when
- hosts: server3.example.com
- tasks:
- - name: run user creation script
- shell: "echo SPOTO"
- register: v_fail
- - name: debug info
- fail:
- msg: "XXXXXXXXXXXXX"
- when: '"SPOTO" in v_fail.stdout'
复制代码 下面是changed_when(非要把绿的说黄的,黄的才会触发handlers):
- ---
- - name: changed_when
- hosts: webgroup
- tasks:
- - name: test service state
- service:
- name: sshd
- state: started
- enabled: yes
- register: v_result
- changed_when: "'running' in v_result.status.SubState "
- notify:
- - h_srv_restart
- # - name: debug
- # debug:
- # var: v_result
- handlers:
- - name: h_srv_restart
- service:
- name: httpd
- state: restarted
复制代码 反过来,非要把黄的说成绿的:
- - name: another tasks
- hosts: srvgroup
- tasks:
- - name: check date
- shell: "date"
- register: v_date
- changed_when: false
- - debug:
- var: v_date
复制代码
|
|