Wie kann ich den Inhalt einer Variablen auf das Ergebnis eines HTTP-Aufrufs setzen?

Wie kann ich den Inhalt einer Variablen auf das Ergebnis eines HTTP-Aufrufs setzen?

Ich versuche, Artifactory abzufragen, um die neueste Version zu finden, die einem bestimmten Glob-Muster entspricht. Ich möchte die Ausgabe davon auf eine Variable setzen, die ich später mit dem maven_artifactModul verwenden kann. Ich dachte an eine Suche, aber diese wird auf der Controller-Maschine durchgeführt.

get_urlIch habe folgendes verwendet :

- 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

Jetzt muss ich nur noch {{ app_dir }}/versionin eine Variable gelangen.

Antwort1

Sie können das uriModul auch folgendermaßen verwenden:

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

Antwort2

Ok, verstanden. Mit demBefehlsmodulIch konnte catdie Datei öffnen, um den Inhalt der heruntergeladenen Datei einlesen zu können.

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

verwandte Informationen