Назад | Перейти на главную страницу

Проверка версии Python через доступные результаты на ошибку

Привет, я проверяю версию 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