我在ansible中有以下任务:
- file: "state=directory path=/servers/repo"
sudo: yes
name: "Create the base site directory."
应以我的用户身份运行,但具有root权限。但即使我的用户是sudoer,它也会失败
Sorry, user sofiab is not allowed to execute '/bin/sh -c echo SUDO-SUCCESS-amlzcqzchzpjsgkllckjhjfednpjgevj; LANG=C LC_CTYPE=C /usr/bin/python /home/sofiab/.ansible/tmp/ansible-tmp-1409321488.66-202796192861545/file; rm -rf /home/sofiab/.ansible/tmp/ansible-tmp-1409321488.66-202796192861545/ >/dev/null 2>&1' as root
当然,当我在服务器中sudo -s
时,我拥有所有正确的权限,但不知怎的,它已经无效了。
知道为什么吗?
答案 0 :(得分:3)
问题是我无权运行/ bin / sh。我需要将可执行文件设置为/ bin / bash - 这可以在ansible的配置文件中完成。所以在当前目录中我创建了ansible.cfg文件,其中包含以下内容:
executable = /bin/bash
就是这样!
答案 1 :(得分:1)
看起来你没有完整的sudo访问权限,因为有些命令因Ansible而失败。您是否可以尝试使用sudo运行以下命令,看看您是否可以在远程主机上成功执行它?
/bin/sh
echo
/usr/bin/python
rm
如果其中任何一个不起作用,那么您应该将该命令添加到您的sudoers文件中。