解决方法
- 在目标服务器上安装Python2.x。
### Ubuntu/Debian sudo apt-get update sudo apt-get install python2.7
- 在ansible服务器的inventory文件中设置“ansible_python_interpreter”。
比如:
[staging:vars] ansible_python_interpreter=/usr/bin/python2.7
现在就可以重新运行ansible命令了。
jack@ip-172-31-7-94:~$ ansible -i inventory/staging staging -m ping 172.31.22.117 | SUCCESS => { "changed": false, "ping": "pong" }
问题现象
在安装了 Ansible 2.2.1之后,
运行时遇到了一个错误:“Ansible /bin/sh: 1: /usr/bin/python: not found”。
jack@ip-172-31-7-94:~$ ansible -i inventory/staging staging -m ping 172.31.22.117 | FAILED! => { "changed": false, "failed": true, "module_stderr": "Shared connection to 172.31.22.117 closed.\r\n", "module_stdout": "/bin/sh: 1: /usr/bin/python: not found\r\n", "msg": "MODULE FAILURE" }
目前ansible模块支持python 2.4,
在主机上设置一个目录变量' ansible_python_interpreter ',
Ansible执行python模块时将使用它作为解释器。
因此,如果系统上的/usr/bin/python没有指向python2,则可以指向系统上其他Python 2.X解释器。
日期:2019-08-20 17:58:06 来源:oir作者:oir