You can run a shell task, echo the variables, register the result, and examine that. Otherwise:

*[utoddl@tango ansible]$ cat ygkumar0.yml* ---
# Playbook ygkumar0.yml
- name: Test environment variables in included tasks file
  hosts: localhost
  gather_facts: false
  environment:
    script_var1: hi
    script_var2: there
  tasks:
    - name: Run tasks file
      ansible.builtin.include_tasks:
        file: tasks/ygkumar0.yml
*[utoddl@tango ansible]$ cat tasks/ygkumar0.yml* ---
# tasks/ygkumar0.yml
- name: Test environment variables by shell script
  ansible.builtin.shell: |
    echo "We're here."
    echo "script_var0: '${script_var0-missing}'"
    echo "script_var1: '${script_var1-missing}'"
    echo "script_var2: '${script_var2-missing}'"
    echo "script_var3: '${script_var3-missing}'"

- name: Examine env vars directly
/# THIS WON'T WORK! ansible.builtin.env allows you to query # the environment variables available on the controller when you invoked Ansible, # not the environment that tasks on the remote nodes see./
  ansible.builtin.debug:
    msg:
      - "script_var0: {{ lookup('ansible.builtin.env', 'script_var0:') | 
default('missing') }}"
      - "script_var1: {{ lookup('ansible.builtin.env', 'script_var1:') | 
default('missing') }}"
      - "script_var2: {{ lookup('ansible.builtin.env', 'script_var2:') | 
default('missing') }}"
      - "script_var3: {{ lookup('ansible.builtin.env', 'script_var3:') | 
default('missing') }}"
*[utoddl@tango ansible]$ ansible-playbook ygkumar0.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: ygkumar0.yml 
*****************************************************************************
1 plays in ygkumar0.yml

PLAY [Test environment variables in included tasks file] 
*******************************************

TASK [Run tasks file] 
******************************************************************************
task path: /home/utoddl/ansible/ygkumar0.yml:10
included: /home/utoddl/ansible/tasks/ygkumar0.yml for localhost

TASK [Test environment variables by shell script] 
**************************************************
task path: /home/utoddl/ansible/tasks/ygkumar0.yml:3
changed: [localhost] => changed=true
  cmd: |-
    echo "We're here."
    echo "script_var0: '${script_var0-missing}'"
    echo "script_var1: '${script_var1-missing}'"
    echo "script_var2: '${script_var2-missing}'"
    echo "script_var3: '${script_var3-missing}'"
  delta: '0:00:00.002717'
  end: '2023-10-12 11:12:48.601248'
  msg: ''
  rc: 0
  start: '2023-10-12 11:12:48.598531'
  stderr: ''
  stderr_lines: <omitted>
  stdout: |-
    We're here.
    script_var0: 'missing'
    script_var1: 'hi'
    script_var2: 'there'
    script_var3: 'missing'
  stdout_lines: <omitted>

TASK [Examine env vars directly] 
*******************************************************************
task path: /home/utoddl/ansible/tasks/ygkumar0.yml:11
ok: [localhost] =>
  msg:
  - 'script_var0: '
  - 'script_var1: '
  - 'script_var2: '
  - 'script_var3: '

PLAY RECAP 
*****************************************************************************************
localhost                  : ok=3    changed=1    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 [email protected]. 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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/b59b1d83-bede-4f8c-af7e-8332a2f4b0ca%40gmail.com.

Reply via email to