Я новичок в ansible, и у меня есть сценарий, в котором мой ansible скрипт должен выполняться полностью, даже если произойдет какой-то условный сбой. В конце выполнения я хочу проверить, сколько условий не удалось выполнить как не удалось count.
PLAY RECAP **********************************************************************************************************************************************************************************************
10.0.*.*** : ok=0 changed= unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
Ниже показано, что я пробовал:
Я запускаю ansible play, который вызывает роль.
- name: Checking access
hosts: cluster
tasks:
- name: role call
include_role:
name: url_access
Если условие не выполняется в playbook, оно должно продолжить выполнение, но в конце failed count должно показать количество сбоев.
main.yml роли выглядит следующим образом:
- name: Access to google.com
shell: >
curl -s -o /dev/null -w "%{http_code}" google.com
ignore_errors: yes
register: access1
- debug:
msg: "Access Failed to google.com"
when: access1.stdout!="200"
- debug:
msg: "Access Successful to google.com"
when: access1.stdout=="200"
- name: Access to redhat.com
shell: >
curl -s -o /dev/null -w "%{http_code}" redhat.com
ignore_errors: yes
register: access2
- debug:
msg: "Access Failed to redhat.com"
when: access2.stdout!="301"
- debug:
msg: "Access Successful to redhat.com"
when: access2.stdout=="301"
Это результат, который я получаю
TASK [url_access : Access to google.com] ************************************************************************************************************************************************
changed: [10.0.*.***]
changed: [10.0.*.***]
TASK [url_access : debug] *******************************************************************************************************************************************************************************
skipping: [10.0.*.***]
skipping: [10.0.*.***]
TASK [url_access : debug] *******************************************************************************************************************************************************************************
ok: [10.0.*.***] => {
"msg": "Access Successful to google.com"
}
ok: [10.0.*.***] => {
"msg": "Access Successful to google.com"
}
TASK [url_access : Access to redhat.com] ************************************************************************************************************************************************
changed: [10.0.*.***]
changed: [10.0.*.***]
TASK [url_access : debug] *******************************************************************************************************************************************************************************
ok: [10.0.*.***] => {
"msg": "Access Failed to redhat.com"
}
ok: [10.0.*.***] => {
"msg": "Access Failed to redhat.com"
}
TASK [url_access : debug] *******************************************************************************************************************************************************************************
skipping: [10.0.*.***]
skipping: [10.0.*.***]
PLAY RECAP **********************************************************************************************************************************************************************************************
10.0.*.*** : ok=2 changed=2 unreachable=0 failed=0 skipped=2 rescued=0 ignored=0
10.0.*.*** : ok=2 changed=2 unreachable=0 failed=0 skipped=2 rescued=0 ignored=0
Я использовал ignore_errors: yes, поэтому мой playbook выполняется полностью, но, в конце концов, приближается пропущено счетчик, в то время как я хотел иметь сбой счет.
Есть ли способ, чтобы мой скрипт выполнялся полностью, пропуская сбои, но в итоге получаю сбой счет вместо пропущено ?