I have hundreds of files (generated through some application) which I am 
trying to iterate and include them as variable files.

See below files as example. There are many more variables in each of the 
files, I have toned down to make the example clear. 


# cat /tmp/abc/dev1.yml
---
app_name: dev1
instance: dev
port: 1234
server: test1
#

# cat /tmp/abc/dev2.yml
---
app_name: dev2
instance: dev
port: 4567
server: test2
#

# cat /tmp/abc/dev3.yml
---
app_name: dev3
instance: dev
port: 2223
server: test3
#




Now, when I use these tasks in my playbook, I can see the variables 
(app_name, instance, port, etc) defined in the files (/tmp/abc/*.yml) in 
the output as ansible_facts.

- action: shell echo "{{ item }}"
  with_fileglob: /tmp/abc/*
  register: res
- include_vars: "{{ item.item }}"
  with_items: res.results
  when: item.changed == True
  register: task1



This is my output, when I run the playbook.

root@vikas027:~# ansible-playbook -v configs.yml
PLAY [dev] **************************************************************

GATHERING FACTS ***************************************************************
ok: [vikas027.test.com]

TASK: [shell echo "{{ item }}"] ***********************************************
changed: [vikas027.test.com] => (item=/tmp/abc/dev3.yml) => {"changed": true, 
"cmd": "echo \"/tmp/abc/dev3.yml\"", "delta": "0:00:00.004915", "end": 
"2015-08-31 20:11:57.702623", "item": "/tmp/abc/dev3.yml", "rc": 0, "start": 
"2015-08-31 20:11:57.697708", "stderr": "", "stdout": "/tmp/abc/dev3.yml", 
"warnings": []}
changed: [vikas027.test.com] => (item=/tmp/abc/dev2.yml) => {"changed": true, 
"cmd": "echo \"/tmp/abc/dev2.yml\"", "delta": "0:00:00.004945", "end": 
"2015-08-31 20:11:58.130295", "item": "/tmp/abc/dev2.yml", "rc": 0, "start": 
"2015-08-31 20:11:58.125350", "stderr": "", "stdout": "/tmp/abc/dev2.yml", 
"warnings": []}
changed: [vikas027.test.com] => (item=/tmp/abc/dev1.yml) => {"changed": true, 
"cmd": "echo \"/tmp/abc/dev1.yml\"", "delta": "0:00:00.004864", "end": 
"2015-08-31 20:11:58.440205", "item": "/tmp/abc/dev1.yml", "rc": 0, "start": 
"2015-08-31 20:11:58.435341", "stderr": "", "stdout": "/tmp/abc/dev1.yml", 
"warnings": []}

TASK: [include_vars {{ item.item }}] ******************************************
ok: [vikas027.test.com] => (item={u'cmd': u'echo "/tmp/abc/dev3.yml"', u'end': 
u'2015-08-31 20:11:57.702623', u'stderr': u'', u'stdout': u'/tmp/abc/dev3.yml', 
u'changed': True, u'rc': 0, 'item': '/tmp/abc/dev3.yml', u'warnings': [], 
u'delta': u'0:00:00.004915', 'invocation': {'module_name': u'shell', 
'module_args': u'echo "/tmp/abc/dev3.yml"'}, 'stdout_lines': 
[u'/tmp/abc/dev3.yml'], u'start': u'2015-08-31 20:11:57.697708'}) => 
{"ansible_facts": {"app_name": "dev3", "instance": "dev", "port": 2223, 
"server": "test3"}, "item": {"changed": true, "cmd": "echo 
\"/tmp/abc/dev3.yml\"", "delta": "0:00:00.004915", "end": "2015-08-31 
20:11:57.702623", "invocation": {"module_args": "echo \"/tmp/abc/dev3.yml\"", 
"module_name": "shell"}, "item": "/tmp/abc/dev3.yml", "rc": 0, "start": 
"2015-08-31 20:11:57.697708", "stderr": "", "stdout": "/tmp/abc/dev3.yml", 
"stdout_lines": ["/tmp/abc/dev3.yml"], "warnings": []}}
ok: [vikas027.test.com] => (item={u'cmd': u'echo "/tmp/abc/dev2.yml"', u'end': 
u'2015-08-31 20:11:58.130295', u'stderr': u'', u'stdout': u'/tmp/abc/dev2.yml', 
u'changed': True, u'rc': 0, 'item': '/tmp/abc/dev2.yml', u'warnings': [], 
u'delta': u'0:00:00.004945', 'invocation': {'module_name': u'shell', 
'module_args': u'echo "/tmp/abc/dev2.yml"'}, 'stdout_lines': 
[u'/tmp/abc/dev2.yml'], u'start': u'2015-08-31 20:11:58.125350'}) => 
{"ansible_facts": {"app_name": "dev2", "instance": "dev", "port": 4567, 
"server": "test2"}, "item": {"changed": true, "cmd": "echo 
\"/tmp/abc/dev2.yml\"", "delta": "0:00:00.004945", "end": "2015-08-31 
20:11:58.130295", "invocation": {"module_args": "echo \"/tmp/abc/dev2.yml\"", 
"module_name": "shell"}, "item": "/tmp/abc/dev2.yml", "rc": 0, "start": 
"2015-08-31 20:11:58.125350", "stderr": "", "stdout": "/tmp/abc/dev2.yml", 
"stdout_lines": ["/tmp/abc/dev2.yml"], "warnings": []}}
ok: [vikas027.test.com] => (item={u'cmd': u'echo "/tmp/abc/dev1.yml"', u'end': 
u'2015-08-31 20:11:58.440205', u'stderr': u'', u'stdout': u'/tmp/abc/dev1.yml', 
u'changed': True, u'rc': 0, 'item': '/tmp/abc/dev1.yml', u'warnings': [], 
u'delta': u'0:00:00.004864', 'invocation': {'module_name': u'shell', 
'module_args': u'echo "/tmp/abc/dev1.yml"'}, 'stdout_lines': 
[u'/tmp/abc/dev1.yml'], u'start': u'2015-08-31 20:11:58.435341'}) => 
{"ansible_facts": {"app_name": "dev1", "instance": "dev", "port": 1234, 
"server": "test1"}, "item": {"changed": true, "cmd": "echo 
\"/tmp/abc/dev1.yml\"", "delta": "0:00:00.004864", "end": "2015-08-31 
20:11:58.440205", "invocation": {"module_args": "echo \"/tmp/abc/dev1.yml\"", 
"module_name": "shell"}, "item": "/tmp/abc/dev1.yml", "rc": 0, "start": 
"2015-08-31 20:11:58.435341", "stderr": "", "stdout": "/tmp/abc/dev1.yml", 
"stdout_lines": ["/tmp/abc/dev1.yml"], "warnings": []}}

PLAY RECAP ********************************************************************
vikas027.test.com : ok=3    changed=1    unreachable=0    failed=0
root@vikas027:~#



How can I reference variables like app_name, instance, port, etc in other 
tasks ? I tried using below code and few other combinations in vain.

- debug: msg="{{ task1.app_name }}
  with_items: task1.results

-- 
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 post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/97031344-3c77-43f7-b702-a9e6b32d3e44%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to