我想要的是设置variables的优先级。 我从库存文件中传递variables,如果在库存文件中没有定义variables,那么它应该要求用户提示。 我正在尝试使用vars_prompt,但是当我运行的剧本,它直接给我提示和要求的价值,它不检查库存文件。 所以,我想先检查库存文件,如果variables没有在那里定义,它应该提示我在控制台上的值。 如果ansible不支持这个,那么我们可以使用shell或者命令模块来做到这一点。 任何帮助将不胜感激
以下是我的剧本。 和库存文件我正在使用完全版本1.6库存文件
[test] XXXX cr="12"
剧本
name: – >将常用configuration应用到{{target}}节点主机:“{{target}}”gather_facts:True
用户:root
pre_tasks:
名称: – >是否定义了?
失败:msg =“请确保variables'cr'在库存主机文件”
当:(cr没有定义)
注册:cr_value
vars_prompt:
名字:cr
提示:“请提及cr id”
私人:不
何时:cr_value |失败
名称:打印cr的值
debug:msg =“{{cr}}”
Ansible并不支持这一点, 从创始人Michael DeHaan的声音来看 :
vars_prompt总是提示inputvariables。
我build议设置一个默认的angular色,或者在group_vars / all中设置一个好的默认值,并且你可以用“-e”覆盖CLI。
作为一种解决方法,您可以为您的variables提示设置default ,如果是这种情况,请覆盖它。
vars_prompt: - name: cr prompt: "Please mention the cr id" private: no default: 12