I have a playbook where I am using csv file to create a vars file. The for
loop iterates through the csvfile, skips the first title line then splits
each line into a list. Works fine, but I was hoping to instead of skipping
the title line, to pull out the names and use as the variable name instead
of hard coding the names like Type, Hostname, etc. This would allow me to
input csv files that have different title names and more or less names.
csv file example:
Type,Hostname,IP_Address,Gateway,DNS_Server,NTP_Server
ubuntu,lab1,10.1.1.1,10.1.1.254,192.168.1.254.192.168.1.253
centos,lab2,10.1.1.2,10.1.1.254,192.168.1.254.192.168.1.253
rhel6,lab3,10.1.1.3,10.1.1.254,192.168.1.254.192.168.1.253
rhel7,lab4,10.1.1.4,10.1.1.254,192.168.1.254.192.168.1.253
loop code:
---
servers:
{% for item in csvfile.split("\n") %}
{% if loop.index != 1 %}
{% set list = item.split(",") %}
{{ list[1]|trim() }}:
Type: {{ list[0]|trim() }}
Hostname: {{ list[1]|trim() }}
IP_Address: {{ list[2]|trim() }}
Gateway: {{ list[3]|trim() }}
DNS_Server: {{ list[4]|trim() }}
NTP_Server: {{ list[22]|trim() }}
{% endif %}
{% endfor %}
Question I have is, how would I pull out loop.index. 1 and use the title
names as variables? Something like this:
{{ title. }}: {{ list[0]|trim() }}
{{ title. }}: {{ list[1]|trim() }}
{{ title }}: {{ list[2]|trim() }}
{{ title }}: {{ list[3]|trim() }}
{{ title }}: {{ list[4]|trim() }}
{{ title }}: {{ list[22]|trim() }}
--
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/95536341-de1e-4871-8f22-4a10029108ca%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.