我编写了以下剧本,它工作正常,但是当我对角色做同样的事情时,当失败模块的情况发生困惑时。无论定义的值如何,当我在失败模块中给出 > 时,它会跳过,而当给出 < 时,它会失败。 请不要介意语法和“-”,它在这里很困惑。
- hosts: localhost
vars:
vmcpu_list:
- vmcpu: 2
- vmcpu: 1
- vmcpu: 1
vcpu_value: 0
tasks:
- set_fact:
vcpu_value: "{{ vcpu_value }} + vmcpu_list[{{item}}].vmcpu"
with_sequence: start=0 end="{{ vmcpu_list | length -1 }}"
- debug:
var: "{{ vcpu_value }}"
- fail:
msg: " provided vcpu are more"
when: vcpu_value|int > 5
注意:抱歉,之前我在上面给出了 vcpu_value|int > 5,但它应该是 vcpu_value|int > 3
最佳答案
- fail:
msg: " provided vcpu are more"
when: vcpu_value|int > 5
您已设置 vcpu_value: 0 条件评估 vcpu_value < 5 与您的条件不符 ==> ansible 将跳过该任务
- fail:
msg: " provided vcpu are more"
when: vcpu_value|int < 5
您已设置 vcpu_value: 0 条件评估 vcpu_value < 5 OK ==> ansible 将执行任务
没有问题,你的代码工作正常,没有奇怪的行为^^
关于linux - 当条件处于ansible状态时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55278861/