Я пытаюсь определить сложную переменную структуру с шаблоном jinja2 в Ansible. Я пробовал разные решения с помощью dictsort и «if» l oop inside »для« l oop », но я не вижу никакого прогресса. Мы будем благодарны за любую помощь.
Я пытаюсь напечатать virtual_ro_id
на основе ansible_hostname
. И имена хостов server1.dc1.com & server2.dc1.com , то же самое для dc2. Файл var приведен ниже.
datacenters:
dc1:
server1:
- virtual_ro_id: "60"
server2:
- virtual_ro_id: "60"
dc2:
server1:
- virtual_ro_id: "61"
server2:
- virtual_ro_id: "61"
Вот как выглядит мой синтаксис шаблона:
{% for dc in lookup('dict', datacenters) %}
{% set dc_name=ansible_fqdn.split(.)[1] %}
{% if 'dc' == dc_name %}
ID: {{ dc.ansible_hostname.virtual_ro_id }}
{% endif %}
{% endfor %}
Обычно я получаю синтаксическую ошибку или шаблон не получает значения. Заранее спасибо.