我无法再弄清楚这一点,因为我不知道如何从 ansible 中获取“真正的”错误消息。我运行了下面的命令
$ ansible -i /opt/ansible/ec2.py "tag_Function_app:&tag_Application_pro:&tag_Environment_pqa" --private-key=~/.ssh/id_root_rsa -m shell --sudo -a "service httpd restart" -u root
但最终却出现了一个非常不起眼的错误
10.221.142.0 | FAILED | rc=0 >>
MODULE FAILURE
到底发生了什么? 有没有办法让我进一步调试? 尝试严格使用用户/sshkey 进行 ssh 可以正常工作?
答案1
当未安装 Python 2.x 时也会出现此错误/usr/bin/python
。例如在 Ubuntu 16.04 上,您必须安装它:
sudo apt -y update && sudo apt install -y python-minimal
另请参阅ansible 文档。
答案2
答案是,用户没有sudo
权限。谢谢大家 =)
答案3
免责声明
就我而言,这不是与 sudo 相关的问题。发布以完成。
总结
不要将虚拟环境与两个不同版本的 ansible 一起使用(一个在 OS 中,另一个在 pip-virtualenv 中)
解释部分
我对模块“shell”也遇到了同样的错误。
ansible -i ~/ansible-hosts example01 -mshell -a 'df -Ph'
:模块故障
ssh example01 'df -Ph'
: 没问题。
问题
我的 Debian 中的版本(使用 aptitude 安装)是,2.2.1.0
而我的 Virtualenv 中的版本(使用 Virtualenv 中的 pip 安装)是2.2.2.0
。
解决
我卸载了两者,然后在 Virtualenv 中重新安装了其中一个。
韋斯
答案4
我在虚拟环境中安装了 ansible,并使用了星系角色和不同的名称,这不知何故将它们打乱了,并导致了此错误消息。删除了虚拟环境并重新开始,一切又恢复正常。