Thank you again.. you are so kind ..It helped a lot..yes we orchestrate servers through Tower..Still a novice in Tower ..
I went through this link there they suggested to use tower_user_id https://groups.google.com/g/ansible-project/c/YQ_r9UaS-uw Regards On Mon, Jul 31, 2023 at 23:11, Todd Lewis <[email protected]> wrote: > If users are launching this job through Ansible tower (AWX), and not from > a schedule, then you can probably get their user name through the variable > "awx_user_name". > There are additional variables specific to AWX. See "{{ lookup( > 'ansible.builtin.varnames', '^awx_.+') }}" to get their names. I'm seeing > "awx_inventory_id", > "awx_inventory_name", "awx_job_id", "awx_job_launch_type", > "awx_job_template_id", "awx_job_template_name", "awx_project_revision", > "awx_project_scm_branch", "awx_user_email", "awx_user_first_name", > "awx_user_id", "awx_user_last_name", and "awx_user_name". > > On Saturday, July 29, 2023 at 11:51:15 PM UTC-4 Prady A wrote: > >> 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/c2c3bab4-5a26-4f4c-99c7-2edf14022ea2n%40googlegroups.com > <https://groups.google.com/d/msgid/ansible-project/c2c3bab4-5a26-4f4c-99c7-2edf14022ea2n%40googlegroups.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/CAEuB3AoEvKMNJ8SxMfeEkxdGQb%2B3eNCVrg%3DJcPr9o-DsTN5H6Q%40mail.gmail.com.
