解释器发现
大多数在 POSIX 环境下执行的 Ansible 模块都需要目标主机上的 Python 解释器。除非另行配置,否则 Ansible 将在第一次为该主机执行 Python 模块时尝试在每个目标主机上发现合适的 Python 解释器。
要控制发现行为
对于单个主机和组,请使用
ansible_python_interpreter
清单变量全局使用
ansible.cfg
文件[defaults]
部分中的interpreter_python
键
使用以下值之一
- auto_legacy
检测目标操作系统平台、发行版和版本,然后查阅一个表格,该表格列出了每个平台/发行版/版本的正确 Python 解释器和路径。如果找到条目,并且
/usr/bin/python
不存在,则使用发现的解释器(和路径)。如果找到条目,并且/usr/bin/python
存在,则使用/usr/bin/python
并发出警告。此例外提供了与以前版本的 Ansible 的临时兼容性,以前版本的 Ansible 始终默认为/usr/bin/python
,因此,如果您已在某些主机上的/usr/bin/python
安装了 Python 和其他依赖项,则 Ansible 将使用此设置找到并使用它们。如果未找到条目,或目标主机上不存在列出的 Python,则搜索常用 Python 解释器路径列表,并使用找到的第一个路径;还会发出警告,提示将来安装另一个 Python 解释器可能会更改所选择的解释器。- auto(2.12 版本中的默认值)
检测目标操作系统平台、发行版和版本,然后查阅一个表格,该表格列出了每个平台/发行版/版本的正确 Python 解释器和路径。如果找到条目,则使用发现的解释器。如果未找到条目,或目标主机上不存在列出的 Python,则搜索常用 Python 解释器路径列表,并使用找到的第一个路径;还会发出警告,提示将来安装另一个 Python 解释器可能会更改所选择的解释器。
- auto_legacy_silent
与
auto_legacy
相同,但不发出警告。- auto_silent
与
auto
相同,但不发出警告。
您仍然可以将 ansible_python_interpreter
设置为任何变量级别的特定路径(例如,在 host_vars 中、在 vars 文件中、在剧本中等等)。设置特定路径会完全禁用自动解释器发现;Ansible 将始终使用指定的路径。