Ansible Ignore-fel

Ansible Ignore Fel



När du konfigurerar uppgiften på en annan värdenhet är Ansible-fel en vanlig företeelse. De representerar unika och möjligen betydelsefulla systemtillstånd. Trots detta kan det finnas några fel som vi vill undvika så att uppgifterna också kommer att köras och visa utdata om de genomförs framgångsrikt. I den här artikeln kommer vi att prata om Ansible-fel och hur man bortser från dem. Vi demonstrerar specifikt en teknik för att undertrycka och ignorera misslyckanden med Ansible.

I motsats till felkorrigering innebär att undvika misslyckanden att fortsätta med uppgifterna så mycket som aktiviteten i Ansible-spelboken är opåverkad. Det ansible verktyget skickar ett varningsmeddelande när det inte kan slutföra en uppgift eller spelbok medan den felsöker en uppgift. Det finns flera orsaker, men det är upp till oss att identifiera dem och hitta en lösning. Tyvärr kan inte alla fel åtgärdas. Du kan välja att börja ignorera felen om du inte vill eller om du inte kan lösa problemet.







Majoriteten av de kontrollerande cheferna i Ansible använder den här strategin samtidigt som de ansluter till målvärdarna i verkliga scenarier. Ansible har som standard att avbryta aktiviteter på en målenhet och fortsätta aktiviteter på vissa andra servrar när den returnerar ett returnerat resultat som inte är noll från en sats eller ett fel från ett paket. Även om det finns vissa situationer där du kanske vill agera annorlunda. Ett returnerat resultat som inte är noll anger ibland framsteg. Ofta kanske du vill att behandlingen ska stoppas på en server så att den stoppas på alla värdar.



Sätt att ignorera felen i Ansible

I Ansible används olika sätt för att utföra playbook-uppgifterna om det visar att uppgiften misslyckats. Följande är de olika sätten som hjälper till att utföra uppgiften även om Ansible visar fel:



1. Använd kommandot Ignore_Errors=True





Även om uppgiften fortsätter att misslyckas, fortsätter spelboken att köras om du anger kommandot ignore_errors=true längst ned i aktiviteten. Trots att den bryr sig om uppgiftens slutförande eller misslyckanden, utför den fortfarande den efterföljande aktiviteten. Om aktiviteten på något sätt misslyckas går den vidare till nästa. Om aktiviteten är framgångsrik slutför den en process efter det.

2. Använda kontrollläget i Ansible



Använd de booleska specialvariablerna, Ansible-kontrollläget, som definieras till True när Ansible är i kontrollmetoden för att kringgå en uppgift eller bortse från felen på en uppgift närhelst kontrollmetodens version av Ansible används.

3. Använda kommandot Failed=When i Ansible Playbook

I Ansible kan vi också använda failed_when conditional för att specificera vilket 'misslyckande' som antyds för varje aktivitet. I likhet med alla Ansibles villkorliga uttalanden kombineras listorna med många failed_when-kriterier med ett implicit. Så uppgiften misslyckas bara om alla villkor är uppfyllda.

Förutsättningar för att ignorera felen i Ansible

Ansible-konfigurationsverktyget måste uppfylla de nödvändiga kriterierna för att inkludera det konkreta exemplet:

  • En Ansible-huvudserver eller vi kan säga att en kontrollerande server är nödvändig så att vi kan konfigurera kommandona på målenheten.
  • Vi måste ha de lokala värdarna så att vi kan kontakta var och en av dem för att använda de olika sätten att ignorera felen i Ansible-programvaran. Vi använder den lokala värden i det här fallet som en målfjärrserver under aktivitetens varaktighet.
  • Vi skriver spelböckerna, kör Ansible ignorera felkommandon och använder ansible-styrenheten för att spåra resultaten på avlägsna värdar.

För att hjälpa eleven att förstå principen för att använda ignoreringsfelet i en Ansible-spelbok, låt oss implementera följande exempel:

Exempel: Använda kommandot Ignore_Errors=True

Det här är det enklaste exemplet som använder Ansible för implementering där vi inkluderar flera uppgifter i spelboken och utför uppgifterna med kommandot ignorera error. För att göra detta skriver vi först följande kod i Ansible-terminalen:

[ rot @ mästare ansible ] # nano ignore_errors.yml

Efter skapandet och lanseringen av spelboken ignore_errors.yml börjar vi nu skriva in kommandona i spelboken. Först använder vi alternativet 'värdar' och skickar de medföljande värdarna som 'lokalvärd'. Vi anger värdet 'falskt' i argumentet 'samla fakta' så att vi inte kan få ytterligare information om den lokala värden när vi kör spelboken.

Efter det börjar vi lista varje uppgift som vi vill slutföra under alternativet 'uppgifter'. I den första uppgiften visar vi dokumentet som inte finns i Ansible-katalogen. Först skickar vi titeln på uppgiften som vi vill genomföra. Sedan använder vi kommandoalternativet och lagrar det icke-existerande textdokumentet och använder 'ls' så att vi kan utföra kommandot i den första uppgiften. Efter den första uppgiften använder vi kommandot ignore_errors=true så att om uppgiften ovanför ignore-satsen har ett misslyckande, ignorerar den uppgiften och flyttar till nästa uppgift och kör den.

Vi listar en annan uppgift som används. Om den första uppgiften misslyckas måste Ansible-verktyget utföra nästa uppgift. Sedan använder vi felsökningsparametern för att köra uppgiften i spelboken.

- värdar: lokalvärd
samla_fakta: falsk
uppgifter:
- namn: Lista en icke-existerande fil
kommando: ls icke-existerande.txt
ignore_errors: Sann

- namn: Fortsätta uppgift efter att ha misslyckats
felsöka:
msg: 'Fortsätt uppgift efter misslyckande'

Nu listar vi tillräckligt med uppgifter för att utföra och kontrollera kommandot ignorera fel. Nu avslutar vi spelboken och går tillbaka till huvudterminalen. Efter det kör vi lekboken. För det använder vi följande uttalande:

[ rot @ mästare ansible ] # ansible-playbook ignore_errors.yml

Efter att ha utfört det ovannämnda kommandot får vi följande utdata. Som du ser visar den första uppgiften som listar en icke-existerande fil ett misslyckande. Men den andra uppgiften körs framgångsrikt eftersom vi ignorerade den första uppgiften genom att använda ignore_error=true i spelboken.

Slutsats

Vi lärde oss vad ignoreringsfelet betyder i Ansible. Vi diskuterade hur det fungerar i Ansible-spelboken. Vi diskuterade också de olika sätten att ignorera felet i Ansible när uppgifterna utförs. Vi implementerade ett exempel så att varje koncept är tydligt för användaren.