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