ansible:当不验证用户输入时失败
我正在尝试ansible playbook提示用户输入,如果条件不满足,它应该失败并退出 我的剧本如下ansible:当不验证用户输入时失败,ansible,Ansible,我正在尝试ansible playbook提示用户输入,如果条件不满足,它应该失败并退出 我的剧本如下 [ansible@localhost ~]$ cat dummy.yml --- - name: testing failed_when hosts: localhost gather_facts: no tasks: - pause: prompt: "\nPlease ente 1:\n" register: given
[ansible@localhost ~]$ cat dummy.yml
---
- name: testing failed_when
hosts: localhost
gather_facts: no
tasks:
- pause:
prompt: "\nPlease ente 1:\n"
register: given
failed_when: given.user_input != 1
- set_fact:
SER: "{{ given.user_input }}"
- fail:
msg: "unacceptable"
when: SER is undefined
当我执行这个时,它会失败,即使我输入为1
[ansible@localhost ~]$ ansible-playbook dummy.yml
PLAY [testing failed_when] *********************************************************************************************************************
TASK [pause] ***********************************************************************************************************************************
[pause]
Please ente 1:
:1
fatal: [localhost]: FAILED! => {"changed": false, "delta": 1, "echo": true, "failed_when_result": true, "rc": 0, "start": "2020-05-29 02:52:27.318633", "stderr": "", "stdout": "Paused for 0.02 minutes", "stop": "2020-05-29 02:52:28.556987", "user_input": "1"}
NO MORE HOSTS LEFT *****************************************************************************************************************************
PLAY RECAP *************************************************************************************************************************************
localhost : ok=0 changed=0 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0
[ansible@localhost ~]$
我试过使用“fail”,如下所示,它也不起作用
tasks:
- pause:
prompt: "\nPlease ente 1:\n"
register: given
- set_fact:
SER: "{{ given.user_input }}"
- fail:
msg: "unacceptable"
when: SER != 1
结果:
[ansible@localhost ~]$ ansible-playbook dummy.yml
PLAY [testing failed_when] *********************************************************************************************************************
TASK [pause] ***********************************************************************************************************************************
[pause]
Please ente 1:
:1
ok: [localhost]
TASK [set_fact] ********************************************************************************************************************************
ok: [localhost]
TASK [fail] ************************************************************************************************************************************
fatal: [localhost]: FAILED! => {"changed": false, "msg": "unacceptable"}
PLAY RECAP *************************************************************************************************************************************
localhost
在上述两种情况下,我都输入了“1”作为用户输入&它仍然失败。。不知道我犯了什么错误
请帮忙
提前感谢。默认情况下,条件
将变量扩展为字符串。将SER
与字符串进行比较
when:SER!="1"
或将SER
转换为整数
when:SER | int!=1.
默认情况下,
将变量扩展为字符串时的条件。将SER
与字符串进行比较
when:SER!="1"
或将SER
转换为整数
when:SER | int!=1.