Jaka jest różnica między Ansible, Ansible Galaxy i Ansible Tower?

Photo of author

By maciekx

Ansible to otwartoźródłowe narzędzie do zarządzania konfiguracją i automatyzacji procesów IT. Ułatwia automatyzację wdrażania oprogramowania, zarządzania konfiguracjami oraz dystrybucji aplikacji.

Ansible wyróżnia się na tle innych rozwiązań do zarządzania konfiguracją. To cecha, która odróżnia go od konkurencji, takiej jak Chef, CFEngine, Salt czy Puppet.

Ansible Tower to interfejs webowy do administrowania Ansible. Użytkownicy tego narzędzia potrzebowali intuicyjnego środowiska, które pozwoliłoby na szybkie wdrażanie i monitorowanie ustawień.

Ansible Tower jest odpowiedzią na te potrzeby. Każdy język i platforma mają swoje unikalne możliwości i specyfikę. W tym artykule omówimy różnice pomiędzy Ansible, Ansible Galaxy oraz Ansible Tower.

Wprowadzenie do Ansible

Ansible to otwarte oprogramowanie do zarządzania konfiguracją, które automatyzuje procesy udostępniania oprogramowania i zarządzania ustawieniami. Pozwala na kontrolę i konfigurację wielu komputerów z poziomu jednego serwera.

Działa w oparciu o model „push”, w którym konfiguracja jest przesyłana z głównej maszyny do wszystkich podłączonych węzłów.

Konfiguracje zapisywane są przy pomocy YAML. Są one łatwe do zrozumienia i wystarczająco proste, aby mogły być tworzone przez administratorów serwerów. Komunikacja odbywa się przez SSH, a OpenSSH pełni rolę warstwy transportowej.

Wszystkie ustawienia Ansible znajdują się w plikach YAML, które nazywamy playbookami. Te playbooki zawierają zadania lub akcje. Do konfigurowania węzłów używany jest moduł.

Playbooki to miejsce, w którym zapisujemy konfiguracje. Wszystkie zadania zdefiniowane w playbooku wykonywane są w określonej kolejności. Obsługują one zarówno wykonywanie synchroniczne, jak i asynchroniczne.

Na załączonym obrazku widać kilka hostów. Te maszyny-hosty służą do wykonywania wszelkich utworzonych przez nas konfiguracji.

Zalety Ansible:

  • Darmowe oprogramowanie typu open-source
  • Prostota: konfiguracja Ansible nie sprawia trudności
  • Duża moc: Ansible pozwala na konfigurację tysięcy maszyn jednocześnie
  • Elastyczność: może być stosowane w wielu środowiskach
  • Bezagentowe: nie wymaga obecności agentów na węzłach, w przeciwieństwie do np. Jenkinsa
  • Wydajność: nie potrzebuje dodatkowego oprogramowania do działania.

Wady Ansible:

  • Trudna instalacja
  • Nie działa na systemie Windows
  • Problemy z kompatybilnością wsteczną

Wprowadzenie do Ansible Galaxy

Ansible Galaxy to platforma umożliwiająca użytkownikom dzielenie się rolami i pobieranie ich. Zachęca do wykorzystywania gotowych, wielokrotnego użytku ról przy konfiguracji serwerów. Jest często stosowany w projektach.

Ansible Galaxy to publiczne repozytorium zawierające role Ansible. Do każdej roli dołączony jest plik README, który dostarcza informacji o sposobie użycia danej roli oraz zmiennych.

W Ansible Galaxy znajdziemy wiele ról, które ciągle ewoluują i rozwijają się. Role umożliwiają rozbicie większych playbooków i tworzenie uporządkowanej struktury. Możemy modyfikować role i używać ich zgodnie z naszymi potrzebami.

