Я пытаюсь создать JSON для использования в задаче Ansible uri POST. У меня есть список «тегов»:
ok: [testserver] => {
"post_tags": [
"st_unclass_app",
"st_test_app"
]
}
И мне нужно создать строку JSON для тела метода POST для задачи URI. Список тегов составляет часть полной строки, поэтому мне нужно создать факт, который является строкой для раздела всего кода JSON. Строка должна выглядеть следующим образом:
{"tag": "st_unclass_app"}, {"tag": "st_test_app"}
Моя проблема двоякая: 1) Количество тегов будет различным, поэтому мне нужно сделать это динамическим по длине. и 2) Строка состоит из символов, относящихся к JSON, и я знаю, что мне придется перемещаться по ней.
До сих пор я не смог найти никаких полезных советов, но все еще ищу. Поиск таких вещей, как «объединить строку в список» и т. Д., Не возвращает ничего полезного.
Вот статическое задание, которое мне нужно выполнить
- name: Apply tags
uri:
url: https://{{ nsxt_host }}/api/v1/fabric/virtual-machines?action=update_tags
method: POST
user: "{{ nsxt_user }}"
password: "{{ nsxt_pass }}"
force_basic_auth: yes
validate_certs: no
headers:
Content-Type: application/json
Accept: :application/json,version=2
body: {"external_id": '{{ nsxt_record.json.results[0].external_id }}', "tags": [{"tag": "st_unclass_app"}, {"tag": "st_test_app"}]}
body_format: json
delegate_to: localhost
Я ожидаю, что оно будет выглядеть как-токак это:
- name: Apply tags
uri:
url: https://{{ nsxt_host }}/api/v1/fabric/virtual-machines?action=update_tags
method: POST
user: "{{ nsxt_user }}"
password: "{{ nsxt_pass }}"
force_basic_auth: yes
validate_certs: no
headers:
Content-Type: application/json
Accept: :application/json,version=2
body: {"external_id": '{{ nsxt_record.json.results[0].external_id }}', "tags": ['{{ nsxt_tags }}']}
body_format: json
delegate_to: localhost