Mahdollinen ohitusvirhe

Mahdollinen Ohitusvirhe



Kun tehtävää määritetään toisella isäntälaitteella, mahdolliset virheet ovat yleisiä. Ne edustavat ainutlaatuisia ja mahdollisesti merkittäviä järjestelmän tiloja. Tästä huolimatta saattaa esiintyä virheitä, joita haluamme välttää, jotta tehtävät myös suoritetaan ja näyttävät tulosteen, jos ne suoritetaan onnistuneesti. Tässä artikkelissa puhumme mahdollisista virheistä ja niiden huomiotta jättämisestä. Esittelemme erityisesti tekniikan, jolla Ansiblen avulla estetään ja jätetään huomioimatta epäonnistumiset.

Toisin kuin virheiden korjaaminen, epäonnistumisten välttäminen edellyttää tehtävien jatkamista niin paljon kuin Ansible-pelikirjan toimintaan ei vaikuteta. Mahdollinen työkalu antaa varoitusviestin, kun se ei voi suorittaa tehtävää tai ohjekirjaa tehtävän virheenkorjauksen aikana. Syitä on useita, mutta meidän tehtävämme on tunnistaa ne ja löytää ratkaisu. Valitettavasti kaikkia virheitä ei voida korjata. Voit jättää virheet huomiotta, jos et halua tai et pysty ratkaisemaan ongelmaa.







Suurin osa Ansiblen ohjaajista käyttää tätä strategiaa, kun he ovat yhteydessä kohdeisäntäihin todellisissa skenaarioissa. Mahdollinen oletusarvo on toimintojen lopettaminen kohdelaitteella ja toimintojen jatkaminen joillakin muilla palvelimilla aina, kun se palauttaa nollasta poikkeavan tuloksen lausekkeesta tai paketin virheestä. On kuitenkin tilanteita, joissa saatat haluta toimia toisin. Palautettu tulos, joka ei ole nolla, tarkoittaa toisinaan edistymistä. Usein saatat haluta keskeyttää käsittelyn yhdellä palvelimella, jotta se pysähtyy kaikilla isännillä.



Tapoja sivuuttaa Ansiblen virheet

Ansiblessa pelikirjan tehtävien suorittamiseen käytetään erilaisia ​​tapoja, jos se osoittaa tehtävän epäonnistumisen. Seuraavat ovat eri tapoja, jotka auttavat suorittamaan tehtävää, vaikka Ansible näyttää virheitä:



1. Ignore_Errors=True-komennon käyttäminen





Vaikka tehtävä epäonnistuu edelleen, pelikirjan suoritus jatkuu, jos määrität ignore_errors=true-komennon toiminnon alareunassa. Huolimatta siitä, että se välittää tehtävän valmistumisesta tai epäonnistumisista, se suorittaa silti myöhemmän toiminnan. Jos toiminta jotenkin epäonnistuu, siirrytään seuraavaan. Jos toiminta onnistuu, se suorittaa prosessin sen jälkeen.

2. Ansiblen tarkistustilan käyttäminen



Käytä Boolen erikoismuuttujia, Ansible-tarkistustilaa, joka on määritetty arvoksi Tosi, kun Ansible on tarkistusmenetelmässä ohittaaksesi tehtävän tai jättääksesi huomiotta tehtävän epäonnistumiset aina, kun käytetään Ansiblen tarkistusmenetelmäversiota.

3. Epäonnistuneen=kun-komennon käyttäminen Ansible Playbookissa

Ansible-ohjelmassa voimme myös käyttää failed_when ehdollista määrittämään mitä tahansa 'epäonnistumista' jokaiselle toiminnalle. Kuten kaikki Ansible-ehdolliset lauseet, useiden epäonnistuneiden_kun kriteerien luettelot yhdistetään implisiittiseen. Joten tehtävä epäonnistuu vain, jos kaikki ehdot täyttyvät.

Edellytykset Ansiblen virheiden huomiotta jättämiseen

Ansible-määritystyökalun on täytettävä tarvittavat kriteerit, jotta se sisältää konkreettisen esimerkin:

  • Ansible-pääpalvelin tai voimme sanoa, että ohjauspalvelin on välttämätön, jotta voimme määrittää komennot kohdelaitteelle.
  • Meillä on oltava paikalliset isännät, jotta voimme ottaa heihin yhteyttä käyttääksemme erilaisia ​​tapoja ohittaa Ansible-ohjelmiston virheet. Käytämme tässä tapauksessa paikallista isäntää kohdeetäpalvelimena toiminnan ajan.
  • Kirjoitamme pelikirjoja, suoritamme Ansible ignore error -komentoja ja käytämme ansible-ohjainlaitetta seurataksemme tuloksia etäisännillä.

Auttaaksesi oppijaa ymmärtämään ohitusvirheen käytön periaatetta Ansible-pelikirjassa ottamalla käyttöön seuraava esimerkki:

Esimerkki: Ignore_Errors=True-komennon käyttäminen

Tämä on yksinkertaisin esimerkki, joka käyttää Ansiblea toteutukseen, jossa sisällytämme pelikirjaan useita tehtäviä ja suoritamme tehtävät ohitusvirhekomennolla. Tätä varten kirjoitamme ensin seuraavan koodin Ansible-päätteeseen:

[ juuri @ mestari mahdollinen ] # nano ignore_errors.yml

Ignore_errors.yml-ohjekirjan luomisen ja käynnistämisen jälkeen alamme nyt syöttää komentoja pelikirjaan. Ensin käytämme 'isännät' -vaihtoehtoa ja välitämme toimitetut isännät 'localhost'. Annamme 'false' arvon 'kerää faktat' -argumenttiin, jotta emme voi saada lisätietoja paikallisesta isännästä, kun suoritamme pelikirjan.

Sen jälkeen alamme listata kaikki tehtävät, jotka haluamme suorittaa 'tehtävät' -vaihtoehdon alle. Ensimmäisessä tehtävässä näytämme asiakirjan, jota ei ole olemassa Ansible-hakemistossa. Ensin välitetään sen tehtävän otsikko, jonka haluamme toteuttaa. Sitten käytämme komentovaihtoehtoa ja tallennamme olemattoman tekstidokumentin ja käytämme 'ls' -toimintoa, jotta voimme suorittaa komennon ensimmäisessä tehtävässä. Ensimmäisen tehtävän jälkeen käytämme ignore_errors=true-komentoa siten, että jos ignore-käskyn yläpuolella oleva tehtävä epäonnistuu, se ohittaa tehtävän ja siirtyy seuraavaan tehtävään ja suorittaa sen.

Listaamme toisen tehtävän, jota käytetään. Jos ensimmäinen tehtävä epäonnistuu, Ansible-työkalun on suoritettava seuraava tehtävä. Sitten käytämme debug-parametria suorittaaksemme tehtävän ohjekirjassa.

- isännät: localhost
kerätä_facts: väärä
tehtävät:
- nimi: Listaa olematon tiedosto
komento: ls olematon.txt
ignore_errors: totta

- nimi: jatkaa tehtävä epäonnistumisen jälkeen
debug:
viesti: 'Jatka tehtävää epäonnistumisen jälkeen'

Nyt luettelemme tarpeeksi suoritettavia tehtäviä ja tarkistamme ohita virhekomennon. Nyt lopetamme pelikirjan ja palaamme pääterminaaliin. Sen jälkeen käytämme pelikirjaa. Tätä varten käytämme seuraavaa lausetta:

[ juuri @ mestari mahdollinen ] # ansible-playbook ignore_errors.yml

Edellä mainitun komennon suorittamisen jälkeen saamme seuraavan lähdön. Kuten näet, ensimmäinen tehtävä, jossa luetellaan olematon tiedosto, osoittaa epäonnistumisen. Mutta toinen tehtävä suoritetaan onnistuneesti, koska jätimme huomioimatta ensimmäisen tehtävän käyttämällä ohjekirjan ignore_error=true-arvoa.

Johtopäätös

Opimme, mitä ohitusvirhe tarkoittaa Ansiblessa. Keskustelimme siitä, kuinka se toimii Ansible-pelikirjassa. Keskustelimme myös erilaisista tavoista jättää huomiotta Ansiblen virhe tehtävien suorittamisen aikana. Toteutimme esimerkin, jotta jokainen käsite on käyttäjälle selkeä.