Personally I would have done this like this (but you may have reasons
for arranging it differently)...
defaults/main.yml:-
---
nodes:
- name: node1
ip: 1.1.1.1
- name: node2
ip: 2.2.2.2
- name: node3
ip: 3.3.3.3
Then the template something like
address={% for node in nodes %}
{{ node.ip}}
{% if not loop.last %},{% endif %}
{% endfor %}
All untested (sorry!)
Nigel.
> David Fazeli <mailto:[email protected]>
> 23 February 2018 at 12:28
> Please explain to me how can I fix this problem? i have this
> file |defaults/main.yml|
>
> ||
> |---
> node1:
> ip:1.1.1.1
>
> node2:
> ip:2.2.2.2
>
> node3:
> ip:3.3.3.3|
>
> Now, I want in template file |ip.j2| by |for loop| access the IPs of
> each server and save in |address| |variable|
>
> Like this:
>
>
> |address= 1.1.1.1,2.2.2.2,3.3.3.3|
>
> |
> |
>
> I tried this code:
>
>
> ||
> |address={%forx in{{nubmer_nodes}}%}
> {{node[x].ip}}
> {%ifloop.last%},{%endif %}
> {%endfor %}
> |
> |
> |
>
>
> But an error occurs. How should I do this?
>
>
> *Error* :
>
>
> ||
> |TASK
> [GatheringFacts]*********************************************************************
>
> ok:[db2]
> ok:[db3]
> ok:[db1]
>
> TASK [ssh :--myloop
> --]*************************************************************************
>
> fatal:[db1]:FAILED!=>{"changed":false,"msg":"AnsibleError: template
> error while templating string: expected token ':', got '}'. String:
> \r\naddress={% for x in {{number_nodes}} %}\r\n{{node[x].ip}}\r\n{% if
> loop.last %},{% endif %}\r\n{% endfor %}"}
> fatal:[db2]:FAILED!=>{"changed":false,"msg":"AnsibleError: template
> error while templating string: expected token ':', got '}'. String:
> \r\naddress={% for x in {{number_nodes}} %}\r\n{{node[x].ip}}\r\n{% if
> loop.last %},{% endif %}\r\n{% endfor %}"}
> fatal:[db3]:FAILED!=>{"changed":false,"msg":"AnsibleError: template
> error while templating string: expected token ':', got '}'. String:
> \r\naddress={% for x in {{number_nodes}} %}\r\n{{node[x].ip}}\r\n{% if
> loop.last %},{% endif %}\r\n{% endfor %}"}
> to retry,use:--limit @/etc/ansible/playbooks/get_ip_ssh.retry
>
> PLAY RECAP ********************************************************
>
> db1 :ok=1 changed=0 unreachable=0 failed=1
> db2 :ok=1 changed=0 unreachable=0 failed=1
> db3 :ok=1 changed=0 unreachable=0 failed=1
> |
> |
> |
>
>
>
>
>
>
>
>
>
> --
> 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]
> <mailto:[email protected]>.
> To post to this group, send email to [email protected]
> <mailto:[email protected]>.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/ansible-project/17069ac9-16f3-40f4-ae59-dbeaadc10133%40googlegroups.com
> <https://groups.google.com/d/msgid/ansible-project/17069ac9-16f3-40f4-ae59-dbeaadc10133%40googlegroups.com?utm_medium=email&utm_source=footer>.
> For more options, visit https://groups.google.com/d/optout.
--
[ Nigel Metheringham ------------------------------ [email protected] ]
[ Ellipsis Intangible Technologies ]
--
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/5A902B41.1060408%40dotdot.it.
For more options, visit https://groups.google.com/d/optout.