解释器发现

大多数在 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 的临时兼容性,这些版本始终默认使用 /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 相同,但不发出警告。

您仍然可以在任何变量级别(例如,在 host_vars 中、在 vars 文件中、在剧本中,等等)将 ansible_python_interpreter 设置为特定路径。设置特定路径将完全禁用自动解释器发现;Ansible 始终使用指定的路径。