Рейтинг:0

Замените заполнитель списка на Ansible

флаг th

У меня есть очень простой ansible playbook, который выглядит следующим образом:

- хосты: мой хост
  задачи:
  - include_vars:
      файл: ./resolved.yml

  - имя: разрешить заполнители
    тэги: разрешение
    шаблон:
      источник: "./placeholders.yml"
      место назначения: "/tmp/res.yml"

Учитывая следующий YAML с заполнителями:

---
тестовое задание:
  конфигурация: {{ prop.resolveme }}

и следующий секретный файл YAML:

---
опора:
  разрешение:
    - 8.8.8.8
    - 1.1.1.1
    - 192.168.0.1

Результирующий разрешенный файл YAML выглядит следующим образом:

---
тестовое задание:
  конфигурация: [u'8.8.8.8', u'1.1.1.1', u'192.168.0.1']

(Примечание: если я просто использую список, разделенный запятыми, он работает так, как задумано).

Почему это происходит? Я не могу найти ничего в спецификации YAML, объясняющей такое поведение, поэтому я думаю, что это должно быть что-то, что делает синтаксический анализатор Ansible (кажется, связанный с юникодом?). Можно ли получить предполагаемую структуру списка с помощью интерполяции параметров Ansible, или мне следует предпочесть списки элементов, разделенных запятыми?

Рейтинг:1
флаг br

Я не могу воспроизвести вашу проблему в Linux и доступный [ядро 2.11.6] с версия питона = 3.8.5 и версия джиндзя = 3.0.1. Попробуйте явное преобразование в нить. Шаблон ниже

---
тестовое задание:
  конфигурация: {{ prop.resolveme }}
  конфигурация: {{ prop.resolveme|карта('строка') }}

дает

---
тестовое задание:
  конфигурация: ['8.8.8.8', '1.1.1.1', '192.168.0.1']
  конфигурация: ['8.8.8.8', '1.1.1.1', '192.168.0.1']

Если это не поможет, вы можете попробовать брутфорс

---
тестовое задание:
    config: [{% for i in prop.resolveme %}'{{ "%s"|format(i) }}'{% if not loop.last %}, {% endif%}{% endfor %}]

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

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