Jinja — Как Получить Хосты Из Определенного Раздела Файла Hosts Ansible В Шаблоне Jinja2?

  • Автор темы Александр5968
  • Обновлено
  • 21, Oct 2024
  • #1

У меня есть

{% for host in some_sort_of_ansible_magic_to_get_me_that_list_i_need %}

"{{ host }}"{% if not loop.last %},{% endif %}
{% endfor %}
file including the following contents

{{ some_ansible_magic_here }}

# should output "host1","host2","host3"

В

[elasticsearch_nodes]
template I want to get the the list of
.j2

[elasticsearch_nodes]
host1 os=linux
host2 os=linux
host3 os=linux

Как мне это сделать?

У меня тоже есть это, чтобы помочь с кавычками и запятыми, когда у меня есть список.

hosts

#ансибль #джинджа

Александр5968


Рег
26 Apr, 2011

Тем
77

Постов
176

Баллов
601
  • 25, Oct 2024
  • #2

Магия, которая вам нужна, это магические переменные, в частности

{{ groups['elasticsearch_nodes']|map('regex_replace', '(.*)', '"\\1"')|join(',') }}
variable, который

словарь/карта со всеми группами в инвентаре, и каждая группа имеет список принадлежащих ей хостов.

Затем вы можете использовать шаблон фильтры чтобы отформатировать список: используйте

join
with
regex_replace
добавить кавычки ко всем элементам списка, а затем
map
them into the final result.

groups
 

Siis4


Рег
07 Jul, 2011

Тем
97

Постов
223

Баллов
758
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно