Il tuo playbook si fermerà quando si verifica un errore e lo stai utilizzando in serial: 1
base alla documentazione .
Per impostazione predefinita, Ansible continuerà a eseguire azioni fino a quando nel gruppo ci sono host che non hanno ancora fallito.
Detto questo, sembra esserci un po 'di confusione nella comunità sul comportamento di default, e sembra essere cambiato - o è stato danneggiato - tra 1.8 e 2.1.
Quindi, se serial: 1
non è sufficiente, utilizzare questa impostazione aggiuntiva:
max_failure_percentage: 0
In alcune situazioni, ad esempio con gli aggiornamenti continui sopra descritti, può essere desiderabile interrompere il gioco quando viene raggiunta una certa soglia di guasti. Per raggiungere questo obiettivo, a partire dalla versione 1.3 è possibile impostare una percentuale di errore massima ...
==
Per quanto riguarda il tentativo di ripetere il tuo playbook, dovresti visualizzare un messaggio di errore come questo:
to retry, use: --limit @/home/user/site.retry
Usa quel --limit
flag e alla tua prossima esecuzione di ansible-playbook
e continuerà da dove non è riuscito.
I file di tentativo verranno creati a meno che non sia stato impostato retry_files_enabled = False
nella configurazione.
In alternativa, --start-at-task
può anche funzionare.
fonti:
https://github.com/ansible/ansible/issues/1663
https://github.com/ansible/ansible/issues/16241
http://docs.ansible.com/ansible/playbooks_delegation.html#rolling-update-batch-size
http://docs.ansible.com/ansible/playbooks_delegation.html#maximum-failure-percentage
http://docs.ansible.com/ansible/intro_configuration.html#retry-files-enabled
http://docs.ansible.com/ansible/playbooks_startnstep.html#start-at-task