Ansible Negeer Fout

Ansible Negeer Fout



Tijdens het configureren van de taak op een ander hostapparaat komen Ansible-fouten veel voor. Ze vertegenwoordigen unieke en mogelijk significante systeemtoestanden. Desondanks kunnen er enkele fouten zijn die we willen vermijden, zodat de taken ook worden uitgevoerd en de uitvoer wordt weergegeven als ze met succes zijn uitgevoerd. In dit artikel zullen we het hebben over Ansible-fouten en hoe je ze kunt negeren. We demonstreren specifiek een techniek om de fouten met Ansible te onderdrukken en te negeren.

In tegenstelling tot het oplossen van fouten, houdt het vermijden van mislukkingen in dat u doorgaat met de taken, zolang de activiteit in het Ansible-playbook onaangetast blijft. De ansible-tool geeft een waarschuwingsbericht wanneer een taak of draaiboek niet kan worden voltooid tijdens het debuggen van een taak. Er zijn verschillende oorzaken, maar het is aan ons om ze te identificeren en een oplossing te vinden. Helaas kunnen niet alle fouten worden verholpen. U kunt ervoor kiezen om de fouten te negeren als u dat niet wilt of als u het probleem niet kunt oplossen.







De meerderheid van de controlerende managers in Ansible gebruikt deze strategie terwijl ze contact maken met de doelhosts in real-world scenario's. Ansible stopt standaard met het stopzetten van activiteiten op een doelapparaat en het voortzetten van activiteiten op sommige andere servers wanneer het een geretourneerd resultaat van een statement of een fout van een pakket retourneert dat niet gelijk is aan nul. Er zijn echter bepaalde situaties waarin u misschien anders wilt handelen. Een geretourneerd resultaat dat niet nul is, duidt af en toe op voortgang. Vaak wilt u misschien dat de verwerking op één server stopt, zodat deze op alle hosts stopt.



Manieren om de fouten in Ansible te negeren

In Ansible worden verschillende manieren gebruikt om de draaiboektaken uit te voeren als blijkt dat de taak is mislukt. Hieronder volgen de verschillende manieren om de taak uit te voeren, zelfs als Ansible fouten vertoont:



1. De opdracht Ignore_Errors=True gebruiken





Hoewel de taak blijft mislukken, blijft het draaiboek worden uitgevoerd als u de opdracht ignore_errors=true onder aan de activiteit opgeeft. Ondanks dat hij zich zorgen maakt over het voltooien of mislukken van de taak, voert hij nog steeds de volgende activiteit uit. Als de activiteit op de een of andere manier niet succesvol is, gaat hij door naar de volgende. Als de activiteit succesvol is, voltooit het daarna een proces.

2. Gebruik de controlemodus in Ansible



Gebruik de Booleaanse speciale variabelen, de Ansible-controlemodus, die is gedefinieerd als True zodra Ansible zich in de controlemethode bevindt om een ​​taak te omzeilen of de fouten van een taak te negeren wanneer de controlemethodeversie van Ansible wordt gebruikt.

3. De opdracht Failed=When gebruiken in Ansible Playbook

In Ansible kunnen we ook de voorwaardelijk fail_when gebruiken om te specificeren welke 'mislukking' voor elke activiteit wordt geïmpliceerd. Net als bij alle voorwaardelijke uitspraken van Ansible, worden de lijsten met talrijke criteria voor mislukt_wanneer gecombineerd met een impliciete. De taak mislukt dus alleen als aan alle voorwaarden is voldaan.

Vereisten om de fouten in Ansible te negeren

De Ansible-configuratietool moet voldoen aan de nodige criteria om het concrete voorbeeld op te nemen:

  • Een Ansible-hoofdserver of we kunnen zeggen een controlerende server is nodig, zodat we de opdrachten op het doelapparaat kunnen configureren.
  • We hebben de lokale hosts nodig, zodat we met elk van hen contact kunnen opnemen om de verschillende manieren te gebruiken om de fouten in de Ansible-software te negeren. We gebruiken de lokale host in dit geval als een doelserver op afstand voor de duur van de activiteit.
  • We schrijven de draaiboeken, voeren de Ansible-negeerfoutopdrachten uit en gebruiken het ansible-controller-apparaat om de resultaten op verre hosts te volgen.

Laten we het volgende voorbeeld implementeren om de leerling te helpen het principe te begrijpen van het gebruik van de negeerfout in een Ansible-playbook:

Voorbeeld: gebruik van de opdracht Ignore_Errors=True

Dit is het eenvoudigste voorbeeld dat Ansible gebruikt voor implementatie, waarbij we verschillende taken opnemen in het draaiboek en de taken uitvoeren met de opdracht 'negeer fout'. Om dit te doen, schrijven we eerst de volgende code in de Ansible-terminal:

[ wortel @ meester weerwort ] # nano ignore_errors.yml

Na het maken en starten van het ignore_errors.yml-playbook, beginnen we nu de opdrachten in het playbook in te voeren. Eerst gebruiken we de optie 'hosts', waarbij we de geleverde hosts doorgeven als 'localhost'. We voeren de waarde 'false' in het argument 'feiten verzamelen' in, zodat we geen aanvullende informatie over de lokale host kunnen verkrijgen wanneer we het draaiboek uitvoeren.

Daarna beginnen we met het opsommen van elke taak die we willen voltooien onder de optie 'taken'. In de eerste taak geven we het document weer dat niet bestaat in de Ansible-directory. Eerst geven we de titel door van de taak die we willen uitvoeren. Vervolgens gebruiken we de opdrachtoptie en slaan we het niet-bestaande tekstdocument op en gebruiken we 'ls' zodat we de opdracht in de eerste taak kunnen uitvoeren. Na de eerste taak gebruiken we de opdracht ignore_errors=true, zodat als de taak boven de instructie ignore een fout vertoont, deze de taak negeert en naar de volgende taak gaat en deze uitvoert.

We noemen een andere taak die wordt gebruikt. Als de eerste taak mislukt, moet de Ansible-tool de volgende taak uitvoeren. Vervolgens gebruiken we de parameter debug om de taak in het draaiboek uit te voeren.

- gastheren: localhost
verzamel_feiten: vals
taken:
- naam: vermeld een niet-bestaand bestand
commando: ls niet-bestaand.txt
negeer_fouten: WAAR

- naam: doorgaan taak na falen
debuggen:
bericht: 'Taak voortzetten na falen'

Nu vermelden we genoeg taken om uit te voeren en controleren we de opdracht Negeer fout. Nu beëindigen we het draaiboek en gaan we terug naar de hoofdterminal. Daarna voeren we het draaiboek uit. Daarvoor gebruiken we de volgende verklaring:

[ wortel @ meester weerwort ] # ansible-playbook ignore_errors.yml

Na het uitvoeren van de bovengenoemde opdracht krijgen we de volgende uitvoer. Zoals u ziet, vertoont de eerste taak die een niet-bestaand bestand weergeeft een fout. Maar de tweede taak is met succes uitgevoerd omdat we de eerste taak hebben genegeerd door de ignore_error=true in het draaiboek te gebruiken.

Conclusie

We hebben geleerd wat de negeerfout betekent in Ansible. We hebben besproken hoe het werkt in het Ansible-playbook. We bespraken ook de verschillende manieren om de fout in Ansible te negeren tijdens het uitvoeren van de taken. We hebben een voorbeeld geïmplementeerd zodat elk concept duidelijk is voor de gebruiker.