获得ansible的root权限

时间:2014-08-29 14:17:40

标签: linux ubuntu-12.04 ansible ansible-playbook

我在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时,我拥有所有正确的权限,但不知怎的,它已经无效了。

知道为什么吗?

2 个答案:

答案 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文件中。