Обнаружение интерпретатора
Большинство модулей 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.9/reference_appendices/interpreter_discovery.html