Ansible 2.8.1
在我的剧本tasks/
目录中:
main.yml
dev.yml
在main.yml
我有一个这样的块:
- include_tasks: dev.yml
when: ec2_tag_env == 'dev'
它工作正常
但是,如果我尝试使用标签调用 dev.yml 中的特定任务。它不会在运行期间限定任务
例如,这个标记的任务在dev.yml
:
- name: Pull the latest image
docker_image:
name: "{{ dev_image }}"
source: pull
tags:
- container
当我使用它运行剧本时-t container
,它将不符合条件,因为该include_tasks
步骤没有该标签。
添加标签include_tasks
当然可以解决问题,但我需要跟踪标签,因为它们被添加到子任务并在这里添加它们:
- include_tasks: dev.yml
when: ec2_tag_env == 'dev'
tags:
- container
问题
是否有可能让 Ansible 只“知道”
include_tasks
块内有哪些任务并提取适用的标签?实现这一目标的最佳实践是什么?
我宁愿不必做的事情:
- 把一切
main.yml
。我在这本剧本中有很多任务,我真的很想把它们整理成文件。 - 手动标记我的所有
include_tasks
块及其所有子标签。管理听起来像是一场噩梦。