Ansible:在vars_prompt中输出变量

时间:2014-01-22 12:50:10

标签: ansible

是否可以在vars_prompt

的消息输出中包含现有变量的值

我希望做这样的事情:

- hosts: production
vars_prompt:
    confirm: "This playbook is configured to act on all $hosts hosts, please confirm"

... vars_prompt打印的问题应该是:

"This playbook is configured to act on all **production** hosts, please confirm"

2 个答案:

答案 0 :(得分:5)

这并没有完全回答这个问题,因为我试图使用当前稳定版本的Ansible显然无法实现,但我想描述一个帮助我解决用例的解决方法:

首先,我想从hosts消息中的剧本中输出vars_prompt的原因是为了确保该剧本永远不会在不适合的主机上运行。该剧本为VM设置了备份,虽然它的动作是幂等的,但我的部分虚拟机首先需要备份。所以我编写了剧本来自动在VM上安装备份客户端,并在中央备份服务器上配置新客户端。

我所做的是确保我只为预期的主机运行此剧本是为了使剧本本身的hosts参数成为变量,如下所示:

- hosts: '{{ host }}'

如果在命令行中没有指定主机,则playbook将立即失败。在命令行上指定这样一个变量的方法是:

ansible-playbook --extra-vars="host=HOSTNAME" playbook.yml

答案 1 :(得分:2)

这是不可能的,至少就像ansible 1.4.4版一样。 vars_prompt确切地显示了引号内的内容,因此任何$,{{}}等都与输入的完全一致。

可能值得通过在https://github.com/ansible/ansible/issues

发帖来提交功能请求