与服务器的共享连接失败(尝试运行Ansible playbook)

时间:2016-12-13 05:02:29

标签: ssh server ansible

我是SSH服务器和Ansible的新手,所以这可能是一个愚蠢的问题。

尝试使用下面的bash命令使用私钥访问服务器时运行Ansible playbook。

ansible-playbook dbserv.yml -i hosts --limit local-servers --private-key=(where I put the private key)

但是,我收到此错误:

  

致命:[xxx]:失败! => {       "改变了#34;:错误,       "失败":是的,       "调用":{           " module_name":" setup"       },       " module_stderr":" xxx的共享连接已关闭。\ r \ n",       " module_stdout":" / bin / sh:1:/usr/bin/python2.7:找不到\ r \ n",       " msg":" MODULE FAILURE" }

我的计算机上安装了Python,所以我不明白为什么会收到此错误。

操作系统环境: Ubuntu 16.04.1

1 个答案:

答案 0 :(得分:14)

您收到的错误消息是:

  

/usr/bin/python2.7:找不到

Ansible要求目标计算机安装Python才能正常工作(请参阅Managed node requirements)。

最可能的原因是你的目标是Ubuntu 16.04,它没有安装Python 2。在这种情况下,您需要安装它或尝试experimental support for Python 3

如果Python 2.7安装在不同的目录中,您可以添加一个主机变量,例如在您的清单文件中(假设主机名为xxx,如您的问题所示):

xxx ansible_python_interpreter=/path/to/python2.7

要使用Python 3(experimental)运行模块,请设置:

xxx ansible_python_interpreter=/usr/bin/python3

注意:默认情况下,Ansible会查找/usr/bin/python,因此您的剧本,广告资源文件或ansible.cfg可能已包含目标计算机上不存在的/usr/bin/python2.7设置。