Как установить содержимое переменной в соответствии с результатом HTTP-вызова?

Как установить содержимое переменной в соответствии с результатом HTTP-вызова?

Я пытаюсь запросить artifactory, чтобы найти последнюю версию, соответствующую заданному шаблону glob. Я хотел бы установить вывод этого в переменную, которую я позже смогу использовать с модулем maven_artifact. Я думал о поиске, но это выполняется на машине контроллера.

Используя get_urlя имею следующее:

- name: Get App Version
  get_url:
    url: "{{ artifactory_search }}?g=com.test.app&a=my-app&v=*qa*&repos=libs-release-local"
    dest: "{{ app_dir }}/version"
  tags:
  - testing

Так что теперь мне просто нужно перейти {{ app_dir }}/versionк переменной.

решение1

Вы также можете использовать uriмодуль следующим образом:

- name: Fetch instance metadata
  uri:
    url: http://169.254.169.254/path/to/ip_address
    return_content: yes
  register: jsondata

- debug: msg="Operating on instance {{ jsondata['content'] }}"

решение2

Хорошо, понял. Используякомандный модульМне удалось получить доступ к catфайлу и прочитать его содержимое.

- name: Get App Version
  get_url:
    url: "{{ artifactory_search }}?g=com.test.app&a=my-app&v=*qa*&repos=libs-release-local"
    dest: "{{ app_dir }}/version"
- name: Read App Version
  command: cat {{ app_dir }}/version
  register: app_version
- debug:
    msg: "App Version {{ app_version.stdout }}"

Связанный контент