L'opzione run_once verrà eseguita ogni volta che si esegue il Playbook/attività, ma verrà eseguito solo una volta durante l'esecuzione specifica stessa. Quindi, ogni volta che esegui il gioco, verrà eseguito, ma solo sul primo host nell'elenco. Se stai cercando un modo per eseguire solo quel comando una volta, punto, dovrai usare l'argomento crea. Usando il tuo esempio, questo può essere realizzato utilizzando la seguente -
- name: apt update
shell: apt-get update && touch /root/.aptupdated
args:
creates: /root/.aptupdated
In questo caso il file /root/.aptupdated creato. L'attività controllerà ora se esiste, e se lo fa non verrà eseguito.
Su una nota correlata se l'attività che si sta tentando di eseguire è l'aggiornamento apt-get, è possibile che si desideri utilizzare il modulo apt nativo. È quindi possibile fare qualcosa di simile -
- name: apt update
apt: update_cache=yes cache_valid_time=86400
Ora questo verrà eseguito solo se la cache è più vecchia di un giorno.
fonte
2014-10-16 16:38:10
sì- se è per 'apt', utilizzare il modulo apt. 'shell' e' command' sono fantastici ma dovrebbero essere molto più limitati nel loro uso. – tedder42