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.

Tags: