Võimalik ignoreerimise viga

Voimalik Ignoreerimise Viga



Ülesande konfigureerimisel teises hostseadmes on võimalikud vead tavaline nähtus. Need esindavad ainulaadseid ja võib-olla olulisi süsteemi olekuid. Sellele vaatamata võib esineda vigu, mida soovime vältida, et ka ülesanded käivituksid ja näitaksid väljundit, kui need on edukalt täidetud. Selles artiklis räägime Ansible'i vigadest ja nende tähelepanuta jätmisest. Näitame konkreetselt tehnikat, kuidas Ansible abil tõrkeid maha suruda ja ignoreerida.

Erinevalt vigade parandamisest eeldab tõrgete vältimine ülesannete jätkamist nii palju, kui see ei mõjuta Ansible mänguraamatus kirjeldatud tegevust. Võimalik tööriist väljastab hoiatusteate, kui see ei saa ülesande silumise ajal ülesannet või käsiraamatut lõpetada. Põhjuseid on mitu, kuid meie ülesanne on need tuvastada ja lahendus leida. Kahjuks ei saa kõiki vigu parandada. Võite hakata vigu ignoreerima, kui te seda ei soovi või kui te ei saa probleemi lahendada.







Suurem osa Ansible'i halduritest kasutab seda strateegiat, luues reaalses olukorras sihthostitega ühenduse. Võimalik, et vaikimisi peatatakse tegevused sihtseadmes ja jätkatakse tegevusi mõnes teises serveris, kui see tagastab avaldusest või paketi veast nullist erineva tagastatud tulemuse. Siiski on teatud olukordi, kus võiksite käituda teisiti. Tagastatud tulemus, mis ei ole null, tähistab aeg-ajalt edenemist. Sageli võite soovida, et töötlemine peatuks ühes serveris, nii et see peatuks kõigis hostides.



Ansible'i vigade ignoreerimise viisid

Ansibles kasutatakse käsiraamatu ülesannete täitmiseks erinevaid viise, kui see näitab ülesande ebaõnnestumist. Järgmised on erinevad viisid, mis aitavad ülesannet täita isegi siis, kui Ansible näitab vigu.



1. Ignore_Errors=True käsu kasutamine





Isegi kui ülesanne ebaõnnestub, jätkab esitusraamatu täitmist, kui määrate tegevuse allosas käsu ignore_errors=true. Hoolimata sellest, et ta hoolib ülesande täitmisest või ebaõnnestumistest, viib ta siiski läbi järgneva tegevuse. Kui tegevus kuidagi ebaõnnestub, liigub see järgmise juurde. Kui tegevus on edukas, lõpetab see pärast seda protsessi.

2. Ansible'i kontrollirežiimi kasutamine



Kasutage Boole'i ​​erimuutujaid, Ansible kontrollrežiimi, mis on määratud tõeseks, kui Ansible on kontrollimeetodis, et ülesandest mööda hiilida või ülesande tõrkeid eirata, kui kasutatakse Ansible kontrollimeetodi versiooni.

3. Utiliizing the Failed=When Command in Ansible Playbook

Ansible'is saame kasutada ka faili failed_when tingimust, et määrata iga tegevuse jaoks ette nähtud ebaõnnestumine. Sarnaselt kõikidele Ansible tingimuslausetele on arvukate failed_when kriteeriumide loendid kombineeritud kaudse kriteeriumiga. Seega ebaõnnestub ülesanne ainult siis, kui kõik tingimused on täidetud.

Eeltingimused Ansible'i vigade ignoreerimiseks

Konkreetse näite lisamiseks peab Ansible konfiguratsioonitööriist vastama vajalikele kriteeriumidele:

  • Ansible põhiserver või võib öelda, et juhtserver on vajalik selleks, et saaksime sihtseadmes käske konfigureerida.
  • Meil peavad olema kohalikud hostid, et saaksime nendega ühendust võtta ja kasutada erinevaid viise Ansible'i tarkvara vigade ignoreerimiseks. Sel juhul kasutame tegevuse kestel sihtkaugserverina kohalikku hosti.
  • Kirjutame käsiraamatuid, käivitame Ansible ignore errori käsud ja kasutame ansible-kontrolleri seadet, et jälgida tulemusi kaugetes hostides.

Et aidata õppijal mõista Ansible mänguraamatu ignoreerimisvea kasutamise põhimõtet, rakendame järgmist näidet.

Näide: käsu Ignore_Errors=True kasutamine

See on lihtsaim näide, mis kasutab Ansible'i juurutamiseks, kus me kaasame käsiraamatusse mitu ülesannet ja täidame ülesanded ignore errori käsuga. Selleks kirjutame esmalt Ansible terminali järgmise koodi:

[ juur @ meister võimalik ] # nano ignore_errors.yml

Pärast mänguraamatu ignore_errors.yml loomist ja käivitamist hakkame nüüd käske mänguraamatusse sisestama. Esiteks kasutame valikut 'hostid', edastades kaasasolevad hostid kui 'localhost'. Sisestame argumendisse „faktide kogumine” väärtuse „vale”, et me ei saaks mänguraamatu käitamisel kohaliku hosti kohta lisateavet.

Pärast seda hakkame loendama iga ülesannet, mida soovime täita, valiku „ülesanded” all. Esimeses ülesandes kuvame Ansible kataloogis olematu dokumendi. Esiteks anname edasi ülesande pealkirja, mida soovime rakendada. Seejärel kasutame käsuvalikut ja salvestame olematu tekstidokumendi ning kasutame “ls”, et saaksime käsu esimeses ülesandes täita. Pärast esimest ülesannet kasutame käsku ignore_errors=true, nii et kui ignore-lause kohal oleval ülesandel on tõrge, siis see ignoreerib ülesannet ja liigub järgmise ülesande juurde ja täidab selle.

Loetleme veel ühe kasutatud ülesande. Kui esimene ülesanne ebaõnnestub, peab Ansible tööriist täitma järgmise ülesande. Seejärel kasutame käsiraamatus ülesande käivitamiseks silumisparameetrit.

- hosts: localhost
collection_facts: vale
ülesanded:
- nimi: loetlege olematu faili
käsk: ls olematu.txt
ignore_errors: tõsi

- nimi: jätka ülesanne pärast ebaõnnestumist
silumine:
sõnum: 'Jätkake ülesannet pärast ebaõnnestumist'

Nüüd loetleme piisavalt täitmiseks vajalikke ülesandeid ja kontrollime käsku ignoreeri tõrke. Nüüd lõpetame mänguraamatu ja läheme tagasi põhiterminali. Pärast seda juhime mänguraamatut. Selleks kasutame järgmist avaldust:

[ juur @ meister võimalik ] # ansible-playbook ignore_errors.yml

Pärast eelnimetatud käsu täitmist saame järgmise väljundi. Nagu näete, näitab esimene ülesanne, mis loetleb olematu faili, ebaõnnestumist. Kuid teine ​​ülesanne täidetakse edukalt, kuna me ignoreerisime esimest ülesannet, kasutades mänguraamatus parameetrit ignore_error=true.

Järeldus

Saime teada, mida tähendab Ansible'i ignoreerimise viga. Arutasime selle toimimist Ansible mänguraamatus. Arutasime ka erinevaid viise, kuidas ülesannete täitmisel Ansible'i viga ignoreerida. Rakendasime näite, et iga mõiste oleks kasutajale selge.