/usr/bin/python: not found

解决方法

  1. 在目标服务器上安装Python2.x。
### Ubuntu/Debian
 sudo apt-get update
 sudo apt-get install python2.7
  1. 在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