Hi Todd, Yeah if we pass who with any arguments it remains the same. I read it some other forum.
I tried with the python code as well as ansible_user_id both returns the same “root”. Since I m running the playbook from root user after su -. As you suggested we need to check how we can capture the userid who run the playbook from Ansible tower. Regards Prady On Sun, Jul 30, 2023 at 1:23, Todd Lewis <[email protected]> wrote: > Without knowing your effective ansible config — i.e. the ansible.cfg it's > using, the environment variables that can override those settings, and > command line parameters that can override everything else — it's impossible > to say. Factors include "become", "become-user", "become-method", > "ask-pass", "ask-become-pass", and probably more. > > Are you gathering facts? Ansible does gather facts by default, so if you > aren't turning that off somewhere, you can use the variables containing > user related facts. For example: > > $ ansible localhost -m gather_facts | grep ansible_user > "ansible_user_dir": "/home/utoddl", > "ansible_user_gecos": "Todd Lewis", > "ansible_user_gid": 12428, > "ansible_user_id": "utoddl", > "ansible_user_shell": "/bin/bash", > "ansible_user_uid": 12428, > "ansible_userspace_architecture": "x86_64", > "ansible_userspace_bits": "64", > > Not an Ansible thing, but: Do Not Use "who am i" for this. That's the > same a "who -m", which shows you the user associated with the stdin > stream, but only if that user is logged in AND only if the stdin stream > exists and has an associated user. There's a whole lot of subtle going on > there that we don't want to get into in an Ansible forum. The reason your "su > -" followed by "who am i" is showing your id rather than root is > (probably) because it's your id associated with the tty you logged into. > But that's going to be different for Ansible, depending on how your > controller connects to the target hosts, including localhost. > > I gave you the python code yesterday. It's dead simple: > > import os > import pwd > userid = pwd.getpwuid(os.getuid())[0] > > But if you're gathering facts, just use the ansible_user_id variable. > > If that's "root", and that appears to be the case, then you'll need to > understand how your controller is connecting to the target hosts. My guess > is you'll eventually need to pass the invoking user's id as an extra > variable ("-e invoking_user=${USER}") when invoking ansible-playbook. > Maybe consider a wrapper script? > -- > Todd > > > On 7/28/23 11:03 PM, Prady A wrote: > > Hi All, > > I searched a quite but could able to find what I wanted > Could any pls suggest me how to get the Username in the host machine. In > Linux if I run the below command I get what I suppose to get but don’t know > how to do it ansible. Any code Ansible or python would be helpful > > Fin Linux: > *X1234@hostname$*su - > *root@hostname#*who am i > x1234 pts/2 2023-07-29 ([email protected]) > > My *getuser.yml*: > - debug: {{ lookup(‘env’, ‘USER’) }} > delegate_to: localhost > > - local_action: command whoami > register: user_name > > *root@hostname#* ansible-playbook getuser.yml > Both returning me *root*. I wanted to have *X1234* user instead. I want > use that user ID in my from address in mail module. Any insight would be > very helpfu. > > Regards > > > -- > You received this message because you are subscribed to the Google Groups > "Ansible Project" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/ansible-project/5eeb8d90-f325-54b3-1032-73052fad4713%40gmail.com > <https://groups.google.com/d/msgid/ansible-project/5eeb8d90-f325-54b3-1032-73052fad4713%40gmail.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "Ansible Project" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/CAEuB3ArTYtf%2BCcLgdrkw_8Yrd0n7CQjpWQJOKV0Nc8z6dNipTw%40mail.gmail.com.
