2016-07-07 22 views
2

我有一个这样的剧本,每个客户端有一个角色。是否可以将其他标签应用于依赖关系角色?

- 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角色被执行。 有没有解决方案来避免这种情况?

我知道一个可以“导出”对剧本的依赖关系,它工作的很好,但这不是一个好的解决方案,我认为。

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

回答

4

标签不互相覆盖,但累积性。您的依赖项现在有标签client1system

但这已经足够了。告诉Ansible在致电你的剧本时跳过系统标签:

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

Thanks @udondan – elhostis

相关问题