1
votes

I am running ansible 2.9.6 in my control machine Ubuntu 18.04 Desktop to control single server Ubuntu 16.04 server which doesn't have /home/username/ directory. I don't intend to create one aswell.

I am just trying to create a new folder "/usr/local/src/fromcontrolmachine" in slave machine from control machine

So I ran below command

 dinesh@dinesh-VirtualBox:/etc/ansible$ ansible all -u dira
 --become -m file -a "dest=/usr/local/src/fromcontrolmachine mode=755 owner=dira group=dira state=directory" -K 

BECOME password:

> 10.211.108.44 | FAILED! => {
>     "changed": false, 
>     "module_stderr": "Shared connection to 10.211.108.44 closed.\r\n", 
>     "module_stdout": "Could not chdir to home directory /home/dira: No such file or directory\r\n\r\n", 
>     "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", 
>     "rc": 1 }

I thought of changing the $Home directory by adding below line in /etc/ansible/ansible.cfg. It just created an empty folder called ansible

 remote_tmp = usr/local/src/ansible

How to tell ansible to change the default $Home directory by pointing to other location than default /home/dira ?

I wanted to clear this annoying error "module_stdout": "Could not chdir to home directory /home/dira271641: No such file or directory

UPDATE:

Also tried creating playbook pb.yml & add home_dir: /usr/local/src/ansible as mentioned below.

---

- hosts: all
  become: true
  tasks:
    - set_fact:
        home_dir: /usr/local/src/ansible
      become: true
    - name: ansible create directory example
      file:
        path: /tmp/devops_directory
        state: directory

When i run above using command ansible-playbook pb.yml -K

But it gives the same error as mentioned above.

UPDATE: I tried environment: HOME:

---
- hosts: all
  become: true
  environment: 
    HOME: /usr/local/src/ansible
  tasks:
  - name: ansible create directory example
    file:
      path: /tmp/devops_directory
      state: directory

Throws same error

Could not chdir to home directory /home/dira: No such file or directory\r\n\r\n", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 1}}, "msg": "The following modules failed to execute: setup\n"}
1

1 Answers

1
votes

Adding below line.

become_user: dira

solved this problem. Note: dira is my username. So replace your username instead. So full playbook script will look like

---
- hosts: all
  become: true
  become_user: dira
  environment: 
    HOME: /usr/local/src/ansible
  tasks:
  - name: ansible create directory example
    file:
      path: /tmp/devops_directory
      state: directory