The below playbook to check and compare input package name and version with our system when condition working fine on == but not works on != I don't why, And I'm stuck on this for the last couple of days
---
- hosts: "{{ cluster_name }}"
user: sv_operator
become: False
gather_facts: yes
vars:
ansible_python_interpreter: /d2/local/bin/python
vars_prompt:
- name: cluster_name
prompt: "Enter Cluster Name (Custer1/Cluster2/Cluster3)"
private: no
tasks:
- pause:
prompt: "Enter the name of Package and version"
register: prompt
no_log: yes
run_once: yes
- set_fact:
package_fact : "{{ prompt.user_input }}"
- shell:
cmd: "show system version | tr -s ' ' | grep '{{ package_fact }}' "
register: svcli_output
- name: Package Version
debug:
msg: "{{ svcli_output.stdout }}"
- debug:
msg: "PTS package {{ package_fact | upper}} match with existed one on the system"
ignore_errors: yes
when: svcli_output.stdout == package_fact
- fail:
msg: "PTS package {{ package_fact | upper}} NOT match with existed one on the system"
ignore_errors: yes
when: svcli_output.stdout != package_fact
Output when condition match (==)
TASK [debug] *******************************************************************************************************************************************************
ok: [host-offline-01] => {}
MSG:
PTS package PROTOCOLS 20.12.01 match with existed one on the system
TASK [debug] *******************************************************************************************************************************************************
skipping: [host-offline-01]
PLAY RECAP *********************************************************************************************************************************************************
host-offline-01 : ok=6 changed=1 unreachable=0 failed=0 skipped=1 rescued=0 ignored=0
Output when condition did not match (!=)
TASK [shell] *******************************************************************************************************************************************************
fatal: [host-offline-01]: FAILED! => {
"changed": true,
"cmd": "show system version | tr -s ' ' | grep 'Protocols 20.12.02' ",
"delta": "0:00:00.324347",
"end": "2021-01-24 18:58:44.685277",
"rc": 1,
"start": "2021-01-24 18:58:44.360930"
}
MSG:
non-zero return code
PLAY RECAP *********************************************************************************************************************************************************
host-offline-01 : ok=3 changed=0 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0
question from:
https://stackoverflow.com/questions/65874976/ansible-fail-when-condition-not-equal-not-work-on-my-play 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…