Pętle to zestawy poleceń lub instrukcji, które są ustawione na powtarzanie określonej liczby razy według wymagań użytkownika. Pętle pozwalają na lepszy przepływ sterowania w skryptach i usunąć z nich ogólną redundancję.
Ansible ma również wiele metod zapętlania bloków kodu. Ten przewodnik ma pomóc Ci dowiedzieć się o pętlach w Ansible. Omówimy podstawy zapętlania w Ansible, wraz z składnią i odpowiednimi przykładami.
To powiedziawszy, spójrzmy na pętle w Ansible.
Słowa kluczowe dla pętli w Ansible
Ansible używa następujących słów kluczowych dla swoich struktur pętli:
Jak sama nazwa wskazuje, „pętla” jest poleceniem do wdrażania pętli w blokach kodu.
Podobnie jak „pętla”, masz „z_”. To polecenie wymaga podania wtyczki wyszukiwania. Zaleca się użycie z_* zamiast pętli, gdy zaangażowane są wtyczki wyszukiwania.
„Dopóki” pozwala na wykonywanie zadania, dopóki nie zostanie spełniony wymagany warunek. Jest to najbliżej warunku „while” w przepływie kontrolnym.
Teraz, gdy masz pomysł słów kluczowych dla pętli, możesz uczyć się, jak je zaimplementować w kodzie.
Standardowe pętle w Ansible
Zaczniemy od omówienia, jak wdrożyć standardowe pętle w Ansible. Do standardowych pętli użyjemy słowa kluczowego „with_”.
Ten przykład pokazuje, w jaki sposób możemy używać pętli, aby dodać użytkowników.
- Nazwa: Dodaj wielu użytkownikówTeraz następnym krokiem byłoby uruchomienie podręcznika. Możesz to zrobić za pomocą następującego polecenia w terminalu Linux:
Ansible-Playbook Testbook.ymlTutaj „pozycja” to termin wyszukiwania. „With_Item” ma odpowiednio dwa hosty, odpowiednio VM1 i VM2. Pętla robi to samo, co poniższy kod:
- Nazwa: Dodaj użytkownika VM1Jak widać, za pomocą „with_item” jesteśmy w stanie usunąć redundancję z naszego kodu. Dodając więcej użytkowników w „with_Items:”, możemy dodać wielu użytkowników zgodnie z potrzebami.
Następny przykład obejmie sposób wykonania zagnieżdżonych pętli w Ansible.
Zagnieżdżone pętle w Ansible
Ansible pozwala wdrożyć zagnieżdżone pętle w swoich skryptach. Przykład takiej pętli podano poniżej.
- Nazwa: zapewnia użytkownikom dostęp do baz danychAlternatywnie możesz napisać ten sam kod z „Loop” w następujący sposób:
- Nazwa: zapewnia użytkownikom dostęp do baz danychUżytkownicy otrzymają dostęp do wszystkich baz danych jeden po drugim. Jak wspomniano wcześniej, łatwiej jest zrozumieć, że „with_” jest lepsze z wtyczkami wyszukiwania niż „pętli” jako składni.
Rzućmy okiem na inne przykłady podkreślające zdolność Ansible.
Używanie ansible do iteracji przez skrótów
Ansible pozwala zapętlić się listy skrótów. Można to zobaczyć z podanego poniżej przykładu.
Załóżmy, że zadeklarowałeś listę użytkowników w następujący sposób.
Użytkownicy:Aby wydrukować wszystkie nazwy i seriale, wykonaj skrypt poniżej.
Zadania:To wydrukuje odpowiednio nazwy użytkowników i seriale. Dodając więcej użytkowników w panelu „Użytkownicy:”, możesz wydrukować więcej użytkowników bez konieczności pisania kodu.
Korzystanie z pętli dla równoległych zestawów danych
Możesz także użyć pętli do równoległych zestawów danych. Pokazano to w poniższym przykładzie:
Załóżmy, że masz następujące dane:
Alfabety: [„A”, „B”, „C”, „D”]Możesz zapętlić te polecenia w następujący sposób:
Zadania:Powyższy kod zapętli oba zestawy danych razem jako (a, 2), (b, 4) itp.
Losowe pętle wyboru
Jedną z funkcji, które są wyposażone w pętle „with_”, jest „Random_Choice”.
Jak sama nazwa wskazuje, funkcja losowego wyboru służy do losowego wyboru elementów z danego zestawu instrukcji.
Ten przykład ilustruje, jak zrobić pętle do wyboru akcji z danej listy ciągów.
- odpluskwić:Tutaj ciąg „Wykonaj działanie” jest dowolny i można go zastąpić wszystkim. Polecenie with_random_choice wybrałoby z losowej listy akcji.
Przykłady pętli „aż do”
Ta sekcja przewodnika będzie dotyczyła składni pętli „do”.
Jak wspomniano wcześniej, polecenie „do” powtórzy określony zestaw instrukcji, dopóki nie spełni określonego warunku.
Oto przykład pętli „do” w akcji.
Shell:/usr/bin/fooTo jest przykład pętli rekurencyjnej. Powyższy blok kodu będzie nadal działał, dopóki powłoka odbędzie „wszystkie systemy gotowe” jako wyjście tekstowe. Jeśli tak nie jest, zatrzyma się po 10 razy, ponieważ określone ponownie wynoszą „10”.
Opóźnienie odpowiada opóźnieniu w sekundach. Domyślnie jest ustawiony na 5.
Wniosek
To był przewodnik o tym, jak możesz używać pętli w Ansible. Omówiliśmy podstawy pętli i ich składni w Ansible i wykazaliśmy ich zastosowanie za pomocą różnych przykładów. Mamy nadzieję, że jesteś o krok bliżej automatyzacji procesów za pomocą Ansible.