Обнаружение интерпретатора
Большинство модулей 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, в playbooks и т. д.). Установка конкретного пути полностью отключает автоматическое обнаружение интерпретатора; 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.8/reference_appendices/interpreter_discovery.html