Я пытаюсь разработать сборник пьес, если у меня есть следующая переменная.
disk_vars:
- { Unit: C, Size: 50 }
- { Unit: D, Size: 50 }
С переменными, определенными в пьесе, проблем нет, но когда я пытаюсь использовать опрос texarea на Ansible Tower, я не могу разобрать их как список словарей.
Я попытался добавить к опросу следующие две строки, которые уже имеют формат yaml.
- { Unit: C, Size: 50 }
- { Unit: D, Size: 50 }
И в моем разделе vars я использую test_var: "{{test_var1.split ('\ n')}} который преобразует выходные данные в строку из двух строк. Без разбиения это просто строка из одной строки.
Я мог бы заставить мою пьесу работать с простым словарем вроде
dict1: {{ Unit: C, Size: 50 }}
, но я также возникают проблемы при его разборе.
РЕДАКТИРОВАТЬ
Изменение его на следующее, как предложено mdaniels works.
- set_fact:
test_var: "{{ test_var1 | from_yaml }}"
- name: test
debug: msg=" hostname is {{ item.Unit }} and {{ item.Size }}"
with_items:
- "{{ test_var }}"
Я пытаюсь придумать способ прояснить ввод данных, так как просить пользователей уважать формат, не очень хорошая идея.
попытался изменить дату ввода на следующую, но я не мог понять, как отформатировать это в список словарей.
disk_vars:
Unit: C, Size: 50
Unit: D, Size: 50
* 102 7 * Я попытался использовать следующий фрагмент кода
- set_fact:
db_list: >-
{{ test_var1.split("\n") | select |
map("regex_replace", "^", "- {") |
map("regex_replace", "$", "}") |
join("\n") }}
Но помещаю все это в одну строку.
"db_list": "- {dbid: 1, dbname: abc\ndbid: 2, dbname: xyz} "
Я пытался поиграть с ним, но не смог заставить это работать.