Ansible 当服务器组不等于

Ansible when server group is not equal to

我正在尝试在 server_group 上重新启动 jboss 除了 cgfmgr,它失败了。有人可以帮我语法

任务:

  - name: restarted jboss
    service: name=jboss state=restarted enabled=yes
    when: inventory_hostname in groups["{{ server_group }}:!cfgmgr-{{ server_group }}"]

错误-

TASK: [restarted jboss] ******************************************************* fatal: [ansible] => error while evaluating conditional: inventory_hostname in groups["sit:!cfgmgr-sit"] FATAL: all hosts have already failed -- aborting

主机文件

[sit:children]
jboss-sit
cfgmgr-sit
webserver-sit

访问 groups' 元素时不能使用模式,只能使用组名。

尝试使用 group_names 魔法变量:

  - name: restarted jboss
    service: name=jboss state=restarted enabled=yes
    when: server_group in group_names and ('cfgmgr-'+server_group) not in group_names

此代码未经测试。