Ansible Ignore-feil

Ansible Ignore Feil



Når du konfigurerer oppgaven på en annen vertsenhet, er Ansible-feil en vanlig forekomst. De representerer unike og muligens betydelige systemtilstander. Til tross for dette kan det være noen feil som vi ønsker å unngå slik at oppgavene også vil kjøre og vise utdata hvis de er vellykket utført. I denne artikkelen skal vi snakke om Ansible-feil og hvordan du kan se bort fra dem. Vi demonstrerer spesifikt en teknikk for å undertrykke og ignorere feilene med Ansible.

I motsetning til feilretting innebærer å unngå feil å fortsette med oppgavene så mye som aktiviteten i Ansible-spilleboken er upåvirket. Det ansible-verktøyet sender ut en advarsel når det ikke kan fullføre en oppgave eller spillebok mens den feilsøker en oppgave. Det er flere årsaker, men det er opp til oss å identifisere dem og finne en løsning. Dessverre kan ikke alle feil fikses. Du kan velge å begynne å ignorere feilene hvis du ikke vil eller hvis du ikke klarer å løse problemet.







Flertallet av kontrollerende ledere i Ansible bruker denne strategien mens de kobler seg til målvertene i virkelige scenarier. Ansible velger som standard å avslutte aktiviteter på en målenhet og fortsette aktiviteter på enkelte andre servere når den returnerer et resultat som ikke er null fra en uttalelse eller en feil fra en pakke. Selv om det er visse situasjoner der du kanskje vil handle annerledes. Et returnert resultat som ikke er null, angir av og til fremgang. Ofte vil du kanskje at behandlingen skal stoppe på én server slik at den stopper på alle verter.



Måter å ignorere feilene i Ansible

I Ansible brukes forskjellige måter for å utføre playbook-oppgavene hvis den viser oppgavesvikten. Følgende er de forskjellige måtene som vil hjelpe deg med å utføre oppgaven selv om Ansible viser feil:



1. Bruke Ignore_Errors=True-kommandoen





Selv om oppgaven fortsetter å mislykkes, fortsetter playbook å kjøre hvis du angir kommandoen ignore_errors=true nederst i aktiviteten. Til tross for at den bryr seg om fullføringen av oppgaven eller feilene, utfører den fortsatt den påfølgende aktiviteten. Hvis aktiviteten på en eller annen måte ikke lykkes, går den videre til neste. Hvis aktiviteten er vellykket, fullfører den en prosess etter det.

2. Bruk av sjekkmodus i Ansible



Bruk de boolske spesialvariablene, Ansible-kontrollmodusen, som er definert til True når Ansible er i kontrollmetoden for å omgå en oppgave eller se bort fra feilene på en oppgave når kontrollmetodeversjonen av Ansible brukes.

3. Bruke kommandoen Failed=When i Ansible Playbook

I Ansible kan vi også bruke failed_when-betingelsen for å spesifisere hvilken 'feil' som er underforstått for hver aktivitet. I likhet med alle Ansible-betingede utsagn, er listene over tallrike failed_when-kriterier kombinert med en implisitt. Så oppgaven mislykkes bare hvis alle betingelser er oppfylt.

Forutsetninger for å ignorere feilene i Ansible

Ansible-konfigurasjonsverktøyet må oppfylle de nødvendige kriteriene for å inkludere det konkrete eksemplet:

  • En Ansible hovedserver eller vi kan si en kontrollerende server er nødvendig slik at vi kan konfigurere kommandoene på målenheten.
  • Vi må ha de lokale vertene slik at vi kan kontakte hver av dem for å bruke de forskjellige måtene å ignorere feilene i Ansible-programvaren på. Vi bruker den lokale verten i dette tilfellet som en ekstern målserver for varigheten av aktiviteten.
  • Vi skriver spillebøkene, kjører Ansible ignore error-kommandoene og bruker ansible-kontrollerenheten til å spore resultatene på fjerne verter.

For å hjelpe eleven med å forstå prinsippet om å bruke ignoreringsfeilen i en Ansible-spillebok, la oss implementere følgende eksempel:

Eksempel: Bruk av kommandoen Ignore_Errors=True

Dette er det enkleste eksemplet som bruker Ansible for implementering, der vi inkluderer flere oppgaver i spilleboken og utfører oppgavene ved å bruke ignorer error-kommandoen. For å gjøre dette, skriver vi først følgende kode i Ansible-terminalen:

[ rot @ mester ansible ] # nano ignore_errors.yml

Etter opprettelsen og lanseringen av ignore_errors.yml playbook, begynner vi nå å legge inn kommandoene i playbook. Først bruker vi alternativet 'verter', og sender de medfølgende vertene som 'lokalvert'. Vi skriver inn «false»-verdien i «samle fakta»-argumentet slik at vi ikke kan få ytterligere informasjon om den lokale verten når vi kjører spilleboken.

Etter det begynner vi å liste opp hver oppgave vi ønsker å fullføre under alternativet 'oppgaver'. I den første oppgaven viser vi dokumentet som ikke eksisterer i Ansible-katalogen. Først passerer vi tittelen på oppgaven vi ønsker å implementere. Deretter bruker vi kommandoalternativet og lagrer det ikke-eksisterende tekstdokumentet og bruker 'ls' slik at vi kan utføre kommandoen i den første oppgaven. Etter den første oppgaven bruker vi ignore_errors=true-kommandoen slik at hvis oppgaven over ignore-setningen har en feil, ignorerer den oppgaven og går til neste oppgave og utfører den.

Vi lister opp en annen oppgave som brukes. Hvis den første oppgaven mislykkes, må Ansible-verktøyet utføre den neste oppgaven. Deretter bruker vi feilsøkingsparameteren til å kjøre oppgaven i spilleboken.

- verter: lokalvert
samle_fakta: falsk
oppgaver:
- navn: List en ikke-eksisterende fil
kommando: ls ikke-eksisterende.txt
ignore_errors: ekte

- Navn: Fortsette oppgave etter feil
feilsøke:
melding: 'Fortsett oppgave etter feil'

Nå viser vi nok oppgaver til å utføre og sjekke ignorer error-kommandoen. Nå avslutter vi spilleboken og går tilbake til hovedterminalen. Etter det kjører vi lekeboken. Til det bruker vi følgende utsagn:

[ rot @ mester ansible ] # ansible-playbook ignore_errors.yml

Etter å ha utført den nevnte kommandoen, får vi følgende utgang. Som du ser, viser den første oppgaven som viser en ikke-eksisterende fil en feil. Men den andre oppgaven utføres vellykket fordi vi ignorerte den første oppgaven ved å bruke ignore_error=true i playbook.

Konklusjon

Vi lærte hva ignoreringsfeilen betyr i Ansible. Vi diskuterte hvordan det fungerer i Ansible-spilleboken. Vi diskuterte også de forskjellige måtene å ignorere feilen i Ansible mens oppgavene ble utført. Vi implementerte et eksempel slik at hvert konsept er tydelig for brukeren.