2

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?

proutray
  • 1,943
  • 3
  • 30
  • 48

1 Answers1

3

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 %}
Community
  • 1
  • 1
Zasz
  • 12,330
  • 9
  • 43
  • 63