Hello there,
Is it possible to create a variable which is a dict using jinja2 within a
playbook?
For example, I have the following (contrived) playbook, within which I am
trying to create a 'host_info' dict which I can then access from a task:
---
- hosts: 127.0.0.1
connection: local
sudo: no
vars:
app_servers: 5
ipaddress_base: "192.168.0"
rmi_portbase: 10000
host_info: |
{%- for number in range(1,app_servers + 1) -%}
{% set host = 'app' + number|string %}
- hostname: host
- ipaddress: {{ ipaddress_base }}.{{ number }}
- rmi_port: {{ rmi_portbase|int + ( number * 10) }}
{%- endfor %}
tasks:
- debug: var=item
with_items: host_info
- debug: var=item.hostname
with_dict: host_info
However I can't seem to generate a dict as intended.
$ ansible-playbook -i "localhost," test.yml
PLAY [127.0.0.1]
**************************************************************
GATHERING FACTS
***************************************************************
ok: [127.0.0.1]
TASK: [debug var=item]
********************************************************
ok: [127.0.0.1] => (item= - hostname: host
- ipaddress: 192.168.0.1
- rmi_port: 10010 - hostname: host
- ipaddress: 192.168.0.2
- rmi_port: 10020 - hostname: host
- ipaddress: 192.168.0.3
- rmi_port: 10030 - hostname: host
- ipaddress: 192.168.0.4
- rmi_port: 10040 - hostname: host
- ipaddress: 192.168.0.5
- rmi_port: 10050) => {
"item": " - hostname: host\n - ipaddress: 192.168.0.1\n - rmi_port:
10010 - hostname: host\n - ipaddress: 192.168.0.2\n - rmi_port: 10020 -
hostname: host\n - ipaddress: 192.168.0.3\n - rmi_port: 10030 - hostname:
host\n - ipaddress: 192.168.0.4\n - rmi_port: 10040 - hostname: host\n -
ipaddress: 192.168.0.5\n - rmi_port: 10050"
}
TASK: [debug var=item.hostname]
***********************************************
fatal: [127.0.0.1] => with_dict expects a dict
FATAL: all hosts have already failed -- aborting
PLAY RECAP
********************************************************************
to retry, use: --limit @/tmp/test.retry
127.0.0.1 : ok=2 changed=0 unreachable=1 failed=0
Any thoughts / assistance would be appreciated.
cheers,
Anth
--
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/a3ef549a-441b-464f-a494-b635424b0356%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.