Привет, я проверяю версию python с помощью недоступной задачи. Однако я получаю выходное значение в переменной stderr вместо stdout.
Вот моя задача по проверке версии pthon.
---
- shell: "python --version"
register: python_installed
Вот результат выполнения задачи:
changed: [172.17.0.3] => {
"changed": true,
"cmd": "python --version",
"delta": "0:00:00.259578",
"end": "2017-06-30 03:43:44.341772",
"invocation": {
"module_args": {
"_raw_params": "python --version",
"_uses_shell": true,
"chdir": null,
"creates": null,
"executable": null,
"removes": null,
"warn": true
}
},
"rc": 0,
"start": "2017-06-30 03:43:44.082194",
"stderr": "Python 2.6.6",
"stderr_lines": [
"Python 2.6.6"
],
"stdout": "",
"stdout_lines": []
}
Я попытался добавить путь Python в аргумент исполняемого файла, но это тоже не удалось. Я также пробовал использовать командный модуль, встроенный в модуль оболочки. Все еще не удается
Просто примечание:
Версия Python уже собрана setup_module и может быть доступен ansible_python_version
ansible -m setup localhost | grep ansible_python_version "ansible_python_version": "3.6.1",
Я не вижу здесь ошибки. Команда выполнена успешно (rc=0
).
Python -v
переключатель должен записывать номер версии в stderr. Из источник:
fprintf(stderr, "Python %s\n", PY_VERSION);
Если (по какой-то конкретной причине) вам нужно вместо этого увидеть его в stdout, используйте перенаправление дескриптора:
- shell: python --version 2>&1