#json #rest #ansible
#json #rest #ansible
Вопрос:
Я запрашиваю REST API, чтобы предоставить мне URL-адрес загрузки для определенного элемента (это решается с помощью uri-модуля). Затем я пытаюсь использовать URL-адрес в модуле get_url, но он завершается ошибкой со следующим сообщением
FAILED! => {"msg": "template error while templating string: expected name or number. String: {{ cora_response.json.['@odata.mediaReadLink'].stdout | from_json }}"}
Как я предполагаю поместить переменную в параметр url? В настоящее время моя задача выглядит так:
- name: Download Link from REST
debug: var=cora_response.json['@odata.mediaReadLink']
- name: Download the latest Release
get_url:
url: "{{ cora_response.json.['@odata.mediaReadLink'].stdout | from_json }}"
dest: "{{ installation_path }}/install/19.3.zip"
mode: 660
Моя задача отладки показывает мне URL, который я пытаюсь использовать, однако модуль get_url терпит неудачу.
Пожалуйста, сообщите и заранее благодарим вас.
Редактировать: попробовал следующее, предложенное @al76
- name: Download the latest CH Release
get_url:
url: "{{ cora_response.json['@odata.mediaReadLink'].stdout | from_json }}"
dest: "{{ installation_path }}/install/CH19.3.zip"
mode: 660
Сообщение об ошибке:
fatal: [ln-lnxcelcon01.owo.company]: FAILED! => {"msg": "Unexpected templating type error occurred on ({{ cora_response.json['@odata.mediaReadLink'].stdout | from_json }}): expected string or buffer"}
Ответ №1:
попробуйте
url: "{{ cora_response.json['@odata.mediaReadLink'].stdout | from_json }}"
Комментарии:
1. Та же самая проблема
Ответ №2:
Слепая удача избавила меня от страданий
url: "{{ cora_response.json['@odata.mediaReadLink'] }}"