要更改托管主机上使用的python解释器,可以根据您的问题使用额外的或inventory变量。这不会改变用于在本地执行ansible的python版本,这在另一个答案中提到。
要确认您在托管主机上使用的是不同的解释器,您将需要更详细的输出(至少3'v,-vvv)。在shell命令中运行python --version只会显示系统的默认python版本。
示例
Python2解释器:$ ansible localhost -a 'python --version' -e 'ansible_python_interpreter=/usr/bin/python2' -vvv
ansible 2.8.1
python version = 3.7.3 (default, May 11 2019, 00:38:04) [GCC 9.1.1 20190503 (Red Hat 9.1.1-1)]
'/bin/sh -c '"'"'/usr/bin/python2 /home/mattp/.ansible/tmp/ansible-tmp-1564023345.0848873-106174541151316/AnsiballZ_command.py && sleep 0'"'"''
localhost | CHANGED | rc=0 >>
Python 2.7.16
Python3解释器:$ ansible localhost -a 'python --version' -e 'ansible_python_interpreter=/usr/bin/python3' -vvv
ansible 2.8.1
python version = 3.7.3 (default, May 11 2019, 00:38:04) [GCC 9.1.1 20190503 (Red Hat 9.1.1-1)]
'/bin/sh -c '"'"'/usr/bin/python3 /home/mattp/.ansible/tmp/ansible-tmp-1564023350.3869421-223113472194736/AnsiballZ_command.py && sleep 0'"'"''
localhost | CHANGED | rc=0 >>
Python 2.7.16
要点用于在本地运行Ansible的python版本保持不变
系统默认的python版本保持不变
用于远程执行ansibe命令模块的python版本(即python解释器)已从版本2更改为3