Istnieją jednak przypadki, w których może być konieczne wykonanie konkretnej akcji na komputerze lokalnym zamiast zdalnych hostów. W takich przypadkach jak funkcja taka jak Local_Action Przydaje się.
Ten przewodnik pokaże, jak pracować z modułem Ansible Local_Action w celu wykonania zadań lokalnych.
Jak działa moduł ansible local_action
Jak wspomniano wcześniej, podczas tworzenia podręczników celem są zazwyczaj zdalne hosty. Jeśli chcesz wykonać zadanie dla hostów innych niż zdalne hosty, możesz użyć modułów ansible, takich jak local_action i delegate_to.
DeleGate_to jest przydatny, gdy trzeba ustawić zadanie do wykonania na określonym hoście. Wskaż moduł delegate_to na hosty docelowe, określając jego nazwę hosta lub adres IP.
Local_Action, z drugiej strony, wykona ustalone zadania tylko na komputerze lokalnym. Jest podobny do ustawiania wartości delegate_to na localhost lub 127.0.0.1
deleGate_to: LocalHostModuł Local_Action jest wygodny, gdy po raz pierwszy trzeba wykonać zadanie na komputerze lokalnym przed wysłaniem go do systemów zdalnych. Są to głównie niestandardowe lub powłoki w systemie lokalnym.
Najlepszym sposobem zrozumienia, jak korzystać z modułu Local_Action, jest użycie przykładowych podręczników.
Ansible local_action Przykład przypadków użycia
Dla uproszczenia postaramy się mieć krótkie i niezbyt skomplikowane podręczniki.
Przed skupieniem się na podręcznikach opiszmy naszą konfigurację Ansible, która pozwoli nam zrozumieć, jak działa moduł Local_Action.
W naszej przykładowej konfiguracji mamy Ubuntu 20.04 Serwer, który ma zainstalowany ansible. Będzie to służyć jako węzeł kontrolny ansible.
Następnie mamy trzy zdalne maszyny: Ubuntu 21.04 Serwer, serwer Debian 11 i serwer CentOS 8.
Mamy plik zapasowy Ansible zawierający wszystkie adresy IP trzech hostów w węźle sterowania.
Po uruchomieniu podręcznika wykonuje się on na wszystkich trzech hostach.
NOTATKA: Ograniczymy wyjście do jednego hosta, aby uniknąć złożoności i zamieszania.
Local_action za pomocą modułu
Rozważ następujący podręcznik:
---W pierwszym bloku określamy hosty docelowe do uruchamiania zadań, chyba że określono inaczej.
Poradnik nadal wyłącza gromadzenie faktów na temat zdalnych hostów, ustawiając blok Gather_Facts na nie.
Aby mieć zgodę na odczyt i zapis, ustawiamy blok na true.
W kolejnych blokach definiujemy dwa zadania:
Pierwsze zadanie tworzy archiwum plików dziennika z systemu lokalnego. Delegujemy zadanie uruchomienia w systemie lokalnym za pomocą bloku Local_ActiOb. W naszym przykładzie używamy modułu społeczności, który możemy zainstalować za pomocą polecenia:
kolekcja Ansible-Galaxy instaluj społeczność.ogólnyNastępne zadanie kopiuje archiwum dziennika z systemu lokalnego do określonej ścieżki na zdalnym hoście.
Zapisz podręcznik i uruchom go za pomocą polecenia:
ansible-playbook local_action.ymlPo pomyślnym zakończeniu należy zobaczyć dane wyjściowe podobne do tego pokazanego poniżej:
Local_action za pomocą polecenia powłoki
Poniższy przykład pokazuje, jak uruchomić polecenia powłoki za pomocą modułu Local_Action.
---W powyższym przykładzie podręcznika używamy modułu Local_Action, aby uruchomić polecenie powłoki. Polecenie powłoki liczy liczbę plików i katalogów zapisanych na zmiennej.
Następnie używamy modułu debugowania do wydrukowania liczby plików zarówno na pilocie, jak i lokalizacji.
Uruchom plik jako:
Ansible-Playbook FiLecount.ymlLocal_Action z run_once
Możesz użyć modułu Local_Action wraz z parametrem run_once.
---Poradnik powyżej uruchomi blok Local_Action raz w systemie lokalnym.
Wniosek
Moduł Local_Action jest przydatny, gdy chcesz przekazać zadanie do uruchomienia na komputerze lokalnym. Możesz go użyć zarówno z modułem ansible lub poleceniem powłoki.