Cosa devo fare se voglio saltare l'intero loop in Ansible?Salta l'intero loop in Ansible
Secondo le linee guida,
Mentre combinando
when
conwith_items
(vedi Loops), ...when
dichiarazione viene elaborato separatamente per ciascuna voce.
In tal modo durante l'esecuzione del playbook del genere
---
- hosts: all
vars:
skip_the_loop: true
tasks:
- command: echo "{{ item }}"
with_items: [1, 2, 3]
when: not skip_the_loop
ottengo
skipping: [localhost] => (item=1)
skipping: [localhost] => (item=2)
skipping: [localhost] => (item=3)
Mentre io non voglio una condizione da controllare ogni volta.
Poi mi è venuta l'idea di utilizzare le condizioni in linea
- hosts: all
vars:
skip_the_loop: true
tasks:
- command: echo "{{ item }}"
with_items: "{{ [1, 2, 3] if not skip_the_loop else [] }}"
Sembra di risolvere il mio problema, ma poi non ottengo niente come output. E voglio solo una riga dicendo:
skipping: Loop has been skipped
Non credo che si può ottenere un risultato migliore del tuo secondo. Puoi semplicemente aggiungere una dichiarazione di debug in seguito se hai davvero bisogno di qualcosa stampato – SztupY
@SztupY, l'ho già fatto, ma comunque non è il risultato desiderato, purtroppo –
qualsiasi motivo per cui non vuoi che la condizione venga eseguita per ogni ciclo continuo? È solo a causa del brutto output, o perché i controlli condizionali richiedono molto tempo/risorse? – SztupY