Ansible 是否可以将其他标记应用于依赖项角色?

Ansible 是否可以将其他标记应用于依赖项角色?,ansible,role,Ansible,Role,我有一个这样的剧本,每个客户扮演一个角色 - hosts: hosting roles: - { role: client1, tags: ['client1'] } - { role: client2, tags: ['client2'] } 例如,在每个角色上,我都依赖于nginx /roles/client1/meta/main.yml dependencies: - nginx 我想不在不必要时启动nginx角色。因此,我将nginx标记添加到依赖项中 /ro

我有一个这样的剧本,每个客户扮演一个角色

- hosts: hosting
  roles:
    - { role: client1, tags: ['client1'] }
    - { role: client2, tags: ['client2'] }
例如,在每个角色上,我都依赖于nginx

/roles/client1/meta/main.yml
dependencies:
  - nginx
我想不在不必要时启动nginx角色。因此,我将nginx标记添加到依赖项中

/roles/client1/meta/main.yml
dependencies:
  - { role: nginx, tags: ['system'] }
但是当我启动带有标记client1的playbook时,nginx角色被执行。 有没有办法避免这种情况

我知道可以“导出”对playbook的依赖,这很好,但我认为这不是一个好的解决方案

- hosts: hosting
  roles:
    - { role: nginx, tags: ['system'] }
    - { role: client1, tags: ['client1'] }
    - { role: client2, tags: ['client2'] }

标记不会相互覆盖,而是累加的。您的依赖项现在有标签
client1
system

但这已经足够了。只需告诉Ansible在调用playbook时跳过系统标记:

ansible-playbook ... --tags client1 --skip-tags system