我有一组Ansible
剧本,主要的yml文件是这样的
- hosts: all
roles:
- common
- install_nginx
我想在触发剧本时添加确认消息。我尝试了这个但没有用
- hosts: all
vars_prompt:
- name: CONFIRM
prompt: Just to confirm you will install stuff
tasks:
- fail: no deployment this time
when: CONFIRM != 'yes'
roles:
- common
- install_nginx
在这种情况下,如何在不修改每个
vars_prompt
的情况下使用role
? 最佳答案
如果查看使用vars_prompt
运行剧本的输出,您会看到fail
任务在其他角色之后运行。 Ansible docs for playbooks and roles中也提到了这一点:
如果剧中仍有“任务”部分,则执行这些任务
应用角色后。
正如上述文档还提到的,如果您想强制任务在任何角色之前运行,则可以使用pre_tasks
。
因此,要让您的确认样式提示您可以执行以下操作:
- hosts: all
vars_prompt:
- name: CONFIRM
prompt: Just to confirm you will install stuff
pre_tasks:
- fail: no deployment this time
when: CONFIRM != 'yes'
roles:
- common
- install_nginx
关于ansible - 角色的Ansible vars_prompt,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34504663/