How to create dynamic list in yaml?

别来无恙 提交于 2019-12-02 08:25:31

问题


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?


回答1:


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!