Hat man in einem Task JSON als Ausgabe (etwa bei einer REST-API Abfrage) könnte man auf die Werte gleich in ansible Zugreifen, welches ebenfalls JSON für die Variablen verwendet.
Zuvor muss die Ausgabe aber in JSON umgewandelt werden. Ansible stellt dazu den Filter to_json zur Verfügung.
Nachfolgend ein simpler ansible task, welche einen heath-check per REST-API call aufruft:
| - hosts:           localhost
  tasks:
    - name:        Run healthcheck URL
      uri:
        method:    GET
        url:       "http://server.example.com:8080/rest/health-check"
        return_content: yes
        headers:
          Accept:  application/json
      register:    healthcheck_uri | 
Bei Erfolg ist die Ausgabe des Healthecks eine Antwort in JSON:
| {"status":"PASS"} | 
Nun kann man aber nicht einfach wie eine Variable darauf zugreifen; das folgende wirft einen Fehler:
| - hosts:           localhost
  tasks:
    - name:        Run healthcheck URL
      uri:
        method:    GET
        url:       "http://server.example.com:8080/rest/health-check"
        return_content: yes
        headers:
          Accept:  application/json
      register:    healthcheck_uri
 
    - debug:
        msg:       "Der health check Status ist: {{ healthcheck.status }}" | 
Denn momentan sieht ansible das noch als einen String an.
Lässt man es hingegen durch den filter to_json laufen, kann man dann normal darauf zugreifen:
| - hosts:           localhost
  tasks:
    - name:        Run healthcheck URL
      uri:
        method:    GET
        url:       "http://server.example.com:8080/rest/health-check"
        return_content: yes
        headers:
          Accept:  application/json
      register:    healthcheck_uri
 
    - set_fact:
        healthcheck: "{{ healthcheck_uri.content | from_json }}"
 
    - debug:
        msg:       "Der health check Status ist: {{ healthcheck.status }}" | 
