Ansible:在剧本中,通过标记筛选angular色而不通过命令行

在Ansible 1.7中,我可以使用命令行中的–tags来仅运行该剧本任务的一个子集。

但是我想要将自己的作品烘焙到只有与标签匹配的任务中才能运行一组angular色。 也就是说,我不想通过命令行来传递它,因为每次都是一样的。

起初我以为是这个命令,但是这却做了相反的事情:用这些标签标记任务,而不是根据这个标签过滤出来。

roles: - { role: webserver, port: 5000, tags: [ 'web', 'foo' ] } 

我可以想象实现这个使用条件,但标签将是一个更加优雅的方式来实现这一点。

您只有当前版本的Ansible有以下选项:

  1. 在命令行上指定标签
  2. 使用variables而不是标签来有条件地运行任务
  3. 将您的Web服务器angular色分解为多个angular色,并为常见任务使用angular色依赖关系

这个function请求已经出现在邮件列表中几次了 ,我还没有看到开发团队的任何迹象表明它将被添加为新function。

条件的使用可以满足您的需求。

你可以在我的答案中看到更多的信息。