Ich versuche, eine Liste in Ansible in Jinja2 zu filtern, wenn die Elemente eine Zeichenfolge enthalten, aber die Jinja-Dokumentation scheint nicht klar genug zu sein, um es herauszufinden.Jinja2 Filterliste mit String enthält Test
Das ist, was ich bisher habe:
- name: run script
command: /usr/tmp/run_script.py
register: script_results
- name: display run info
debug:
var: "{{script_results.stdout_lines | select(\"'running script' in script_results.stdout_lines\") }}"
Aber alles, was ich bekommen, ist der Fehler:
"<generator object _select_or_reject at 0x13851e0>": "VARIABLE IS NOT DEFINED!"
So zum Beispiel, wenn stdout_lines
["apples","running script one","oranges","running script two"]
enthält, möchte ich
running script one
running script two
Sie haben documentation for select und documentation for built-in-tests, aber sie zeigen nicht den "in" -Test an und ich weiß nicht, wie sie im Kontext dieser Variablen funktionieren.
habe ich versucht, es so zu lösen:
- name: display run info
debug:
var: item
with_items: "{{script_results.stdout_lines}}"
when: "'running script' in item"
Aber das zeigt „Überspringen“ für jede Zeile, die den Test nicht passieren ... irgendwie den Zweck zu besiegen!
Diese eine Zeile für jede druckt übersprungen Artikel, die leider den Zweck besiegt. – CorayThan