Мой скрипт Python динамически запрашивает и генерирует файл JSON следующим образом:
{
"all": {
"hosts": [
"192.158.1.1"
],
"vars": {
"ansible_become_method": "sudo",
"ansible_become": "yes"
}
}
}
Но каким-то образом, когда я выполняю команду ниже
ansible -i script.py -m ping
, он выдает следующие предупреждающие сообщения
- [ПРЕДУПРЕЖДЕНИЕ] Невозможно проанализировать /etc/ansible/script.py в качестве источника инвентаризации
- [ПРЕДУПРЕЖДЕНИЕ] Инвентаризация не была проанализирована, доступен только неявный localhost.
- [ПРЕДУПРЕЖДЕНИЕ], если список хостов пуст, доступен только локальный хост.Обратите внимание, что неявный localhost не соответствует 'all'
Я не знаю, что я пропустил или ошибался, поскольку я новичок в динамическом инвентаре с Ansible.
КогдаЯ запускаю ansible-inventory -i script.py --list
Я получил следующий ответ
{
"_meta": {
"hostvars": {}
},
"all": {
"children": [
"ungrouped"
]
},
"ungrouped": {}
}
Моя версия Ansible 2.7.7
Плагин инвентаризации - скрипт
enable_plugins = script
[Обновлено] Запуск -v по предложению Стива дает мне немного больше
[WARNING]: * Failed to parse /etc/ansible/newhost.py with script plugin: failed to parse executable inventory script results from /etc/ansible/script.py: Syntax
Error while loading YAML. mapping values are not allowed in this context The error appears to have been in '<string>': line 3, column 8, but may be elsewhere in the
file depending on the exact syntax problem.
File "/usr/lib/python2.7/site-packages/ansible/plugins/inventory/script.py", line 125, in parse
raise AnsibleError("failed to parse executable inventory script results from {0}: {1}\n{2}".format(path, to_native(e), err))