# Ansible reports “permission denied” when issuing command on remote host

**URL:** <https://forum.ansible.com/t/ansible-reports-permission-denied-when-issuing-command-on-remote-host/21648>\
**Category:** Ansible Project\
**Tags:** ubuntu\
**Created:** [June 2, 2016, 5:12pm UTC](https://forum.ansible.com/t/ansible-reports-permission-denied-when-issuing-command-on-remote-host/21648 "2016-06-02T17:12:12Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Howard\_Lee](https://avatars.discourse-cdn.com/v4/letter/h/aca169/32.png) [@Howard\_Lee](https://forum.ansible.com/u/Howard_Lee)\
**Post date:** [June 2, 2016, 5:12pm UTC](https://forum.ansible.com/t/ansible-reports-permission-denied-when-issuing-command-on-remote-host/21648/1 "2016-06-02T17:12:12Z")

</div>

Ansible 2.1  
Ansible host: Ubuntu 16.04  
Remote host: CentOS 6.5

I have a simple ansible project:

```auto
├── hosts
├── roles
│ └── setup
│ ├── defaults
│ │ └── main.yml
│ ├── tasks
│ │ └── main.yml
│ └── templates
│ └── automation-agent.config.j2
└── site.yml

```

Command I used to run playbook:

`ansible-playbook -i hosts site.yml --user admin --ask-pass`

On the remote host, I have set up user `admin` with root priviledge:

```auto
root ALL=(ALL) ALL
admin ALL=(ALL) ALL

```

However, one of the playbook tasks ran into issue:

```auto
- name: Back up Automation Agent config file if exists
  command: mv /etc/mongodb-mms/automation-agent.config /etc/mongodb-mms/automation-agent.config.bak

```

Ansible reports:

---

<div class="post-metadata">

**Author:** ![Brian\_Coca](https://avatars.discourse-cdn.com/v4/letter/b/6de8d8/32.png) [@Brian\_Coca](https://forum.ansible.com/u/Brian_Coca)\
**Post date:** [June 2, 2016, 5:15pm UTC](https://forum.ansible.com/t/ansible-reports-permission-denied-when-issuing-command-on-remote-host/21648/2 "2016-06-02T17:15:23Z")

</div>

try this:  
ansible-playbook -i hosts site.yml --user admin --ask-pass --become

`--become-user admin` is basically telling ansible to login as admin and then use sudo to become admin, which is basically useless. With the command above it will become ‘root’, the default.

---

<div class="post-metadata">

**Author:** ![Kai\_Stian\_Olstad](https://avatars.discourse-cdn.com/v4/letter/k/e19adc/32.png) [@Kai\_Stian\_Olstad](https://forum.ansible.com/u/Kai_Stian_Olstad)\
**Post date:** [June 2, 2016, 7:50pm UTC](https://forum.ansible.com/t/ansible-reports-permission-denied-when-issuing-command-on-remote-host/21648/3 "2016-06-02T19:50:07Z")

</div>

You also need to add --ask-become-pass

---

<div class="post-metadata">

**Author:** ![Howard\_Lee](https://avatars.discourse-cdn.com/v4/letter/h/aca169/32.png) [@Howard\_Lee](https://forum.ansible.com/u/Howard_Lee)\
**Post date:** [June 3, 2016, 4:42pm UTC](https://forum.ansible.com/t/ansible-reports-permission-denied-when-issuing-command-on-remote-host/21648/4 "2016-06-03T16:42:53Z")

</div>

Yes, --ask-become-pass helped. Removing ‘–become-user admin’ as it is redundant. The whole command now is:

ansible-playbook -i hosts site.yml --user admin --ask-pass --become --ask-become-pass

This is telling Ansible to ssh using ‘admin’, and uses ‘admin’ sudo priviledge to play tasks. It works great.

Thanks.

---

<div class="post-metadata">

**Author:** ![gdelgado2](https://avatars.discourse-cdn.com/v4/letter/g/cdc98d/32.png) [@gdelgado2](https://forum.ansible.com/u/gdelgado2)\
**Post date:** [June 4, 2016, 2:48am UTC](https://forum.ansible.com/t/ansible-reports-permission-denied-when-issuing-command-on-remote-host/21648/5 "2016-06-04T02:48:32Z")

</div>

You can just add **: yes** in your playbook so you don’t have to define it when running the command.