Struktura roli w Ansible Galaxy:

  • README.md – plik opisujący rolę. Zawiera szczegółowe informacje o parametrach wejściowych roli oraz przykładowy plik yml.
  • tasks – w tej sekcji zapisywane są wszystkie zadania roli. Punktem wejścia jest plik Main.yml, od którego zaczyna się wykonanie. Plik ten może zawierać odniesienia do innych plików.
  • handlers – kategoria obejmująca handlery, które mogą być używane w tej lub innych rolach.
  • defaults – domyślne zmienne dla danej roli.
  • vars – zmienne o wyższym priorytecie niż wartości domyślne roli.
  • files – pliki, które można wdrożyć za pomocą roli.
  • templates – sekcja zawierająca szablony używane przez rolę.
  • meta – metadane służące do definiowania ról. W tym pliku powinny się znaleźć informacje o zależnościach ról.
  • tests – testy CI do wykonania.
  • library – umieszczane są tutaj moduły i wtyczki. Nie jest tworzony przez polecenie init. Możemy również utworzyć niestandardowy moduł w Pythonie i używać go w zadaniach.

Ansible Galaxy to narzędzie do tworzenia i zarządzania rolami. Z nowymi wersjami Ansible pojawiają się też zmiany. Wersja 2.2.8 wprowadziła funkcję kolekcji. Zawartość Ansible jest dystrybuowana w kolekcjach. Służą one do pakowania i dystrybucji modułów, playbooków i wtyczek.

Zalety Ansible Galaxy:

  • Umożliwia centralne przechowywanie, ponowne wykorzystanie i udostępnianie treści Ansible
  • Łatwe pobieranie gotowych ról do instalacji aplikacji
  • Przyśpiesza proces wdrażania

Wady Ansible Galaxy:

  • Jest tworzone przez społeczność, dlatego nie mamy gwarancji wsparcia modułów
  • Wiele ról w Ansible Galaxy posiada słabą dokumentację
  • Większość ról nie jest idempotentna

Wprowadzenie do Ansible Tower

Ansible Tower to interfejs użytkownika dla Ansible. Jest to rozwiązanie webowe, z którego korzystać mogą różne zespoły IT.

Ansible Tower można porównać do deski rozdzielczej samochodu. Pokazuje ona informacje o stanie pojazdu: prędkość, poziom oleju, paliwa itp. Ansible Tower jest jak deska rozdzielcza, a Ansible to silnik.

Ansible Tower pozwala użytkownikom wykonywać zadania zdalnie za pomocą graficznego interfejsu. Zadania wykonywane są przy pomocy playbooków, które można uruchamiać przez interfejs CLI. Ansible Tower pozwala na zarządzanie i wykonywanie tych playbooków z poziomu GUI.

Możemy wykorzystywać gotowe playbooki lub tworzyć własne. Ansible Tower oferuje również wbudowane powiadomienia. Dzięki nim, konkretne zespoły mogą być informowane o zakończeniu lub niepowodzeniu zadania. Ten rodzaj komunikacji jest kluczowy w każdej organizacji.

Zapewnia również kontrolę dostępu opartą na rolach (RBAC), dzięki czemu mamy kontrolę nad tym, kto może uruchamiać dane zadania. Tylko wybrane osoby mają możliwość wykonywania operacji w Ansible Tower. Jest to ważne dla zachowania zgodności z przepisami bezpieczeństwa.

Oprócz RBAC mamy dostęp do dziennika audytu, który zawiera szczegółowe informacje o tym, kto był odpowiedzialny za jakie zadanie i kiedy. Daje to dodatkowe bezpieczeństwo, trudne do osiągnięcia przy korzystaniu z samego Ansible.

Ansible Tower umożliwia zdalne wykonywanie kodu w różnych aplikacjach. Jeśli maszyna wirtualna jest w złym stanie i wymaga restartu, Ansible Tower ułatwia i zabezpiecza ten proces.

