Ansible Błąd ignorowania

Ansible Blad Ignorowania



Podczas konfigurowania zadania na innym urządzeniu hosta błędy Ansible są częstym zjawiskiem. Reprezentują unikalne i prawdopodobnie znaczące stany systemu. Mimo to mogą wystąpić pewne błędy, których chcemy uniknąć, aby zadania były również wykonywane i wyświetlały dane wyjściowe, jeśli zostały pomyślnie wykonane. W tym artykule porozmawiamy o błędach Ansible i o tym, jak je zignorować. W szczególności demonstrujemy technikę tłumienia i ignorowania awarii za pomocą Ansible.

W przeciwieństwie do naprawiania błędów, unikanie niepowodzeń pociąga za sobą kontynuację zadań, o ile aktywność w podręczniku Ansible pozostaje nienaruszona. Narzędzie ansible wyświetla komunikat ostrzegawczy, gdy nie może ukończyć zadania lub podręcznika podczas debugowania zadania. Istnieje kilka przyczyn, ale to my musimy je zidentyfikować i znaleźć rozwiązanie. Niestety nie wszystkie błędy da się naprawić. Możesz rozpocząć ignorowanie błędów, jeśli nie chcesz lub jeśli nie możesz rozwiązać problemu.







Większość kontrolujących menedżerów w Ansible stosuje tę strategię podczas łączenia z hostami docelowymi w rzeczywistych scenariuszach. Ansible domyślnie wstrzymuje działania na urządzeniu docelowym i kontynuuje działania na niektórych innych serwerach za każdym razem, gdy zwraca niezerowy wynik z instrukcji lub błąd z pakietu. Chociaż istnieją pewne sytuacje, w których możesz chcieć działać inaczej. Zwrócony wynik różny od zera czasami oznacza postęp. Często może być konieczne zatrzymanie przetwarzania na jednym serwerze, tak aby zatrzymywało się na wszystkich hostach.



Sposoby ignorowania błędów w Ansible

W Ansible różne sposoby są używane do wykonywania zadań z podręcznika, jeśli pokazuje niepowodzenie zadania. Poniżej przedstawiono różne sposoby, które pomogą wykonać zadanie, nawet jeśli Ansible pokazuje błędy:



1. Wykorzystanie polecenia Ignore_Errors=True





Mimo że zadanie nadal kończy się niepowodzeniem, podręcznik jest nadal wykonywany, jeśli w dolnej części działania zostanie określone polecenie ignore_errors=true. Mimo dbałości o wykonanie zadania lub niepowodzenie, nadal wykonuje kolejne czynności. Jeśli w jakiś sposób czynność się nie powiedzie, przechodzi do następnej. Jeśli działanie zakończy się pomyślnie, po tym kończy proces.

2. Korzystanie z trybu sprawdzania w Ansible



Wykorzystaj specjalne zmienne boolowskie, tryb sprawdzania Ansible, który jest zdefiniowany jako True, gdy Ansible jest w metodzie sprawdzania, aby ominąć zadanie lub zignorować błędy zadania, ilekroć używana jest wersja metody sprawdzania Ansible.

3. Wykorzystanie polecenia Failed=When w Ansible Playbook

W Ansible możemy również użyć warunku fail_when, aby określić, jaka „niepowodzenie” jest implikowana dla każdego działania. Podobnie jak w przypadku wszystkich instrukcji warunkowych Ansible, listy wielu kryteriów fail_when są łączone z implicitem. Tak więc zadanie kończy się niepowodzeniem tylko wtedy, gdy wszystkie warunki są spełnione.

Wymagania wstępne, aby zignorować błędy w Ansible

