Ansible,通过标签调用特定角色任务不起作用,所有任务都在 运行
Ansible, call specific role tasks via tags isn't working, all tasks are being ran
我正在使用 Ansible 2.3.2.0,并且正在调用一个 运行 正在执行 4 个不同任务的角色。
当我通过剧本调用角色并指定特定标签时,整个角色和所有任务都在运行。我看到这是 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任务也在 运行.
任务都有效,我只是不知道如何限制正在执行的任务运行。有没有人对如何让它工作有任何建议(能够通过标签指定任务)?
条件包含应该不被定义为静态使用static: no
。
编辑
根据您的评论,假设您误解了剧本中的 tags
语句。这不是包含具有定义标签的角色,而是包含基于命令行给出的标签的角色。
哪些标签在你的游戏中处于活动状态仅由命令行定义(据我所知,我也在学习ansible)。
如果您想在剧本中为角色定义条件,您应该使用 variables/facts。
使用 ansible-playbook --tags ami,launch_config,asg
调用您的剧本以跳过清理过程。在剧本中定义标签时,当 ami_lc_cleanup
被定义为命令行上的标签而没有其他三个标签中的任何一个时,您会阻止执行角色。
我正在使用 Ansible 2.3.2.0,并且正在调用一个 运行 正在执行 4 个不同任务的角色。
当我通过剧本调用角色并指定特定标签时,整个角色和所有任务都在运行。我看到这是 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任务也在 运行.
任务都有效,我只是不知道如何限制正在执行的任务运行。有没有人对如何让它工作有任何建议(能够通过标签指定任务)?
条件包含应该不被定义为静态使用static: no
。
编辑
根据您的评论,假设您误解了剧本中的 tags
语句。这不是包含具有定义标签的角色,而是包含基于命令行给出的标签的角色。
哪些标签在你的游戏中处于活动状态仅由命令行定义(据我所知,我也在学习ansible)。
如果您想在剧本中为角色定义条件,您应该使用 variables/facts。
使用 ansible-playbook --tags ami,launch_config,asg
调用您的剧本以跳过清理过程。在剧本中定义标签时,当 ami_lc_cleanup
被定义为命令行上的标签而没有其他三个标签中的任何一个时,您会阻止执行角色。