Обнаружение интерпретатора
Большинство модулей Ansible, выполняемых в среде POSIX, требуют интерпретатор Python на целевом хосте. Если не настроено иначе, Ansible будет пытаться обнаружить подходящий интерпретатор Python на каждом целевом хосте в первый раз при выполнении модуля Python для этого хоста.
Для управления поведением обнаружения:
- для отдельных хостов и групп используйте переменную инвентаризации
ansible_python_interpreter - глобально используйте ключ
interpreter_pythonв разделе[defaults]разделаansible.cfg
Используйте одно из следующих значений:
- auto_legacy :
-
Обнаруживает целевую операционную систему, дистрибутив и версию, затем обращается к таблице, в которой указаны правильный интерпретатор Python и путь для каждой платформы/дистрибутива/версии. Если запись найдена, и
/usr/bin/pythonотсутствует, использует обнаруженный интерпретатор (и путь). Если запись найдена, и/usr/bin/pythonприсутствует, использует/usr/bin/pythonи выводит предупреждение. Это исключение обеспечивает временную совместимость с предыдущими версиями Ansible, которые всегда по умолчанию использовали/usr/bin/python, поэтому если вы установили Python и другие зависимости в/usr/bin/pythonна некоторых хостах, Ansible найдет и использует их с этой настройкой. Если запись не найдена или указанный Python отсутствует на целевом хосте, ищет список распространенных путей интерпретатора Python и использует первый найденный; также выводит предупреждение о том, что будущая установка другого интерпретатора Python может изменить выбранный. -
auto(default in 2.12) -
Обнаруживает целевую операционную систему, дистрибутив и версию, затем обращается к таблице, в которой указаны правильный интерпретатор Python и путь для каждой платформы/дистрибутива/версии. Если запись найдена, использует обнаруженный интерпретатор. Если запись не найдена или указанный Python отсутствует на целевом хосте, ищет список распространенных путей интерпретатора Python и использует первый найденный; также выводит предупреждение о том, что будущая установка другого интерпретатора Python может изменить выбранный.
- auto_legacy_silent
-
То же, что и
auto_legacy, но не выводит предупреждения. - auto_silent
-
То же, что и
auto, но не выводит предупреждения.
Вы по-прежнему можете установить ansible_python_interpreter на конкретный путь на любом уровне переменных (например, в host_vars, в файлах vars, в playbooks и так далее). Установка конкретного пути полностью отключает автоматическое обнаружение интерпретатора; Ansible всегда использует указанный путь.
© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/reference_appendices/interpreter_discovery.html