Quando sudo come utente, ansible_env non ha il set HOME variabile "/ root". Tuttavia, se echo la variabile env HOME è corretta - "/ var/lib/pgsql". Non c'è altro modo per ottenere la home directory di un utente sudo?Come ottenere la directory home di un utente sudo da ansible_env?
Inoltre, ho già impostato "sudo_flags = -H" in ansible.cfg e non riesco ad accedere come utente di Postgres.
- name: ansible_env->HOME
sudo: yes
sudo_user: postgres
debug: msg="{{ ansible_env.HOME }}"
- name: echo $HOME
sudo: yes
sudo_user: postgres
shell: "echo $HOME"
register: postgres_homedir
- name: postgres_homedir.stdout
sudo: yes
sudo_user: postgres
debug: msg="{{ postgres_homedir.stdout }}"
risultati:
TASK: [PostgreSQL | ansible_env->HOME] ****************************************
ok: [postgres] => {
"msg": "/root"
}
TASK: [PostgreSQL | echo $HOME] ***********************************************
changed: [postgres]
TASK: [PostgreSQL | postgres_homedir.stdout] **********************************
ok: [postgres] => {
"msg": "/var/lib/pgsql"
}
Dopo aver attraversato la documentazione sembra che la mia soluzione è davvero l'unico modo. Anche se, mi piacerebbe che ci fosse un modo migliore per farlo. – rahul