Ansible Ignorer fejl

Ansible Ignorer Fejl



Mens du konfigurerer opgaven på en anden værtsenhed, er Ansible-fejl en almindelig hændelse. De repræsenterer unikke og muligvis betydningsfulde systemtilstande. På trods af dette kan der være nogle fejl, som vi gerne vil undgå, så opgaverne også vil udføre og vise output, hvis de bliver udført. I denne artikel vil vi tale om Ansible-fejl, og hvordan man kan se bort fra dem. Vi demonstrerer specifikt en teknik til at undertrykke og ignorere fejlene med Ansible.

I modsætning til fejlretning indebærer undgåelse af fejl at fortsætte med opgaverne, så meget som aktiviteten i Ansible-spillebogen er upåvirket. Det ansible værktøj udsender en advarselsmeddelelse, når det ikke kan afslutte en opgave eller en afspilningsbog, mens den fejlfinder en opgave. Der er flere årsager, men det er op til os at identificere dem og finde en løsning. Desværre kan ikke alle fejl rettes. Du kan vælge at begynde at ignorere fejlene, hvis du ikke vil, eller hvis du ikke er i stand til at løse problemet.







Størstedelen af ​​de kontrollerende ledere i Ansible bruger denne strategi, mens de forbinder med målværterne i virkelige scenarier. Ansible indstiller som standard aktiviteter på en målenhed og fortsætter aktiviteter på nogle andre servere, når den returnerer et returneret resultat, der ikke er nul fra en erklæring eller en fejl fra en pakke. Selvom der er visse situationer, hvor du måske ønsker at handle anderledes. Et returneret resultat, der ikke er nul, angiver lejlighedsvis fremskridt. Ofte vil du måske have, at behandlingen stopper på én server, så den stopper på alle værter.



Måder at ignorere fejlene i Ansible

I Ansible bruges forskellige måder til at udføre playbook-opgaverne, hvis den viser opgavefejlen. Følgende er de forskellige måder, der hjælper med at udføre opgaven, selvom Ansible viser fejl:



1. Brug af kommandoen Ignore_Errors=True





Selvom opgaven fortsætter med at mislykkes, fortsætter afspilningsbogen med at udføre, hvis du angiver kommandoen ignore_errors=true nederst i aktiviteten. På trods af, at den bekymrer sig om opgavens afslutning eller fejl, udfører den stadig den efterfølgende aktivitet. Hvis aktiviteten på en eller anden måde ikke lykkes, går den videre til den næste. Hvis aktiviteten lykkes, fuldfører den en proces derefter.

2. Brug af Check Mode i Ansible



Brug de boolske specialvariabler, Ansible-kontroltilstanden, som er defineret til Sand, når Ansible er i kontrolmetoden, for at omgå en opgave eller se bort fra fejlene på en opgave, når kontrolmetodeversionen af ​​Ansible bruges.

3. Brug af kommandoen Failed=When i Ansible Playbook

I Ansible kan vi også bruge failed_when conditional til at specificere hvilken 'fejl' der er underforstået for hver aktivitet. I lighed med alle Ansible betingede udsagn, er listerne over talrige failed_when-kriterier kombineret med en implicit. Så opgaven fejler kun, hvis alle betingelser er opfyldt.

Forudsætninger for at ignorere fejlene i Ansible

Ansible-konfigurationsværktøjet skal overholde de nødvendige kriterier for at inkludere det konkrete eksempel:

  • En Ansible-hovedserver, eller vi kan sige, at en kontrollerende server er nødvendig, så vi kan konfigurere kommandoerne på målenheden.
  • Vi skal have de lokale værter, så vi kan kontakte hver enkelt af dem for at bruge de forskellige måder at ignorere fejlene i Ansible-softwaren. Vi bruger den lokale vært i dette tilfælde som en målfjernserver under aktivitetens varighed.
  • Vi skriver playbooks, kører Ansible ignorer fejl-kommandoer og bruger ansible-controllerenheden til at spore resultaterne på fjerne værter.

For at hjælpe eleven med at forstå princippet om at bruge ignoreringsfejlen i en Ansible-spillebog, lad os implementere følgende eksempel:

Eksempel: Brug af kommandoen Ignore_Errors=True

Dette er det enkleste eksempel, der bruger Ansible til implementering, hvor vi inkluderer flere opgaver i playbook og udfører opgaverne ved hjælp af kommandoen ignorer fejl. For at gøre dette skriver vi først følgende kode i Ansible-terminalen:

[ rod @ mester ansible ] # nano ignore_errors.yml

Efter oprettelsen og lanceringen af ​​ignore_errors.yml playbook, begynder vi nu at indtaste kommandoerne i playbook. Først bruger vi 'hosts'-indstillingen, og sender de leverede værter som 'localhost'. Vi indtaster den 'falske' værdi i 'saml fakta'-argumentet, så vi ikke kan få yderligere oplysninger om den lokale vært, når vi kører spillebogen.

Derefter begynder vi at liste hver opgave, som vi ønsker at fuldføre, under 'opgaver'. I den første opgave viser vi det dokument, der ikke findes i Ansible-mappen. Først videregiver vi titlen på den opgave, som vi ønsker at implementere. Derefter bruger vi kommandoindstillingen og gemmer det ikke-eksisterende tekstdokument og bruger 'ls', så vi kan udføre kommandoen i den første opgave. Efter den første opgave bruger vi kommandoen ignore_errors=true, så hvis opgaven over ignore-sætningen har en fejl, ignorerer den opgaven og flytter til den næste opgave og udfører den.

Vi lister en anden opgave, som bruges. Hvis den første opgave mislykkes, skal Ansible-værktøjet udføre den næste opgave. Derefter bruger vi fejlfindingsparameteren til at køre opgaven i afspilningsbogen.

- værter: lokalvært
indsamle_fakta: falsk
opgaver:
- navn: Angiv en ikke-eksisterende fil
kommando: ls ikke-eksisterende.txt
ignore_errors: rigtigt

- navn: Blive ved opgave efter fejl
fejlfinde:
besked: 'Fortsæt opgave efter fejl'

Nu viser vi nok opgaver til at udføre og kontrollere kommandoen ignorer fejl. Nu afslutter vi playbook og går tilbage til hovedterminalen. Derefter kører vi legebogen. Til det bruger vi følgende udsagn:

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

Efter at have udført den førnævnte kommando, får vi følgende output. Som du kan se, viser den første opgave, der viser en ikke-eksisterende fil, en fejl. Men den anden opgave udføres med succes, fordi vi ignorerede den første opgave ved at bruge ignore_error=true i afspilningsbogen.

Konklusion

Vi lærte, hvad ignoreringsfejlen betyder i Ansible. Vi diskuterede, hvordan det fungerer i Ansible-spillebogen. Vi diskuterede også de forskellige måder at ignorere fejlen i Ansible under udførelsen af ​​opgaverne. Vi implementerede et eksempel, så hvert koncept er klart for brugeren.