Narzędzie konfiguracyjne Ansible musi spełniać niezbędne kryteria, aby uwzględnić konkretny przykład:

  • Główny serwer Ansible lub możemy powiedzieć serwer sterujący jest niezbędny, abyśmy mogli skonfigurować polecenia na urządzeniu docelowym.
  • Musimy mieć lokalnych hostów, abyśmy mogli kontaktować się z każdym z nich w celu wykorzystania różnych sposobów ignorowania błędów w oprogramowaniu Ansible. Używamy lokalnego hosta w tym przypadku jako docelowego serwera zdalnego na czas trwania działania.
  • Piszemy podręczniki, uruchamiamy polecenia ignorowania błędów Ansible i używamy kontrolera ansible do śledzenia wyników na odległych hostach.

Aby pomóc uczniowi zrozumieć zasadę wykorzystywania błędu ignorowania w podręczniku Ansible, zaimplementujmy następujący przykład:

Przykład: użycie polecenia Ignore_Errors=True

Jest to najprostszy przykład wykorzystania Ansible do implementacji, w którym umieszczamy kilka zadań w podręczniku i wykonujemy zadania za pomocą polecenia zignoruj ​​błąd. Aby to zrobić, najpierw piszemy następujący kod w terminalu Ansible:

[ źródło @ mistrz ansibla ] # nano ignoruj_errors.yml

Po utworzeniu i uruchomieniu podręcznika ignore_errors.yml zaczynamy teraz wprowadzać polecenia w podręczniku. Najpierw używamy opcji „hosts”, przekazując podane hosty jako „localhost”. W argumencie „zbierz fakty” wpisujemy wartość „false”, dzięki czemu nie będziemy mogli uzyskać dodatkowych informacji o lokalnym hoście podczas uruchamiania podręcznika.

Następnie zaczynamy wymieniać każde zadanie, które chcemy wykonać w opcji „zadania”. W pierwszym zadaniu wyświetlamy dokument, którego nie ma w katalogu Ansible. Najpierw podajemy tytuł zadania, które chcemy zrealizować. Następnie używamy opcji polecenia i przechowujemy nieistniejący dokument tekstowy i używamy „ls”, abyśmy mogli wykonać polecenie w pierwszym zadaniu. Po pierwszym zadaniu używamy polecenia ignore_errors=true, aby w przypadku niepowodzenia zadania znajdującego się powyżej instrukcji ignorować je, przejść do następnego zadania i wykonać je.

Wymieniamy inne zadanie, które jest używane. Jeśli pierwsze zadanie nie powiedzie się, narzędzie Ansible musi wykonać następne zadanie. Następnie używamy parametru debug, aby uruchomić zadanie w podręczniku.

- hosty: host lokalny
zebrać_fakty: FAŁSZ
zadania:
- nazwa: Lista nieistniejących plik
Komenda: ls nieistniejący.txt
ignorować_błędy: PRAWDA

- nazwa: Kontynuować zadanie po niepowodzeniu
odpluskwić:
wiadomość: „Kontynuuj zadanie po niepowodzeniu”

Teraz wymieniamy wystarczającą liczbę zadań do wykonania i sprawdzamy polecenie zignorowania błędu. Teraz kończymy podręcznik i wracamy do głównego terminala. Następnie uruchamiamy podręcznik. W tym celu używamy następującego stwierdzenia:

[ źródło @ mistrz ansibla ] # ansible-playbookignoruj_errors.yml

Po wykonaniu powyższego polecenia otrzymujemy następujący wynik. Jak widać, pierwsze zadanie, które wyświetla nieistniejący plik, kończy się niepowodzeniem. Ale drugie zadanie jest wykonywane pomyślnie, ponieważ zignorowaliśmy pierwsze zadanie, wykorzystując w podręczniku parametr ignore_error=true.

Wniosek

Dowiedzieliśmy się, co oznacza błąd ignorowania w Ansible. Omówiliśmy, jak to działa w podręczniku Ansible. Omówiliśmy również różne sposoby ignorowania błędu w Ansible podczas wykonywania zadań. Zaimplementowaliśmy przykład, aby każda koncepcja była jasna dla użytkownika.