如何避免 Ansible 对特定 Python 版本的依赖?

How do I avoid Ansible dependency on specific Python version?

我正在将一些剧本从 Python 2 移植到 Python 3。在此,一个剧本正在调用 URI 模块,它直接对 /usr/bin/python 进行了令人困惑的调用: (带-vvv)

Using module file /usr/local/lib/python3.5/dist- 
packages/ansible/modules/net_tools/basics/uri.py
<10.216.247.143> ESTABLISH LOCAL CONNECTION FOR USER: root
<10.216.247.143> EXEC /bin/sh -c '/usr/bin/python && sleep 0'

我试图在没有安装 python 2 的环境中执行此剧本,因此失败了。如何使 URI 模块使用 python3?

调用哪个python是在两个地方控制的。第一个是 ansible.cfg:

ansible_python_interpreter = /usr/bin/python

将本地python可执行环境设置为/usr/bin/python。此外,我能够通过清单变量在托管节点上设置 python 可执行文件:

[managers:vars] ansible_python_interpreter=/usr/bin/python3