ansible解决python版本依赖
ansible解决python版本依赖
ansible解决python版本依赖
- ansible解决python版本依赖
-
- 1.python版本问题会报如下错误
- 2.排查思路
目前服务器的版本各不相同,有centos5 centos6 centos7,服务器版本不同python的版本也不同,因此会导致一些服务器执行批量命令失败
1.python版本问题会报如下错误
[WARNING]: Unhandled error in Python interpreter discovery for host 192.168.3.50: No JSON object could be decoded
[WARNING]: Platform linux on host 192.168.3.50 is using the discovered Python interpreter at /usr/bin/python, but
future installation of another Python interpreter could change this. See
https://docs.ansible.com/ansible/2.9/reference_appendices/interpreter_discovery.html for more information.
192.168.3.50 | FAILED! => {
“ansible_facts”: {
“discovered_interpreter_python”: “/usr/bin/python”
},
“changed”: false,
“module_stderr”: “Shared connection to 192.168.3.50 closed.\r\n”,
“module_stdout”: " File “/root/.ansible/tmp/ansible-tmp-1607391445.82-4128297-83808946260841/AnsiballZ_ping.py”, line 72\r\n with open(args_path, ‘rb’) as f:\r\n ^\r\nSyntaxError: invalid syntax\r\n",
“msg”: “MODULE FAILURE\nSee stdout/stderr for the exact error”,
“rc”: 1
}
这个就是典型的语法错误,语法错误是由于python版本太低的问题导致的
2.排查思路
排查思路:首先ssh到失败的服务器查询python版本,如果是2.7一下那么只需要将python版本升级为2.7或者以上即可解决问题
但是这里不建议直接去升级python版本,可以在一台新的机器上将python2.7安装好,然后打包到有问题的机器上上利用ansible_python_interpreter这个变量指定python的版本即可
vim /etc/ansible/hosts
192.168.3.50 ansible_python_interpreter=/usr/local/python2.7/bin/python2.7
再次执行ping命令即可成功
192.168.3.50 | SUCCESS => {
“ansible_facts”: {
“discovered_interpreter_python”: “/usr/bin/python”
},
“changed”: false,
“ping”: “pong”
}
目录 返回
首页