Ansible配置Python3为解释器后仍用Python2.7.5,请求解决
解决Ansible自身Python版本切换问题
首先要明确:ansible.cfg里的interpreter_python配置的是远程目标主机上执行Ansible模块时使用的Python解释器,而ansible --version显示的是Ansible自身运行依赖的Python版本,这是两个完全独立的配置项。
要让Ansible自身切换为Python3运行,可按以下方式处理:
1. 重新安装Ansible绑定Python3
如果是通过系统包管理器(如yum/rpm)安装的Ansible,这类版本通常默认绑定系统Python2。建议卸载旧版后用pip3重新安装:
# 卸载原有Ansible yum remove ansible -y # 用pip3安装Ansible pip3 install ansible
安装完成后,确认ansible命令路径指向pip3安装的版本:
which ansible # 正常输出应为 /usr/local/bin/ansible 这类路径
2. 修改Ansible启动脚本的解释器
若不想重新安装,可直接修改Ansible主执行脚本的shebang行:
- 找到脚本路径,通常是
/usr/bin/ansible - 编辑文件,将第一行原内容:
修改为:#!/usr/bin/python#!/usr/bin/python3 - 保存后执行
ansible --version,即可看到自身运行的Python版本已切换为3.x。
3. 验证远程主机的Python解释器配置
如果你的需求是让远程主机用Python3执行模块,之前配置的interpreter_python = /usr/bin/python3已经生效,可通过以下命令验证:
ansible all -m command -a "python --version"
返回结果若为Python3版本,说明远程模块的解释器配置没问题,只是ansible --version显示的是本地Ansible自身的运行环境。
内容的提问来源于stack exchange,提问作者Xiao Lin
相关产品推荐
相关产品推荐

