Sto provando a filtrare una lista in Jinya2 non disponibile quando gli elementi contengono una stringa, ma la documentazione di Jinja non mi sembra abbastanza chiara per capirlo.La lista dei filtri Jinja2 usando la stringa contiene test
Questo è quello che ho finora:
- 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\") }}"
Ma tutto quello che ottiene è l'errore:
"<generator object _select_or_reject at 0x13851e0>": "VARIABLE IS NOT DEFINED!"
Così, per esempio, se stdout_lines
contiene ["apples","running script one","oranges","running script two"]
, voglio stampare
running script one
running script two
Hanno documentation for select e documentation for built-in-tests, ma non mostrano il test "in" e non so come funzionano nel contesto di questa variabile ansible.
Ho provato a risolvere in questo modo:
- name: display run info
debug:
var: item
with_items: "{{script_results.stdout_lines}}"
when: "'running script' in item"
Ma che visualizza "saltare" per ogni linea che non superano il test ... un pò sconfiggendo lo scopo!
Questa stampa una riga per ogni saltati voce, che sconfigge purtroppo lo scopo. – CorayThan