Como posso definir o conteúdo de uma variável como resultado de uma chamada HTTP?

Como posso definir o conteúdo de uma variável como resultado de uma chamada HTTP?

Estou tentando consultar o artefato para encontrar a versão mais recente que corresponda a um determinado padrão glob. Gostaria de definir a saída disso como uma variável que possa usar posteriormente com o maven_artifactmódulo. Eu estava pensando em uma pesquisa, mas isso é realizado na máquina controladora.

Usando get_urleu tenho o seguinte:

- 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

Então agora só preciso entrar {{ app_dir }}/versionem uma variável.

Responder1

Você também pode usar o urimódulo assim:

- 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'] }}"

Responder2

OK, entendi. Usando omódulo de comandoConsegui que cato arquivo pudesse ler o conteúdo do arquivo baixado.

- 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 }}"

informação relacionada