我是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
答案 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
设置。