我使用Ansible 2.3.2.0,并且正在调用运行4个不同任务的角色。Ansible,通过标记调用特定角色任务不起作用,所有任务正在运行
当我通过剧本呼叫角色并指定特定标签时,整个角色和所有任务都正在运行。在ansible 2.0之后,我看到这是一个已知问题,并且建议的解决方法是在include语句下添加静态指令。我尝试过,但仍然运行了所有任务。 这里是在剧本的角色声明...
roles:
- {role: ansible-role-auto-deploy, tags: [ 'ami', 'launch_config', 'asg']}
这里是角色main.yml
---
- include: ami.yml
static: yes
tags:
- ami
- include: launch_config.yml
static: yes
tags:
- launch_config
- include: asg.yml
static: yes
tags:
- asg
- include: ami_lc_cleanup.yml
static: yes
tags:
- ami_lc_cleanup
当我跑这与上面的角色声明,我所期望的AMI, launch_config和asg任务运行,但此外ami_lc_cleanup任务也正在运行。
这些任务都有效,我只是不知道如何限制哪些任务正在运行。有没有人有任何建议如何让它工作(能够通过标签指定任务)?
这并没有多大帮助,你能否详细说明一下? – tman
您将包含的内容定义为'static:yes',但在使用'when''或''''标记''时使用条件时,它应该是'static:no'。 – clemens321
我试过切换到静态:没有,也没有区别。使用--list-tags和--list-tasks选项,我可以看到前3个任务正在使用TAGS运行:[ami,asg和launch_config],然后当它到达最后一个任务时,它正在运行即使它在通话剧本中没有标记。所以它必须继承角色的标记... – tman