在 ansible 清单中共享相同的主机变量

Sharing the same host var in ansible inventory

我正在寻找构建清单以共享相同变量的正确方法。

这是我的库存

{
    "groupA": {
        "hosts": [
            "192.168.1.1"
        ]
    },
    "groupB": {
        "hosts": [
            "192.168.1.2"
        ]
    },
    "vars": {
        "ansible_ssh_user": "admin",
        "ansible_ssh_private_key_file": "/admin.pem",
        "ansible_become": "yes",
        "ansible_become_method": "sudo"
    }
}

我希望 groupAgroupB 都使用声明的相同变量。

此外,我如何在剧本中指定 运行 groupAgroupB。下面这个好像不行

hosts: groupA, groupB

[UPDATE] 下面是得到 Konstantin Suvorov 支持后的正确构造。

{
    "groupA": {
        "hosts": [
            "192.168.1.1"
        ]
    },
    "groupB":{
        "hosts":[
            "192.168.1.2"
        ]
    },
    "root":{
        "children":[
            "groupA",
            "groupB"
        ],
        "vars": {
            "ansible_ssh_user": "admin"
        }
    }
}

将您的变量放入某个虚拟组中,该虚拟组是两个组的父组:

  "root": {
    "children": ["groupA", "groupB"],
    "vars": {
        "ansible_ssh_user": "admin"
    }
  },

正确的模式是 hosts: groupA:groupBhosts: group[AB]