Я пытаюсь создать динамический инвентарь для своей установки. везде я вижу примеры IP-адресов и имени хоста в виде списка. но когда я предоставляю значение хостов в виде списка, это ошибка и говорит, что это должно быть dict.
Ниже инвентаря я предоставляю playbook,
{
"all": {
"hosts": ["192.168.1.2", "192.168.1.3", "192.168.1.4"],
"vars": {
"ansible_ssh_user": "root"
},
"_meta": {
"hostvars": {}
}
},
"webserver": {
"hosts": ["192.168.1.3", "192.168.1.4"],
"vars": {
"ansible_ssh_user": "root"
},
"_meta": {
"hostvars": {}
}
},
"dbserver": {
"hosts": ["192.168.1.2"],
"vars": {
"ansible_ssh_user": "root"
},
"_meta": {
"hostvars": {}
}
}
}
выдает это предупреждение и ошибку
[WARNING]: * Failed to parse /Users/rahulbhatu/playbooks/waf-
playbooks/inventory with yaml plugin: Invalid "hosts" entry for "all" group,
requires a dictionary, found "<type 'list'>" instead.
[WARNING]: * Failed to parse /Users/rahulbhatu/playbooks/waf-
playbooks/inventory with ini plugin: Invalid host pattern 'all:' supplied,
ending in ':' is not allowed, this character is reserved to provide a port.
[WARNING]: Unable to parse /Users/rahulbhatu/playbooks/waf-playbooks/inventory
as an inventory source
[WARNING]: No inventory was parsed, only implicit localhost is available```
fatal: [{]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: ssh: Could not resolve hostname {: nodename nor servname provided, or not known", "unreachable": true}
Однако, когда я передаю его таким образом как dict и значение как null, он работает, может ли кто-нибудь помочь мне в том, что мне не хватает.
"all": {
"hosts": {
"192.168.1.2": null,
"192.168.1.3" : null,
"192.168.1.4" : null
},
"vars": {
"ansible_ssh_user": "root"
},
"_meta": {
"hostvars": {}
}
},
"webserver": {
"hosts": {
"192.168.1.3": null,
"192.168.1.4": null
},
"vars": {
"ansible_ssh_user": "root"
},
"_meta": {
"hostvars": {}
}
},
"dbserver": {
"hosts": {
"192.168.1.2": null
},
"vars": {
"ansible_ssh_user": "root"
},
"_meta": {
"hostvars": {}
}
}
}