Ansible sudo_user que no usa el directory $ HOME correcto

Tengo un directory git que es propiedad de un usuario que no puedo ssh como. Actualmente estoy usando sudo_user: user que funciona pero parece que no está configurando $ HOME correctamente. Mi count de usuario tiene github en el file ~ / .ssh / known_hosts, pero se está agregando a mi file ~ ssh_user / .ssh / known_hosts (de accept_hostkey = yes).

http://docs.ansible.com/git_module.html

 - hosts: myhost sudo_user: user tasks: - name: git git: repo=git@github.com:user/repo.git dest=/home/user/repo update=no accept_hostkey=yes 

¿Hay algo que deba hacer para decirle a ansible que use $ HOME correctamente?

Me estoy ejecutando en Solaris fuera de Joyent, pero no creo que eso sea directamente aplicable a este problema.

agregue sudo_flags en su file ansible.cfg

 [defaults] sudo_flags = -i 

esto ejecutará el script de inicio de session de sudo de usuario para rellenar variables de entorno como $ HOME

sudo hace algunos cambios con un set de variables de entorno, especialmente HOME . Puedes verificar esto con:

 sudo -u user | grep HOME 

Si obtienes /home/user , estás bien, pero probablemente consigas /home/ssh_user .

Esto es realmente algo relacionado con sudo , no con ansible.

Para eludir esto, puede agregar en /etc/sudoers :

 Defaults always_set_home Defaults set_home 

Intente de nuevo sudo user | grep HOME sudo user | grep HOME , deberías get el resultado correcto.

De lo contrario, busca una directiva sudo Defaults env_keep . También puede jugar un papel aquí. Defaults env_keep += "HOME" en /etc/sudoers , y quítelo (esta directiva le pide a sudo que preserve HOME del usuario que emite sudo)

Buena suerte.

EDITAR: Estas directivas también pueden aparecer en /etc/sudoers.d/ . No sé sobre Solaris, entonces YMMV.

Usamos algunas máquinas de os inteligentes inteligentes. Soluciono el problema configurando el entorno como a continuación. Eso funcionará para alguna aplicación.

 - name : Test Envirinment hosts : all gather_facts : no tasks: - name: echo host shell: echo $HOME sudo_user: someuser environment: HOME: "/var/lib/dir" 

o puede usar la solución de sugerencia de @leucos que sería una solución más permanente

Espero que ayude vivas