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

时间:2019-02-14 18:55:36

标签: ansible 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"
    }
}

我希望 groupA groupB 使用声明的同一变量。

此外,如何在剧本中指定同时运行 groupA groupB 。以下似乎无效

hosts: groupA, groupB

[更新]以下是从Konstantin Suvorov获得支持后的正确构造。

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

1 个答案:

答案 0 :(得分:0)

将您的var分为两个组的父级虚拟组:

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

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