Рейтинг:0

Используйте переменную для создания ключа словаря в Ansible

флаг cn
TSG

Я пытаюсь обновить dict в hostvar, и имя ключа создается с использованием переменной (узла). Например, если «узел» равен 1, я хочу обновить hostvars['fakehost']['mydict']['localaddress1']. Вот мой код:

- name: Чтение IPv4 первого интерфейса
    add_host:
      имя: "фейкхост"
      telium: "{{ hostvars['fakehost']['mydict'] | comb ({ 'localaddress{{ node }}' : ansible_all_ipv4_addresses[0] }) }}"

Я не могу понять, как построить localaddress{{node}} с помощью ansible, жалуясь на синтаксис.

Zeitounator avatar
флаг fr
[усы не складываются](https://docs.ansible.com/ansible/latest/reference_appendices/faq.html#when-should-i-use-also-how-to-interpolate-variables-or-dynamic- имена переменных)
Рейтинг:0
флаг th

Не раскладывай усы({{ }}). Когда вы находитесь внутри выражения, вы уже находитесь в контексте Jinja и не должны использовать дополнительные разделители при доступе к переменной.

      telium: "{{ hostvars['fakehost']['mydict'] | comb ({ 'localaddress' ~ node: ansible_all_ipv4_addresses[0] }) }}

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.