2014-08-29 130 views
4

我在ansible以下任务:获取root权限在ansible

- file: "state=directory path=/servers/repo" 
    sudo: yes 
    name: "Create the base site directory." 

这应该作为我的用户,但以root权限运行。但是,即使我的用户是

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我拥有所有正确的权限,但不知何故与ansible它不工作一sudoer失败。

任何想法为什么?

回答

3

问题是我没有权限运行/ bin/sh。我需要将可执行文件设置为/ bin/bash - 这可以在ansible的配置文件中完成。所以在当前目录中,我创建了具有以下内容的ansible.cfg文件:

executable = /bin/bash 

就是这样!

1

看起来你没有完整的sudo访问权限,因为有些命令与Ansible失败。你可以尝试用sudo运行下面的命令,看看你能否在远程主机上成功执行它?

/bin/sh 
echo 
/usr/bin/python 
rm 

如果有任何不起作用,那么你应该添加该命令到你的sudoers文件。

+1

是的,的确如此。我没有使用/ bin/sh的权限,但是我不能将它添加到sudoers文件中(这是一家大公司,这不是我的决定),所以只是将shell修改为ansible的配置文件。 – Sofia 2014-08-30 18:33:41