2017-09-04 4 views
0

Ich muss eine Variable in einem json_query Filter übergeben.Ansible: Eine Variable in einem json_query Filter übergeben

Dieses Beispiel, mit einer Schnur befestigt ist, korrekt funktioniert (string = Tutu):

- set_fact: 
my_value_exist: "{{ my_json.json | json_query('contains(component.name,`tutu`)')}}" 

Aber ich brauche eine Variable übergeben, statt Tutu

- set_fact: 
my_value_exist: "{{ my_json.json | json_query('contains(component.name,`{{my_var}}`)')}}" 

{{my_var} } ist eine Zeichenfolge, die in einem vorherigen Schritt retreived wurde

Haben Sie die richtige Syntax, damit die Variable {{my_var}} im Parameter korrekt übergeben werden konnte?

Danke für Ihre Hilfe.

Grüße,

+0

können Sie dies versuchen: 'my_value_exist:„{{my_json.json | json_query ('enthält (component.name, 'my_var') ')}} "' –

+0

Danke für Ihre Antwort. – dbo

+0

Der Wert existiert in der JSON, aber mit dieser Syntax ist der zurückgegebene Wert gleich falsch. my_value_exit sollte wahr – dbo

Antwort

1

Verwenden Helfer Variable für eine Aufgabe:

- set_fact: 
    my_value_exist: "{{ my_json.json | json_query(qry) }}" 
    vars: 
    qry: 'contains(component.name,`{{my_var}}`' 
+0

kehre ich eine Lösung mit dieser Aufgabe gefunden: – dbo

+0

- Name: Ist mein Wert Debug existiert: var = item with_items: "{{my_json.json | json_query (my_query)}}" Vars: my_query: "enthält (component.name, {{my_var | to_json | ersetzen ('\"', \ "'}})" registrieren: my_value_exist – dbo

+0

Bitte als separate Antwort, bitte. Aber es ist ein Overkill in meine Meinung. –

Verwandte Themen