Ansible ignorerer feil

Ansible ignorerer feil

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

I kontrast til feilfiksing, å unngå feil innebærer å fortsette med oppgavene like mye som aktiviteten i Ansible Playbook er ikke påvirket. Ansible -verktøyet utsteder en advarsel når det ikke kan fullføre en oppgave eller en spillbok mens du 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 løses. Du kan velge å begynne å ignorere feilene hvis du ikke vil eller hvis du ikke klarer å løse problemet.

Flertallet av å kontrollere lederne i Ansible bruker denne strategien mens de kobler til målvertene i den virkelige scenariene i den virkelige verden. Ansible er standard for å oppheve aktiviteter på en målenhet og fortsatte aktiviteter på noen andre servere når den returnerer et returnert ikke-null som er returnert, resultatet av en uttalelse eller en feil fra en pakke. Skjønt, det er visse situasjoner der du kanskje vil handle annerledes. Et returnert resultat som ikke er null betegner av og til fremgang. Ofte kan det hende du vil at behandlingen skal stoppe på en server slik at den stopper på alle verter.

Måter å ignorere feilene i Ansible

På Ansible brukes forskjellige måter for å utføre spilloppgavene hvis det viser oppgavesvikt. Følgende er de forskjellige måtene som vil bidra til å utføre oppgaven selv om Ansible viser feil:

1. Bruke Ignore_Errors = True Command

Selv om oppgaven fortsetter å mislykkes, fortsetter spillboken å utføre hvis du spesifiserer ignorere_errors = ekte kommando nederst i aktiviteten. Til tross for at den bryr seg om oppgavens fullføring eller feil, utfører den fortsatt den påfølgende aktiviteten. Hvis aktiviteten på en eller annen måte ikke lykkes, går den videre til den neste. Hvis aktiviteten er vellykket, fullfører den en prosess etter det.

2. Bruke sjekkmodus i Ansible

Bruk de boolske spesielle variablene, Ansible Check -modus, som er definert til True når Assible er i sjekkmetoden for å omgå en oppgave eller se bort fra feilene på en oppgave når sjekkmetodeversjonen av Ansible brukes.

3. Bruke den mislykkede = når kommandoen i Ansible Playbook

I Ansible kan vi også bruke den mislykkede_ når betinget for å spesifisere hva "feil" er underforstått for hver aktivitet. I likhet med alle overgående betingede uttalelser, er listene med mange mislykkede_ når kriterier kombineres med implisitt. Så oppgaven mislykkes bare hvis alle forholdene er fornøyde.

Forutsetninger for å ignorere feilene i Ansible

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

  • En Ansible hovedserver, eller vi kan si at 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. Vi bruker den lokale verten i dette tilfellet som en målsemålingsserver i løpet av aktivitetens varighet.
  • Vi skriver spillbøkene, kjører Ansible Ignore Feil-kommandoer og bruker Ansible-Controller-enheten for å spore resultatene på fjerne verter.

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

Eksempel: Bruke Ignore_Errors = True Command

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

[root@master ansible]# nano ignorere_errors.yml

Etter opprettelsen og lanseringen av Ignore_Errors.YML Playbook, vi begynner nå å legge inn kommandoene i spillboken. Først bruker vi alternativet "verter", og passerer de leverte vertene som "localhost". Vi oppgir den "falske" verdien i "Samle fakta" -argumentet slik at vi ikke kan få en tilleggsinformasjon om den lokale verten når vi driver spillboken.

Etter det begynner vi å liste opp hver oppgave som 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 som 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 Command slik at hvis oppgaven over Ignore -setningen har en fiasko, ignorerer den oppgaven og flytter 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 neste oppgave. Deretter bruker vi feilsøkingsparameteren for å kjøre oppgaven i lekeboken.

- Verter: Localhost
Samle_facts: FALSE
oppgaver:
- Navn: Liste opp en ikke-eksisterende fil
Kommando: LS ikke-eksisterende.tekst
ignorere_errors: sant
- Navn: Fortsett oppgaven etter å ha mislyktes
Debug:
MSG: "Fortsett oppgaven etter fiasko"

Nå viser vi nok oppgaver til å utføre og sjekke Ignorer feilkommandoen. Nå avslutter vi spillboken og går tilbake til hovedterminalen. Etter det kjører vi lekeboken. For det bruker vi følgende uttalelse:

[root@master ansible]# ansible-playbook ignor_errors.yml

Etter å ha utført den nevnte kommandoen, får vi følgende utdata. Som du ser, viser den første oppgaven som viser en ikke-eksisterende fil en feil. Men den andre oppgaven utføres med suksess fordi vi ignorerte den første oppgaven ved å bruke ignorering av Ignore_Error = True i spillboken.

Konklusjon

Vi lærte hva ignorere feilen betyr i Ansible. Vi diskuterte hvordan den fungerer i Ansible Playbook. Vi diskuterte også de forskjellige måtene å ignorere feilen i Ansible mens vi utfører oppgavene. Vi implementerte et eksempel slik at hvert konsept er klart for brukeren.