Ansible Galaxy to jedna z najważniejszych funkcji w ekosystemie Ansible. Umożliwia ona użytkownikom łatwe współdzielenie, zarządzanie i odkrywanie gotowych do użycia ról. Projekt ten został wprowadzony przez Red Hat jako część narzędzia Ansible, które jest jednym z najbardziej popularnych narzędzi do automatyzacji IT. 

Ansible Galaxy, dostępne na stronie galaxy.ansible.com, działa jako repozytorium społecznościowe, w którym użytkownicy mogą publikować swoje role, pobierać role innych użytkowników, oraz oceniać i komentować je. Dzięki temu możliwe jest znaczne przyspieszenie procesu tworzenia i zarządzania konfiguracjami systemów, ponieważ użytkownicy nie muszą pisać wszystkiego od podstaw. Z innych artykułów na portalu dowiedzieliście się jak tworzyć proste, monolityczne i złożone modularne playbooki. W tym artykule przedstawiamy, jak korzystać z ogromnej bazy społeczności Galaxy i przyspieszyć czasem nawet kilkukrotnie swoją pracę. 

W miarę jak Ansible zyskiwało na popularności, pojawiła się potrzeba lepszego zarządzania i dzielenia się rolami. Stąd narodziła się koncepcja Ansible Galaxy – platformy, która umożliwia społeczności użytkowników Ansible dzielenie się swoimi rolami, co z kolei przyczynia się do szybszego rozwoju i wdrażania najlepszych praktyk. Celem Ansible Galaxy jest nie tylko umożliwienie dzielenia się rolami, ale również promowanie standaryzacji i najlepszych praktyk w zarządzaniu konfiguracjami. Dzięki temu użytkownicy mogą korzystać z gotowych rozwiązań, które są już przetestowane i ocenione przez społeczność, co zwiększa zaufanie do ich jakości. Ansible Galaxy jest również narzędziem edukacyjnym – przeglądając role innych użytkowników, można nauczyć się nowych technik i podejść do automatyzacji, co jest szczególnie wartościowe dla mniej doświadczonych użytkowników Ansible. 

Po zainstalowaniu ansible w systemie, galaxy jest już dostępne w pakiecie zatem nie ma potrzeby doinstalowywania czy konfigurowania czegoś dodatkowo w systemie. W tym artykule wszystkie role będziemy opierać na systemie Debian 12. Dla innych systemów nieco mogą się różnić, dlatego trzeba na to zwracać uwagę. 

ansible-galaxy install geerlingguy.apache

Powyższa komenda pobiera rolę do instalacji Apache od użytkownika geerlingguy, który jest jednym z najbardziej aktywnych i szanowanych kontrybutorów w społeczności Ansible. Po pobraniu roli, znajdziemy ją w katalogu roles w naszym projekcie Ansible. Możemy teraz użyć tej roli w naszym playbooku.

Struktura katalogu:

Jak widać role od użytkownika są uniwersalne dla kilku najbardziej popularnych systemów. Stąd warto zwrócić uwagę, której użyjemy.

Przykład Playbooka z użyciem Ansible Galaxy

Załóżmy, że chcemy stworzyć playbook, który instaluje i konfiguruje serwer Apache. Dzięki Ansible Galaxy, nie musimy pisać wszystkiego od podstaw. Zamiast tego, możemy skorzystać z roli geerlingguy.apache, którą wcześniej pobraliśmy. Nasz playbook będzie wyglądał następująco:

– name: Set up Apache web server

  hosts: serwer01

  become: yes

  roles:

    – geerlingguy.apache

Możemy także modyfikować np. porty:

– name: Set up Apache web server with custom port

  hosts: serwer01

  become: yes

  roles:

    – role: geerlingguy.apache

      vars:

        apache_listen_port: 8080

I tak dalej. Nie ma tu konieczności ograniczania się do tego co pobraliśmy.

Uruchamiamy naszego playbooka opartego o przykład z galaxy:

Sprawdzamy na docelowym serwerze:

Serwer WWW został zainstalowany poprawnie.

Ansible Galaxy jest nieocenionym narzędziem dla każdego, kto korzysta z Ansible do zarządzania infrastrukturą IT. Dzięki możliwości dzielenia się i pobierania gotowych ról, użytkownicy mogą znacznie przyspieszyć proces automatyzacji i zarządzania konfiguracją, jednocześnie ucząc się od społeczności i wdrażając najlepsze praktyki. Korzystanie z ról z Ansible Galaxy pozwala na tworzenie bardziej modularnych, czytelnych i łatwiejszych w utrzymaniu playbooków, co jest kluczowe w dużych i złożonych środowiskach. Modularność ról nie tylko ułatwia zarządzanie, ale także zwiększa elastyczność i skalowalność rozwiązań. Dzięki możliwości łatwego nadpisywania zmiennych i dostosowywania ról do specyficznych potrzeb, Ansible Galaxy umożliwia tworzenie bardziej zaawansowanych i dostosowanych rozwiązań. Publikowanie własnych ról i korzystanie z ról społeczności to również sposób na budowanie i umacnianie społeczności Ansible, co przynosi korzyści wszystkim jej członkom.