Ansible Ignora errore

Ansible Ignora Errore



Durante la configurazione dell'attività su un altro dispositivo host, gli errori Ansible sono un evento comune. Rappresentano stati di sistema unici e possibilmente significativi. Nonostante ciò, potrebbero esserci alcuni errori che vogliamo evitare in modo che anche le attività vengano eseguite e mostrino l'output se vengono eseguite correttamente. In questo articolo parleremo degli errori di Ansible e di come ignorarli. Dimostriamo specificamente una tecnica per sopprimere e ignorare i fallimenti con Ansible.

Contrariamente alla correzione degli errori, evitare errori implica continuare con le attività tanto quanto l'attività nel playbook Ansible non ne risente. Lo strumento ansible emette un messaggio di avviso quando non riesce a completare un'attività o un playbook durante il debug di un'attività. Esistono diverse cause, ma sta a noi identificarle e trovare una soluzione. Sfortunatamente, non tutti gli errori possono essere corretti. Puoi scegliere di iniziare a ignorare gli errori se non vuoi o se non sei in grado di risolvere il problema.







La maggior parte dei gestori di controllo in Ansible utilizza questa strategia mentre si collega con gli host di destinazione in scenari reali. Per impostazione predefinita, Ansible interrompe le attività su un dispositivo di destinazione e continua le attività su alcuni altri server ogni volta che restituisce un risultato restituito diverso da zero da un'istruzione o un errore da un pacchetto. Tuttavia, ci sono alcune situazioni in cui potresti voler agire in modo diverso. Un risultato restituito diverso da zero occasionalmente denota un progresso. Spesso, potresti voler interrompere l'elaborazione su un server in modo che si interrompa su tutti gli host.



Modi per ignorare gli errori in Ansible

In Ansible, vengono utilizzati diversi modi per eseguire le attività del playbook se mostra il fallimento dell'attività. Di seguito sono riportati i diversi modi che aiuteranno a eseguire l'attività anche se Ansible mostra errori:



1. Utilizzo del comando Ignore_Errors=True





Anche se l'attività continua a non riuscire, il playbook continua a essere eseguito se specifichi il comando ignore_errors=true nella parte inferiore dell'attività. Nonostante si preoccupi del completamento dell'attività o dei fallimenti, svolge comunque l'attività successiva. Se in qualche modo l'attività non ha successo, passa a quella successiva. Se l'attività ha successo, completa un processo successivo.

2. Utilizzo della modalità di verifica in Ansible



Utilizza le variabili speciali booleane, la modalità di controllo di Ansible, che viene definita su True una volta che Ansible si trova nel metodo di controllo per ignorare un'attività o ignorare gli errori di un'attività ogni volta che viene utilizzata la versione del metodo di controllo di Ansible.

3. Utilizzo del comando Failed=When in Ansible Playbook

In Ansible, possiamo anche utilizzare il fail_when condizionale per specificare qualunque 'fallimento' sia implicito per ogni attività. Analogamente a tutte le istruzioni condizionali Ansible, gli elenchi di numerosi criteri failed_when sono combinati con un implicito. Quindi, l'attività fallisce solo se tutte le condizioni sono soddisfatte.

Prerequisiti per ignorare gli errori in Ansible

Lo strumento di configurazione di Ansible deve rispettare i criteri necessari per includere l'esempio concreto:

  • Un server principale Ansible o possiamo dire che un server di controllo è necessario in modo da poter configurare i comandi sul dispositivo di destinazione.
  • Abbiamo bisogno di avere gli host locali in modo da poter contattare ciascuno di loro per utilizzare i diversi modi di ignorare gli errori nel software Ansible. Utilizziamo l'host locale in questa istanza come server remoto di destinazione per la durata dell'attività.
  • Scriviamo i playbook, eseguiamo i comandi Ansible ignore error e utilizziamo il dispositivo ansible-controller per tenere traccia dei risultati su host distanti.

Per aiutare lo studente a comprendere il principio dell'utilizzo dell'errore di ignoranza in un playbook Ansible, implementiamo il seguente esempio:

Esempio: utilizzo del comando Ignore_Errors=True

Questo è l'esempio più semplice che utilizza Ansible per l'implementazione in cui includiamo diverse attività nel playbook ed eseguiamo le attività utilizzando il comando ignore error. Per fare ciò, scriviamo prima il seguente codice nel terminale Ansible:

[ radice @ maestro ansible ] # nano ignore_errors.yml

Dopo la creazione e l'avvio del playbook ignore_errors.yml, iniziamo ora a inserire i comandi nel playbook. Innanzitutto, usiamo l'opzione 'hosts', passando gli host forniti come 'localhost'. Inseriamo il valore 'falso' nell'argomento 'raccogli fatti' in modo da non essere in grado di ottenere ulteriori informazioni sull'host locale quando eseguiamo il playbook.

Successivamente, iniziamo a elencare ogni attività che desideriamo completare sotto l'opzione 'attività'. Nella prima attività, visualizziamo il documento che non esiste nella directory Ansible. Innanzitutto, passiamo il titolo dell'attività che vogliamo implementare. Quindi, usiamo l'opzione di comando e memorizziamo il documento di testo inesistente e usiamo 'ls' in modo da poter eseguire il comando nella prima attività. Dopo la prima attività, usiamo il comando ignore_errors=true in modo che se l'attività sopra l'istruzione ignore ha un errore, ignora l'attività e passa all'attività successiva e la esegue.

Elenchiamo un'altra attività che viene utilizzata. Se la prima attività fallisce, lo strumento Ansible deve eseguire l'attività successiva. Quindi, usiamo il parametro debug per eseguire l'attività nel playbook.

- host: host locale
raccogli_fatti: falso
compiti:
- name: Elenco inesistente file
comando: ls inesistente.txt
ignore_errors: VERO

- nome: Continua compito dopo aver fallito
eseguire il debug:
messaggio: 'Continua l'attività dopo il fallimento'

Ora elenchiamo un numero sufficiente di attività da eseguire e controlliamo il comando ignore error. Ora terminiamo il playbook e torniamo al terminale principale. Successivamente, eseguiamo il playbook. Per questo, usiamo la seguente dichiarazione:

[ radice @ maestro ansible ] # ansible-playbook ignore_errors.yml

Dopo aver eseguito il comando di cui sopra, otteniamo il seguente output. Come vedi, la prima attività che elenca un file inesistente mostra un errore. Ma la seconda attività viene eseguita correttamente perché abbiamo ignorato la prima attività utilizzando ignore_error=true nel playbook.

Conclusione

Abbiamo imparato cosa significa l'errore di ignoranza in Ansible. Abbiamo discusso di come funziona nel playbook di Ansible. Abbiamo anche discusso dei diversi modi per ignorare l'errore in Ansible durante l'esecuzione delle attività. Abbiamo implementato un esempio in modo che ogni concetto sia chiaro per l'utente.