【问题标题】:Getting root privileges in ansible在ansible中获取root权限
【发布时间】:2014-08-31 02:31:39
【问题描述】:

我在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 时,我拥有所有正确的权限,但不知何故,它无法正常工作。

知道为什么吗?

【问题讨论】:

    标签: linux ubuntu-12.04 ansible ansible-playbook


    【解决方案1】:

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

    executable = /bin/bash
    

    就是这样!

    【讨论】:

      【解决方案2】:

      您似乎没有完全的 sudo 访问权限,因此某些命令在 Ansible 中失败。您可以尝试使用 sudo 运行以下命令,看看是否可以在远程主机上成功执行它?

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

      如果其中任何一个不起作用,那么您应该将该命令添加到您的 sudoers 文件中。

      【讨论】:

      • 是的,确实如此。我没有使用 /bin/sh 的权限,但我不能将它添加到 sudoers 文件中(这是一家大公司,这不是我的决定)所以只是在 ansible 的配置文件中更改了 shell。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-07-30
      • 1970-01-01
      • 2010-09-05
      • 1970-01-01
      • 1970-01-01
      • 2015-08-26
      • 1970-01-01
      相关资源
      最近更新 更多