Home > Enterprise >  JMESPath Query in Ansible
JMESPath Query in Ansible

Time:04-13


--- EDIT ---

Partial-Solution: Messed around with the JMESPath syntax and was able to successfully get a match for the first test case (without the optional variable) using:

jmesquery: "{{ datacenter }}{{ subcategory }}.{{ refine_hosts }}.[*][].[*][][]"

I am writing an Ansible Playbook that takes a list of hosts from a network server, parses the JSON list, and finds hostnames that matches the user's input when they deploy the playbook as a Jenkin's Job through it's API.

The issue I am encountering is that I am unable to successfully query the JSON host list. Currently, I am only trying to run the following test case:

datacenter: a
subcategory: bc
refine_hosts: QA

However, the final version of this playbook should be able to take in values for datacenter, subcategory, and refine_hosts with an optional input value of host_type. An example test case including the optional input value would be the following:

datacenter: a
subcategory: bc
refine_hosts: QA
host_type: WEBSITE

In my playbook, I am using JMESPath within the following task:

- name: Build HOSTS list
  set_fact:
    hosts_list: "{{ jsondata | json_query(jmesquery) }}"
  vars:
    jmesquery: '%           
  • Related