Совместное использование одного и того же хоста var в ansible инвентаризации - PullRequest
0 голосов
/ 14 февраля 2019

Я ищу правильный способ создания инвентаря, чтобы разделить ту же вар.

Вот мой инвентарь

{
    "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 использовали один и тот же объявленный var.

Кроме того, как я могу указать в playbook запускать groupA и groupB .Кажется, что следующий не работает

hosts: groupA, groupB

[ ОБНОВЛЕНИЕ ] Ниже приведена правильная конструкция после получения поддержки от Константин Суворов .

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

1 Ответ

0 голосов
/ 14 февраля 2019

Поместите свои переменные в какую-нибудь фиктивную группу, которая является родительской для обеих групп:

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

Правильный шаблон hosts: groupA:groupB или hosts: group[AB]

...