我要求用户输入,基本上我想检查变量的值(由vars_prompt向用户询问)是否为空。
当变量为""时播放剧本。这不是一个问题,很容易做到。 然而,我很恼火,这一步是在很多机器上运行的,而我只是想检查一次(我不认为需要去远程机器),当它不是设置我只是希望剧本停止,因为我们知道它在第一次出现之后仍然是第100次以后是空的。
这样做有干净的方法吗?我一直在试验断言模块,但没有运气。
提前致谢!
答案 0 :(得分:2)
run_once
是你的朋友:
---
- hosts: mygroup
gather_facts: no
vars_prompt:
- name: myvar
prompt: enter myvar
default: bad_value
tasks:
# assert before gathering facts
- assert:
that: myvar != 'bad_value'
run_once: yes
# gather facts manually with setup
- setup:
- debug:
msg: do the job
此外,您可以禁用自动事实收集,以避免在断言完成之前连接到所有主机,并使用setup
手动收集它们。