Another thing you might consider is using a YAML reference to duplicate the environment in a regular playbook variable. Then you can use plain old variable references to see those values. See the example below:

*[utoddl@tango ansible]$ cat ygkumar1.yml *
---
# Playbook ygkumar1.yml
- name: Copy environment to testable variables using YAML reference
  hosts: localhost
  gather_facts: false
*environment: &environment script_var1: hi script_var2: there*
  vars:
    pb_dict:
      not_env_var1: foo
      not_env_var2: bar
      *env_vars: *environment*
      other_stuff: bas
  tasks:
    - name: Dump pb_dict to the job log
      ansible.builtin.debug:
        var: pb_dict

    - name: Shell script to loop over pb_dict.env_vars
      changed_when: false
      ansible.builtin.shell: |
        for vname in {{ pb_dict.env_vars.keys() | map('quote') | join(' ') }} ; 
do
            printf -- "Environment variable %s: %s\n" "$vname" "$(eval echo 
\${$vname} )"
        done
*[utoddl@tango ansible]$ ansible-playbook ygkumar1.yml -vv*
ansible-playbook [core 2.14.10]
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/home/utoddl/.ansible/plugins/modules', 
'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3.11/site-packages/ansible
  ansible collection location = 
/home/utoddl/.ansible/collections:/usr/share/ansible/collections
  executable location = /usr/bin/ansible-playbook
  python version = 3.11.5 (main, Aug 28 2023, 00:00:00) [GCC 13.2.1 20230728 
(Red Hat 13.2.1-1)] (/usr/bin/python3)
  jinja version = 3.0.3
  libyaml = True
Using /etc/ansible/ansible.cfg as config file
redirecting (type: callback) ansible.builtin.yaml to community.general.yaml
redirecting (type: callback) ansible.builtin.yaml to community.general.yaml
Skipping callback 'default', as we already have a stdout callback.
Skipping callback 'minimal', as we already have a stdout callback.
Skipping callback 'oneline', as we already have a stdout callback.

PLAYBOOK: ygkumar1.yml 
**********************************************************************
1 plays in ygkumar1.yml

PLAY [Copy environment to testable variables using YAML reference] 
**************************

TASK [Dump pb_dict to the job log] 
**********************************************************
task path: /home/utoddl/ansible/ygkumar1.yml:16
ok: [localhost] =>
  pb_dict:
    *env_vars: script_var1: hi script_var2: there*
    not_env_var1: foo
    not_env_var2: bar
    other_stuff: bas

TASK [Shell script to loop over pb_dict.env_vars] 
*******************************************
task path: /home/utoddl/ansible/ygkumar1.yml:20
ok: [localhost] => changed=false
  cmd: |-
    for vname in script_var1 script_var2 ; do
        printf -- "Environment variable %s: %s\n" "$vname" "$(eval echo \${$vname} 
)"
    done
  delta: '0:00:00.003708'
  end: '2023-10-13 07:58:40.898459'
  msg: ''
  rc: 0
  start: '2023-10-13 07:58:40.894751'
  stderr: ''
  stderr_lines: <omitted>
  stdout: |-
    Environment variable script_var1: hi
    Environment variable script_var2: there
  stdout_lines: <omitted>

PLAY RECAP 
**********************************************************************************
localhost                  : ok=2    changed=0    unreachable=0    failed=0    
skipped=0    rescued=0    ignored=0


On 10/11/23 10:03 AM, Y.G Kumar wrote:
Hi All,

I am declaring an environment variables in a playbook as shown below:
--
---
- hosts: localhost
  environment:
    script_var1: hi
    script_var2: there
  tasks:
    - name: List
      shell: bash test.sh
--

I want to test the existence of the above environment variables in a separate  task.yml file. How do I test their existence ? What is the syntax ?
--
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 ansible-project+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/1e7a8869-6360-4396-95e6-cd6f078dcd24n%40googlegroups.com <https://groups.google.com/d/msgid/ansible-project/1e7a8869-6360-4396-95e6-cd6f078dcd24n%40googlegroups.com?utm_medium=email&utm_source=footer>.

--
Todd

--
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 ansible-project+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/b9e5d59f-3809-46b4-b360-2f8ad6114cee%40gmail.com.

Reply via email to