Насколько я понимаю, использование модулей ansible-inventory-plugins вместо динамических-inventory-provisioners - это новый способ обработки динамических хостов, например, облачных провайдеров и так далее.
Итак, сначала я установил учетные данные Azure в своей среде:
± env | grep AZ
AZURE_SECRET=asdf
AZURE_TENANT=asdf
AZURE_SUBSCRIPTION_ID=asdf
AZURE_CLIENT_ID=asdf
Затем я написал ansible.cfg со следующим содержимым:
± cat ansible.cfg
[inventory]
enable_plugins = azure_rm
Наконец, я написал файл yaml с минимальными настройками, как показано в доступном инвентаре страница плагина:
± cat foo.azure_rm.yaml
---
plugin: azure_rm
Когда я запускаю бинарный файл ansible-inventory в этом файле, я получаю:
± ansible-inventory -i foo.azure_rm.yaml --list
[WARNING]: * Failed to parse /path/to/foo.azure_rm.yaml with azure_rm plugin: Unicode-objects must be encoded before hashing
[WARNING]: Unable to parse /path/to/foo.azure_rm.yaml as an inventory source
[WARNING]: No inventory was parsed, only implicit localhost is available
{
"_meta": {
"hostvars": {}
},
"all": {
"children": [
"ungrouped"
]
},
"ungrouped": {}
}
Подводя итог: главной проблемой, похоже, является строка:
[WARNING]: * Failed to parse /path/to/foo.azure_rm.yaml with azure_rm plugin: Unicode-objects must be encoded before hashing
Кто-нибудь поможет?