Ansible. Moduły.
W Ansible występują moduły rozbudowujące jego funkcjonalności, tak by pokryył różne obszary infrastruktury informatycznej, które pragniemy zautomatyzować. Moduły także zapewnia nam opisanie za pomocą prostego kodu w YAML tych działań, które wcześniej realizowane były za pomocą interfejsu graficznego lub za pomocą różnych, często skomplikowanych poleceń i języków skryptowych. Ansible ze swoimi modułami to wszystko upraszcza i automatyzuje w przyjemny sposób, tak by sama działa się magia.
Poznajmy zatem kilka najpopularniejszych modułów:
Cloud – to chyba najprężniej rozwijający się moduł. Jak sama nazwa wskazuje, daje on możliwość obsługi usług chmurowych najpopularniejszych a także tych mniej znanych dostawców clouda. Dodatkowo też w nim znajdziemy narzędzia do obsługi wirtualizatorów.
Commands – modul odpowiedzialny za wykonywanie prostych poleceń, skryptów, odpowiadający też na prompty.
Monitoring – tu znajdziesz polecenia wspomagające narzędzia do monitorowania elementów infrastruktury IT, w tym mój ulubiony Zabbix.
File – pomaga pracować w plikami. Obsługuje archiwizację, wyszukiwanie, kopiowanie, dodawanie i inne charakterystyczne operacje wykonywane z plikami.
Database – wspomaga pracę z bazami danych od strony administracyjnej. Konfiguracja, dodanie bazy danych, zmiana parametrów, dodawanie użytkowników bazy danych i tym podobne zadania.
System – odpowiada za narzędzia modyfikujące system operacyjny docelowego hosta. Uruchomienie usług, montowanie dysków, dodawanie użytkowników, zmiana ustawień sieciowych – wszystkie tego typu operacje na hoście uniksowym realizowane są właśnie przez moduł system.
Windows – specjalny moduł do obsługi hostów z systemem Windnows. W pewnym sensie jest to taki odpowiednik modułu System, gdzie mamy narzędzia do obsługi systemów uniksowych.
Przykład playbooka z wykorzystaniem modułu command
name: Playbook z poleceniem
hosts: localhost
tasks:
name: wykonanie polecenia pokazujacego aktualna datę
command: date
Moduły można też wywołać bezpośrednio w linii poleceń ansible -m command - a "date" all
Moduł command jest domyślnym, gdy nie zostanie okresowy zdanej moduł. Tak więc to polecenie może zostać tez podane w ten sposób i zadziała:
ansible -m command - a "date" all
Obecnie dostarczane jest ponad dwadzieścia różnych modułów, które mają za zadanie pokryć każdy obszar IT w jakim można by znaleźć zastosowanie dla automatyzacji. Dla przykładu wspomnę jeszcze o modułach do systemu kolejkowego, szyfrowania, certyfikatów, kubernetesa, magazynów, komunikatorów internetowych, aplikacji webowych i wiele innych.
A jeśli okaże się, że jednak czegoś innego potrzebujemy, coś specyficznego dla naszej pracy to Ansible jest otwarty też na możliwość pisania własnych modułów.