Loading...

Watch: Ansible troubleshooting - Permission denied Errno 13

Learn how to troubleshoot and resolve the Permission Denied Errno 13 error in Ansible with Luca Berton on Ansible Pilot.

Introduction

Welcome to another episode of Ansible Pilot! I'm Luca Berton, and today we're delving into Ansible troubleshooting, focusing on the pesky "Permission Denied Errno 13" error. Join me as we explore the intricacies of this issue, reproduce it in a live Playbook, and learn how to effectively resolve it using privilege escalation in Ansible Playbooks.

The Demo

Let's jump right into a live Playbook to understand how to troubleshoot the Ansible fatal error [Errno 13] Permission denied and fix it in an Ansible Playbook.

Error Code

``yaml

permissiondenied_error.yml

---

  • name: set environment Playbook

hosts: all

gather_facts: false

vars:

os_environment:

- key: EDITOR

value: vi

tasks:

- name: customize /etc/environment

ansible.builtin.lineinline:

dest: "/etc/environment"

state: present

regexp: "^{{ item.key }}="

line: "{{ item.key }}={{ item.value }}"

with_items: "{{ os_environment }}"

`

Error Execution

`bash

ansible-pilot $ ansible-playbook -i virtualmachines/demo/inventory troubleshooting/permissiondenied_error.yml

PLAY [set environment Playbook] *

TASK [customize /etc/environment] *

An exception occurred during task execution. To see the full traceback, use -vvv. The error was: PermissionError: [Errno 13] Permission denied: b'/home/devops/.ansible/tmp/ansible-tmp-1645543127.772594-89712-144540003805636/tmpvhoh4q83' -> b'/etc/environment'

failed: [demo.example.com] (item={'key': 'EDITOR', 'value': 'vi'}) => {"ansible_facts": {"discovered_interpreter_python": "/usr/libexec/platform-python"}, "ansible_loop_var": "item", "changed": false, "item": {"key": "EDITOR", "value": "vi"}, "msg": "The destination directory (/etc) is not writable by the current user. Error was: [Errno 13] Permission denied: b'/etc/.ansible_tmp_hwdwg3denvironment'"}

PLAY RECAP **

demo.example.com : ok=0 changed=0 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0

ansible-pilot $

`

Fix Code

``yaml

permissiondenied_fix.yml

---

  • name: set environment Playbook

hosts: all

gather_facts: false

become: true

vars:

os_environment:

- key: EDITOR

value: vi

tasks:

- name: customize /etc/environment

Read the full tutorial: Ansible troubleshooting - Permission denied Errno 13