Ansible Ignore Error

Ansible Ignore Error



În timpul configurării sarcinii pe un alt dispozitiv gazdă, erorile Ansible sunt o apariție frecventă. Ele reprezintă stări de sistem unice și posibil semnificative. În ciuda acestui fapt, pot exista unele erori pe care dorim să le evităm, astfel încât sarcinile să se execute și să arate rezultatul dacă sunt executate cu succes. În acest articol, vom vorbi despre erorile Ansible și despre cum să le ignorăm. Demonstrăm în mod special o tehnică pentru a suprima și a ignora eșecurile cu Ansible.

Spre deosebire de remedierea erorilor, evitarea eșecurilor presupune continuarea sarcinilor atât de mult cât activitatea din manualul Ansible este neafectată. Instrumentul ansible emite un mesaj de avertizare atunci când nu poate finaliza o sarcină sau un manual în timp ce depanează o sarcină. Există mai multe cauze, dar depinde de noi să le identificăm și să găsim o soluție. Din păcate, nu toate erorile pot fi remediate. Puteți alege să începeți să ignorați erorile dacă nu doriți sau dacă nu puteți rezolva problema.







Majoritatea celor care controlează managerii din Ansible folosesc această strategie în timp ce se conectează cu gazdele țintă în scenarii din lumea reală. Ansible are în mod prestabilit oprirea activităților pe un dispozitiv țintă și continuarea activităților pe alte servere ori de câte ori returnează un rezultat returnat diferit de zero dintr-o declarație sau dintr-o eroare dintr-un pachet. Cu toate acestea, există anumite situații în care ați putea dori să acționați diferit. Un rezultat returnat care nu este zero indică ocazional progres. Deseori, este posibil să doriți ca procesarea să se oprească pe un server, astfel încât să se oprească pe toate gazdele.



Modalități de ignorare a erorilor din Ansible

În Ansible, sunt folosite diferite moduri pentru a efectua sarcinile din manual dacă arată eșecul sarcinii. Următoarele sunt moduri diferite care vor ajuta la executarea sarcinii chiar dacă Ansible arată erori:



1. Folosind comanda Ignore_Errors=True





Chiar dacă sarcina continuă să eșueze, playbook-ul continuă să se execute dacă specificați comanda ignore_errors=true în partea de jos a activității. În ciuda faptului că îi pasă de finalizarea sarcinii sau de eșecuri, acesta desfășoară în continuare activitatea ulterioară. Dacă cumva activitatea nu are succes, se trece la următoarea. Dacă activitatea are succes, se încheie un proces după aceea.

2. Utilizarea modului de verificare în Ansible



Utilizați variabilele speciale booleene, modul de verificare Ansible, care este definit la True odată ce Ansible este în metoda de verificare pentru a ocoli o sarcină sau a ignora eșecurile unei sarcini ori de câte ori este utilizată versiunea metodei de verificare a Ansible.

3. Utilizarea comenzii Failed=When din Ansible Playbook

În Ansible, putem folosi și condiționalul failed_when pentru a specifica orice „eșec” este implicat pentru fiecare activitate. Similar tuturor instrucțiunilor condiționate Ansible, listele numeroaselor criterii failed_when sunt combinate cu un implicit. Deci, sarcina eșuează numai dacă toate condițiile sunt îndeplinite.

Cerințe preliminare pentru a ignora erorile din Ansible

Instrumentul de configurare Ansible trebuie să respecte criteriile necesare pentru a include exemplul concret:

  • Un server principal Ansible sau putem spune că este necesar un server de control pentru a putea configura comenzile pe dispozitivul țintă.
  • Trebuie să avem gazdele locale, astfel încât să le putem contacta pe fiecare dintre ele pentru a folosi diferitele modalități de ignorare erori din software-ul Ansible. Folosim gazda locală în acest caz ca server țintă la distanță pe durata activității.
  • Scriem manualele, rulăm comenzile Ansible ignore error și folosim dispozitivul ansible-controller pentru a urmări rezultatele pe gazde îndepărtate.

Pentru a ajuta cursantul să înțeleagă principiul utilizării erorii de ignorare într-un manual Ansible, să implementăm următorul exemplu:

Exemplu: Utilizarea comenzii Ignore_Errors=True

Acesta este cel mai simplu exemplu care folosește Ansible pentru implementare în care includem mai multe sarcini în manual și executăm sarcinile folosind comanda ignora eroare. Pentru a face acest lucru, scriem mai întâi următorul cod în terminalul Ansible:

[ rădăcină @ maestru ansible ] # nano ignore_errors.yml

După crearea și lansarea playbook-ului ignore_errors.yml, începem acum să introducem comenzile în playbook. În primul rând, folosim opțiunea „gazde”, trecând gazdele furnizate drept „localhost”. Introducem valoarea „falsă” în argumentul „adună fapte”, astfel încât să nu putem obține informații suplimentare despre gazda locală atunci când rulăm playbook-ul.

După aceea, începem să listăm fiecare sarcină pe care dorim să o îndeplinim sub opțiunea „sarcini”. În prima sarcină, afișăm documentul care este inexistent în directorul Ansible. În primul rând, trecem titlul sarcinii pe care dorim să o implementăm. Apoi, folosim opțiunea de comandă și stocăm documentul text inexistent și folosim „ls” pentru a putea executa comanda în prima sarcină. După prima sarcină, folosim comanda ignore_errors=true, astfel încât, dacă sarcina de deasupra instrucțiunii ignore are un eșec, ignoră sarcina și trece la următoarea sarcină și o execută.

Enumerăm o altă sarcină care este folosită. Dacă prima sarcină eșuează, instrumentul Ansible trebuie să execute următoarea sarcină. Apoi, folosim parametrul de depanare pentru a rula sarcina din playbook.

- gazde: localhost
gather_facts: fals
sarcini:
- nume: enumerați un inexistent fişier
comanda: ls inexistent.txt
ignore_errors: Adevărat

- Nume: continua sarcină după ce a eșuat
depanare:
mesaj: „Continuați sarcina după eșec”

Acum, listăm suficiente sarcini pentru a executa și verifica comanda ignorare eroare. Acum, încheiem playbook-ul și revenim la terminalul principal. După aceea, rulăm playbook-ul. Pentru aceasta, folosim următoarea afirmație:

[ rădăcină @ maestru ansible ] # ansible-playbook ignore_errors.yml

După executarea comenzii menționate mai sus, obținem următoarea ieșire. După cum vedeți, prima sarcină care listează un fișier inexistent arată un eșec. Dar a doua sarcină este executată cu succes, deoarece am ignorat prima sarcină utilizând ignore_error=true din manualul de joc.

Concluzie

Am aflat ce înseamnă eroarea de ignorare în Ansible. Am discutat despre modul în care funcționează în manualul Ansible. De asemenea, am discutat despre diferitele moduri de ignorare a erorii în Ansible în timpul executării sarcinilor. Am implementat un exemplu, astfel încât fiecare concept să fie clar pentru utilizator.