Ansible 剧本失败条件
我有一个playbook,用于检查集群中可用的磁盘使用情况:Ansible 剧本失败条件,ansible,Ansible,我有一个playbook,用于检查集群中可用的磁盘使用情况: ..... #Test - set_fact: diskFree=0 - set_fact: diskFree="{{(100.0 * (item.size_available / item.size_total)) | round(2, 'common')}}" when: - skipDevice not in item.device - sizeThre
.....
#Test
- set_fact: diskFree=0
- set_fact:
diskFree="{{(100.0 * (item.size_available / item.size_total)) | round(2, 'common')}}"
when:
- skipDevice not in item.device
- sizeThreshold is undefined or (sizeThreshold is defined and ((100.0 * (item.size_available / item.size_total)) | round(2, 'common')) < sizeThreshold|float)
loop: "{{ ansible_mounts }}"
#Test Display
- debug:
msg: "{{ ansible_hostname }}: {{ diskFree }}"
when: diskFree != 0
。。。。。
#试验
-set_事实:diskFree=0
-设定事实:
diskFree=“{(100.0*(item.size_可用/item.size_总计))|四舍五入(2,'common')}”
什么时候:
-skipDevice不在item.device中
-sizeThreshold未定义或(sizeThreshold已定义且((100.0*(item.size_可用/item.size_总计))|四舍五入(2,“通用”))
问题是,我希望playbook在磁盘使用率低于20%时失败,但我不知道该怎么做,而且我不能在这里使用failed\u
提前感谢。因此,请添加一个fail
任务:
- fail:
msg: "Free disk space below 20% ({{ diskFree }}%)."
when: diskFree|float < 20.0
-失败:
msg:“可用磁盘空间低于20%({{diskFree}}%)。”
时间:diskFree | float<20.0
“代码>代码>请将目前的输出显示为该游戏书。代码>请将目前的输出显示为该游戏书。代码>请将目前的输出显示为该游戏书。代码>请将目前的输出显示为该游戏书。代码>请将目前的输出显示为该游戏书。<代码>代码>任务>任务>任务[调试]************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************=>{“msg”:“host2:67.37}确定:[host3]=>{“msg”:“host3:59.18”
我已经这样做了,但是我得到了这个错误:条件检查“diskFree<20”失败。错误是:({%if diskFree<20%}True{%else%}False{%endif%})上发生了意外的模板类型错误:'对。需要使用| float
进行施放。回答中已修复。现在可以像sharm一样工作,感谢“float”提示。