Ansible Chyba ignorování

Ansible Chyba Ignorovani



Při konfiguraci úlohy na jiném hostitelském zařízení jsou běžné chyby Ansible. Představují jedinečné a možná významné stavy systému. Navzdory tomu se mohou vyskytnout chyby, kterým se chceme vyhnout, aby se úlohy také provedly a zobrazily výstup, pokud byly úspěšně provedeny. V tomto článku budeme hovořit o chybách Ansible a o tom, jak je ignorovat. Konkrétně demonstrujeme techniku, jak potlačit a ignorovat selhání pomocí Ansible.

Na rozdíl od oprav chyb, vyhýbání se chybám vyžaduje pokračování v úkolech, dokud není aktivita v Ansible playbooku ovlivněna. Nástroj ansible vydá varovnou zprávu, když nemůže dokončit úlohu nebo příručku při ladění úlohy. Příčin je několik, ale je na nás, abychom je identifikovali a našli řešení. Bohužel ne všechny chyby lze opravit. Pokud nechcete nebo nejste schopni problém vyřešit, můžete se rozhodnout začít chyby ignorovat.







Většina řídících správců v Ansible používá tuto strategii při spojení s cílovými hostiteli v reálných scénářích. Ansible ve výchozím nastavení zastaví aktivity na cílovém zařízení a bude pokračovat v aktivitách na některých dalších serverech, kdykoli vrátí nenulový vrácený výsledek z příkazu nebo chybu z balíčku. I když existují určité situace, kdy možná budete chtít jednat jinak. Vrácený výsledek, který není nula, někdy označuje pokrok. Často můžete chtít, aby se zpracování zastavilo na jednom serveru, aby se zastavilo na všech hostitelích.



Způsoby ignorování chyb v Ansible

V Ansible se používají různé způsoby, jak provádět úkoly z playbooku, pokud ukazuje selhání úlohy. Níže jsou uvedeny různé způsoby, které pomohou provést úlohu, i když Ansible vykazuje chyby:



1. Použití příkazu Ignore_Errors=True





I když úloha nadále selhává, příručka bude pokračovat v provádění, pokud ve spodní části aktivity zadáte příkaz ignore_errors=true. Přestože se stará o dokončení úkolu nebo neúspěchy, stále provádí následnou činnost. Pokud je aktivita nějak neúspěšná, přesune se na další. Pokud je aktivita úspěšná, dokončí proces poté.

2. Využití režimu kontroly v Ansible



Použijte speciální booleovské proměnné, režim kontroly Ansible, který je definován jako True, jakmile je Ansible v kontrolní metodě, abyste obešli úlohu nebo ignorovali selhání úlohy, kdykoli je použita verze metody kontroly Ansible.

3. Využití příkazu Failed=When v Ansible Playbook

V Ansible můžeme také použít podmíněnou podmínku failed_when k určení jakéhokoli „selhání“, které je pro každou aktivitu implikováno. Podobně jako u všech podmíněných příkazů Ansible jsou seznamy četných kritérií fail_when kombinovány s implicitním. Úloha tedy selže pouze tehdy, jsou-li splněny všechny podmínky.

Předpoklady k ignorování chyb v Ansible

Konfigurační nástroj Ansible musí splňovat nezbytná kritéria, aby mohl obsahovat konkrétní příklad:

  • Abychom mohli konfigurovat příkazy na cílovém zařízení, je nutný hlavní server Ansible nebo můžeme říci řídící server.
  • Potřebujeme mít místní hostitele, abychom každého z nich mohli kontaktovat a použít různé způsoby ignorování chyb v softwaru Ansible. Místní hostitel v tomto případě používáme jako cílový vzdálený server po dobu trvání aktivity.
  • Píšeme playbooky, spouštíme příkazy Ansible ignore error a používáme zařízení ansible-controller ke sledování výsledků na vzdálených hostitelích.

Abychom žákovi pomohli pochopit princip využití chyby ignorování v příručce Ansible, implementujme následující příklad:

Příklad: Použití příkazu Ignore_Errors=True

Toto je nejjednodušší příklad, který používá Ansible k implementaci, kde do příručky zahrneme několik úloh a provedeme je pomocí příkazu ignore error. Za tímto účelem nejprve napíšeme následující kód do terminálu Ansible:

[ vykořenit @ mistr ansible ] # nano ignore_errors.yml

Po vytvoření a spuštění playbooku ignore_errors.yml nyní začneme zadávat příkazy do playbooku. Nejprve použijeme volbu „hosts“ a předáme dodané hostitele jako „localhost“. Do argumentu „shromáždit fakta“ zadáváme hodnotu „false“, abychom při spuštění příručky nemohli získat další informace o místním hostiteli.

Poté začneme vypisovat každý úkol, který chceme dokončit, pod volbou „úkoly“. V první úloze zobrazíme dokument, který v adresáři Ansible neexistuje. Nejprve předáme název úkolu, který chceme realizovat. Poté použijeme volbu příkazu a uložíme neexistující textový dokument a použijeme „ls“, abychom mohli provést příkaz v první úloze. Po první úloze použijeme příkaz ignore_errors=true, takže pokud úloha nad příkazem ignore selže, úlohu ignoruje a přesune se k další úloze a provede ji.

Uvádíme další použitou úlohu. Pokud první úloha selže, musí nástroj Ansible provést další úlohu. Poté použijeme parametr debug ke spuštění úlohy v playbooku.

- hostitelé: localhost
shromáždit_fakta: Nepravdivé
úkoly:
- jméno: Seznam neexistujících soubor
příkaz: ls neexistující.txt
ignore_errors: skutečný

- název: pokračovat úkol po neúspěchu
ladit:
zpráva: 'Pokračovat v úloze po selhání'

Nyní vypíšeme dostatek úloh k provedení a zkontrolujeme příkaz ignorovat chybu. Nyní ukončíme playbook a vrátíme se zpět do hlavního terminálu. Poté spustíme playbook. K tomu používáme následující prohlášení:

[ vykořenit @ mistr ansible ] # ansible-playbook ignore_errors.yml

Po provedení výše uvedeného příkazu dostaneme následující výstup. Jak vidíte, první úloha, která uvádí neexistující soubor, ukazuje selhání. Ale druhá úloha je úspěšně provedena, protože jsme ignorovali první úlohu použitím ignore_error=true v playbooku.

Závěr

Zjistili jsme, co znamená chyba ignorování v Ansible. O tom, jak to funguje, jsme diskutovali v příručce Ansible. Také jsme diskutovali o různých způsobech ignorování chyby v Ansible při provádění úkolů. Implementovali jsme příklad, aby byl každý koncept pro uživatele jasný.