Ansible似乎没有从清单文件加载Ansible_python_解释器=/usr/bin/python3变量

Ansible似乎没有从清单文件加载Ansible_python_解释器=/usr/bin/python3变量,ansible,ansible-2.x,Ansible,Ansible 2.x,当我将主机的ansible_python_解释器的值设置为/usr/bin/python3时,ansible playbook似乎仍然使用指向python2.7的/usr/bin/python 我从-vvv得到这个,输出显示 Using module file /usr/lib/python2.7/site-packages/ansible/modules/cloud/vmware/vmware_guest.py 我在yml文件中加入了一个调试,用于输出变量,它返回: "ansible_pyt

当我将主机的ansible_python_解释器的值设置为/usr/bin/python3时,ansible playbook似乎仍然使用指向python2.7的/usr/bin/python 我从-vvv得到这个,输出显示

Using module file /usr/lib/python2.7/site-packages/ansible/modules/cloud/vmware/vmware_guest.py
我在yml文件中加入了一个调试,用于输出变量,它返回:

"ansible_python_interpreter": "/usr/bin/python3"

ansible --version
ansible 2.8.2
   config file = /ansible/automation/ansible.cfg
   configured module search path = ['/root/.ansible/plugins/modules', 
 '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/local/lib/python3.6/site- 
packages/ansible
  executable location = /usr/local/bin/ansible
  python version = 3.6.8 (default, Apr 25 2019, 21:02:35) [GCC 4.8.5 
20150623 (Red Hat 4.8.5-36)]
我已将库存文件中的位置移动为第一个变量,并将其作为组变量添加,但没有添加任何变量

当我使用-e ansible_python_解释器=/usr/bin/python3运行ansible playbook命令时,脚本运行正常

库存文件

[控制]
ansible_连接=本地
ansible_python_解释器=/usr/bin/python3

yml摘录

---
-主持人:控制
收集事实:错误
任务:
-名称:调试变量
调试:
var:ansible_python_intrepreter
-名称:从Windows模板克隆虚拟机并自定义
vmware_来宾:
主机名:“{{hostname}}”
用户名:“{{username}}”
密码:{{password}}
验证证书:否
数据中心:一些数据中心
集群:一些集群
文件夹:“一些文件夹”
姓名:某主机
模板:一些模板
数据存储:“一些数据存储”
网络:
-名称:一些网络名称
ip:x.x.x.x
网络掩码:255.255.255.0
网关:x.x.x.x
mac:aa:bb:dd:aa:00:14
域名:domain.com
dns_服务器:
-x.x.x.x
-x.x.x.x

当进程运行时,我得到这个错误
“未能在Python/usr/bin/python2上导入所需的Python库(请求)”

变量必须与主机位于同一行

[control]
REDACTED_HOST_NAME ansible_connection=local ansible_python_interpreter=/usr/bin/python3
使用组变量更方便

[control]
REDACTED_HOST_NAME
[control:vars]
ansible_connection=local
ansible_python_interpreter=/usr/bin/python3
与主持人

- hosts: localhost
  gather_facts: no
  tasks:
    - debug:
        msg: "{{ hostvars['REDACTED_HOST_NAME'].ansible_python_interpreter }}"
给予

,但与下面的主机

localhost
[control]
REDACTED_HOST_NAME ansible_connection=local
ansible_python_interpreter=/usr/bin/python3
同样的戏失败了

'ansible.vars.hostvars.HostVarsVars object' has no attribute 'ansible_python_interpreter'

变量在一行上。由于某种原因,当我把第二个变量放到帖子中时,它掉到了第二行。调试确实会按预期返回,而yml的其余部分会恢复为python2。我只是通过从/usr/local/bin显式调用ansible playbook命令来运行它,活动成功完成。“which ansible playbook”命令声称它位于/usr/local/bin中,因此它应该运行python3.6。我运行了ansible playbook——版本,它使用python2.7返回,但如果运行/usr/local/bin/ansible playbook,它将返回python3.6
localhost
[control]
REDACTED_HOST_NAME ansible_connection=local
ansible_python_interpreter=/usr/bin/python3
'ansible.vars.hostvars.HostVarsVars object' has no attribute 'ansible_python_interpreter'