Ansible标记-未调用任务

Ansible标记-未调用任务,ansible,Ansible,这很奇怪 有两个任务带有'buffer'标记,还有两个任务带有'hmu'标记。如果我使用'buffer'标记运行下面的playbook,它将工作并运行两个使用'buffer'标记的任务。但是,如果我运行带有标记“hmu”的playbook,它将不会运行带有标记“hmu”的第一个任务,但是,它将运行带有标记“hmu”的最后一个任务。这一结果如何符合逻辑 --- - hosts: LAB connection: local gather_facts: true serial: 1 o

这很奇怪

有两个任务带有'buffer'标记,还有两个任务带有'hmu'标记。如果我使用'buffer'标记运行下面的playbook,它将工作并运行两个使用'buffer'标记的任务。但是,如果我运行带有标记“hmu”的playbook,它将不会运行带有标记“hmu”的第一个任务,但是,它将运行带有标记“hmu”的最后一个任务。这一结果如何符合逻辑

---
- hosts: LAB
  connection: local
  gather_facts: true
  serial: 1
  order: sorted

  tasks:
    - import_role:
        name: buffer_stats
      tags:
        - buffer
    - import_role:
        name: hmu_stats
      tags:
        - hmu

- hosts: localhost

  tasks:
    - import_role:
        name: buffer_stats
        tasks_from: notifications.yml
      tags:
        - buffer
    - import_role:
        name: hmu_stats
        tasks_from: notifications.yml
      tags:
        - hmu
角色

shell>cat角色/buffer_stats/tasks/main.yml
-调试:
msg:buffer_stats main.yml
shell>cat角色/buffer_stats/tasks/notifications.yml
-调试:
msg:buffer_stats notifications.yml
shell>cat角色/hmu_stats/tasks/main.yml
-调试:
msg:hmu_stats main.yml
shell>cat角色/hmu统计信息/tasks/notifications.yml
-调试:
msg:hmu_stats notifications.yml
还有剧本

shell>cat pb.yml
-主机:本地主机
任务:
-导入用户角色:
名称:buffer_stats
标签:缓冲区
-导入用户角色:
姓名:hmu_统计
标签:hmu
-主机:本地主机
任务:
-导入用户角色:
名称:buffer_stats
任务来自:notifications.yml
标签:缓冲区
-导入用户角色:
姓名:hmu_统计
任务来自:notifications.yml
标签:hmu
如期工作

shell>ansible playbook pb.yml-t缓冲区
播放[本地主机]****
任务[缓冲区统计:调试]****
确定:[本地主机]=>
msg:buffer_stats main.yml
播放[本地主机]****
任务[缓冲区统计:调试]****
确定:[本地主机]=>
msg:buffer_stats notifications.yml
shell>ansible playbook pb.yml-t hmu
播放[本地主机]****
任务[hmu统计:调试]****
确定:[本地主机]=>
msg:hmu_stats main.yml
播放[本地主机]****
任务[hmu统计:调试]****
确定:[本地主机]=>
msg:hmu_stats notifications.yml

奇怪,我同意,您的语法似乎很好。查找/调试问题的一些想法:您是否尝试更改任务顺序?您是否尝试在单独的剧本中只运行此任务?我改变了顺序,可以预见的是相反的情况:指定“hmu”标记时会调用“两个”hmu标记任务,但现在指定“缓冲区”标记时,它将只运行最后一个“缓冲区”标记任务,而不会运行第一个。您的幕后操作是什么?这可能是因为您尝试运行任务的主机不在此资源清册中?它们在资源清册中,我在运行时将主机指定为变量(个人首选项)。我知道这会起作用,因为如果我删除标记,每个任务(全部四个)都会在主机上正确调用。好的,对不起,我现在没有其他想法,但我会关注你的帖子,因为我很想知道这会是什么问题。嗨,我终于找到问题了。是的,你强调的是正确的,并且会起作用,但它不会解决我的问题。核心问题是,我的一个任务包含一个“meta:end_play”条件任务,我认为这是一个bug。我确信这是一个bug,因为'meta:end_play'条件在buffer_stats角色中,这导致hmu_stats角色在使用'hmu'标记调用它时失败。因此,当我从缓冲区统计角色中删除“meta:end_play”条件时,hmu统计角色开始工作。这是非常不寻常的行为,完全不直观。如果你认为你发现了一个bug帖子。