В логах Ansible появляются ошибки, вида:
TASK [Gathering Facts] *********************************************************
[WARNING]: Unhandled error in Python interpreter discovery for host
softwlc_main: Expecting value: line 1 column 1 (char 0)
fatal: [softwlc_main]: FAILED! => {
"ansible_facts": {},
"changed": false,
"failed_modules": {
"ansible.legacy.setup": {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python3"
},
"failed": true,
"module_stderr": "Shared connection to 192.168.1.1 closed.\r\n",
"module_stdout": "\r\nTraceback (most recent call last):\r\n File \"/home/eltex/.ansible/tmp/ansible-tmp-1762944284.598245-28-42315320222632/AnsiballZ_setup.py\", line 107, in <module>\r\n _ansiballz_main()\r\n File \"/home/eltex/.ansible/tmp/ansible-tmp-1762944284.598245-28-42315320222632/AnsiballZ_setup.py\", line 99, in _ansiballz_main\r\n invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\r\n File \"/home/eltex/.ansible/tmp/ansible-tmp-1762944284.598245-28-42315320222632/AnsiballZ_setup.py\", line 44, in invoke_module\r\n from ansible.module_utils import basic\r\n File \"<frozen importlib._bootstrap>\", line 971, in _find_and_load\r\n File \"<frozen importlib._bootstrap>\", line 951, in _find_and_load_unlocked\r\n File \"<frozen importlib._bootstrap>\", line 894, in _find_spec\r\n File \"<frozen importlib._bootstrap_external>\", line 1157, in find_spec\r\n File \"<frozen importlib._bootstrap_external>\", line 1131, in _get_spec\r\n File \"<frozen importlib._bootstrap_external>\", line 1112, in _legacy_get_spec\r\n File \"<frozen importlib._bootstrap>\", line 441, in spec_from_loader\r\n File \"<frozen importlib._bootstrap_external>\", line 544, in spec_from_file_location\r\n File \"/tmp/ansible_ansible.legacy.setup_payload_imb5kbjm/ansible_ansible.legacy.setup_payload.zip/ansible/module_utils/basic.py\", line 5\r\nSyntaxError: future feature annotations is not defined\r\n",
"msg": "MODULE FAILURE\nSee stdout/stderr for the exact error",
"rc": 1,
"warnings": [
"Platform linux on host softwlc_main is using the discovered Python interpreter at /usr/bin/python3, but future installation of another Python interpreter could change the meaning of that path. See https://docs.ansible.com/ansible-core/2.17/reference_appendices/interpreter_discovery.html for more information."
]
}
}
}
MSG:
The following modules failed to execute: ansible.legacy.setup |
Ошибка говорит о том, что на целевом хосте (чей адрес был указан при запуске) отсутствует/присутствует неподдерживаемая версия Python.
Минимальная версия Python, необходимая для работы плейбуков на текущий момент - 3.7
Проверить версию python можно командой python3 --version
В случае возникновения подобной ошибки есть 2 варианта решения:
Об этом можно найти в открытом доступе в интернет ресурсах, используя команды пакетного менеджера Linux либо через сборку образа Python локально.
Часто данная ошибка связана с попыткой выполнить какие либо действия на не поддерживаемой ОС (к примеру Ubuntu 18.04 - подробнее о поддержанных ОС) в рамках конкретных задач, например миграции базы данных при обновлении из Deb в Docker. В таких случаях можно выполнить действия в ручную. Так для приведённого примера существует документация о создании бэкапа БД в ручную и последующего переноса её на хост с Ansible.