Zdalna instalacja oprogramowania pozwala na szybkie usuwanie luk w zabezpieczeniach lub resetowanie haseł. Ansible Tower to centrum zarządzania infrastrukturą sieciową i maszynami wirtualnymi wdrożonymi przy pomocy Ansible.

W przeciwieństwie do Ansible, Ansible Tower nie jest darmowy. Dostępne są dwie wersje: Premium i Standard. Wybór wersji zależy od wymagań IT firmy. Standardowa edycja jest odpowiednia dla większości operacji IT, natomiast Premium jest przeznaczona dla środowisk DevOps o znaczeniu krytycznym.

Firma Red Hat udziela informacji o cenach po kontakcie z nimi. Wersja Standard kosztuje około 10 000 dolarów rocznie na 100 węzłów, a Premium około 14 000 dolarów rocznie za tę samą liczbę węzłów.

Zalety Ansible Tower:

  • Prosty układ
  • Ułatwia budowę potoku CI/CD do zarządzania przepływem pracy
  • Pozwala na planowanie zadań i powiadamia o błędach
  • Graficzne zarządzanie zasobami
  • Bardzo łatwa konfiguracja

Wady Ansible Tower:

  • Wysoki koszt
  • Oparty na subskrypcji
  • Brak możliwości scalania rozwiązań w przypadku konfliktów
  • Skomplikowane debugowanie

Porównanie Ansible, Ansible Galaxy i Ansible Tower

Ansible jest narzędziem do automatyzacji zadań IT. Pozwala na wdrażanie oprogramowania i konfigurowanie systemów. Umożliwia koordynację bardziej skomplikowanych operacji, takich jak ciągłe wdrażanie czy zbiorcze aktualizacje bez przestojów. Głównym założeniem Ansible jest prostota i łatwość użycia.

Z drugiej strony, Ansible Tower jest opisywany jako „najpotężniejszy klient Git dla komputerów Mac i Windows”. Umożliwia wykorzystanie wszystkich funkcji Git w graficznym interfejsie użytkownika. Ansible Galaxy służy do przechowywania ról Ansible i można go porównać do PyPI dla Pythona lub Maven dla Javy.

Ansible Tower nie może działać bez Ansible. Ansible Tower jest używany wraz z Ansible. Ansible jest silnikiem, który napędza zarządzanie infrastrukturą i procesy wdrażania.

Ansible Tower pozwala nam monitorować i kontrolować stan zgodności bezpieczeństwa infrastruktury organizacji.

Ansible Tower zapewnia RBAC dla wdrożeń Ansible. Jest to również świetne rozwiązanie, jeśli chcemy, aby osoby bez doświadczenia w kodowaniu mogły monitorować infrastrukturę.

Poniżej znajduje się porównanie Ansible, Ansible Tower i Ansible Galaxy:

AnsibleAnsible TowerAnsible GalaxyNarzędzie do zarządzania konfiguracją typu Open SourceInterfejs użytkownika AnsibleRepozytorium ról i kolekcjiWykonywanie playbooków z poziomu CLIWykonywanie playbooków z poziomu GUIUruchamianie ansible-galaxy z poziomu CLIpierwsza wersja w 2012pierwsza wersja w 2015pierwsza wersja w 2016Bezpłatne w użyciuCeny zaczynają się od 5000$ rocznie za 100 węzłówBezpłatne w użyciuProsta konfiguracja i użytkowanieZapewnia wgląd w całe środowisko AnsibleUmożliwia ponowne wykorzystanie bloków kodu w różnych playbookach

Podsumowanie

To już wszystko w temacie Ansible, Ansible Tower i Ansible Galaxy oraz różnic pomiędzy nimi. Organizacja powinna przeanalizować swoje potrzeby w zakresie Ansible Tower, ponieważ jest to kosztowne rozwiązanie. Ansible jest doskonałym narzędziem CM dla środowisk opartych o Linuksa.

Możesz być również zainteresowany zadaniami Sysadmin, które można zautomatyzować za pomocą Ansible.


newsblog.pl