Getting root privileges in ansible

2019-06-27 10:55发布

I have the following task in ansible:

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

which should run as my user but with root privileges. But even though my user is a sudoer it fails with

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

Of course, when i do sudo -s in the server i have all the right permissions but somehow with ansible it's not working.

Any idea why?

2条回答
该账号已被封号
2楼-- · 2019-06-27 11:12

The problem was that i had no permission to run /bin/sh. I needed to set the executable to /bin/bash - this can be done in ansible's config file. So in the current directory i created the ansible.cfg file with the following contents:

executable = /bin/bash

and that was it!

查看更多
beautiful°
3楼-- · 2019-06-27 11:15

It seems like you do not have full sudo access, because of which some commands are failing with Ansible. Can you try running the below commands with sudo and see if you can successfully execute it on your remote host ?

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

If any of that doesn't works then you should add that command to your sudoers file.

查看更多
登录 后发表回答