I have solved this finally, check this
<http://stackoverflow.com/questions/32321911/ansible-iterate-and-include-multiple-variable-files>
out.
Regards,
Vikas
On Tuesday, 1 September 2015 17:44:24 UTC+10, Vikas Kumar wrote:
>
> 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/2f58beeb-47d8-4475-b88a-4a6806d60593%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.