I am trying to render a template. I have to create a list as
host:
- '111.222.333.444'
- '555.666.777.888'
which has to be taken from another host file.
I am using something like this:
{% for host in groups['hostgroup'] %}
host: {{ host }}
{% endfor %}
What is the correct way to achieve the result?
Zasz
Assuming you wish to declare a variable in your inventory called host which contains a list of ip addresses, you can try:
host: {{ groups['hostgroup'] }}
Or you could skip declaring this variable and use {{ groups['hostgroup'] }}
directly wherever you plan to use {{ host }}
Look at add-quotes-join thread and this filter plugin if you want quotes.
EDIT:
Assuming you are rendering a template, using the ansible template
module
host:
{% for host in groups['hostgroup'] %}
- '{{ host }}'
{% endfor %}
来源:https://stackoverflow.com/questions/29704728/how-to-create-dynamic-list-in-yaml