Zastanawiasz się, czym jest Ansible? Nie przejmuj się, w ciągu kilku minut wszystko stanie się jasne.
Czym właściwie jest Ansible?
Ansible to otwartoźródłowe narzędzie DevOps, które wspomaga zarządzanie konfiguracją, wdrażanie aplikacji i udostępnianie zasobów. Jego implementacja jest prosta, ponieważ do komunikacji między serwerami wykorzystuje SSH. Zadania automatyzacji opisuje się za pomocą playbooków, które są tworzone przy użyciu intuicyjnego języka YAML.
Ansible gwarantuje niezawodność, spójność i skalowalność infrastruktury IT. Z jego pomocą można zautomatyzować konfigurację baz danych, przestrzeni dyskowej, sieci czy zapór ogniowych. Dba o to, by wszystkie niezbędne pakiety i oprogramowanie były jednolite na serwerze, zapewniając płynne działanie aplikacji.
Wyobraź sobie sytuację, w której masz wersję aplikacji do debugowania, zbudowaną z wykorzystaniem Visual C++. Aby aplikacja działała na komputerze, konieczne jest zainstalowanie bibliotek DLL Microsoft Visual C++ oraz samego Visual C++. W tym właśnie momencie Ansible wkracza do akcji, upewniając się, że wszystkie wymagane pakiety i oprogramowanie są obecne na Twoim komputerze, umożliwiając bezproblemową pracę aplikacji w środowiskach testowych i produkcyjnych.
Dodatkowo, Ansible przechowuje historię zmian w aplikacji, co pozwala na łatwe przywrócenie poprzedniej wersji lub jej aktualizację w dowolnym momencie.
Przyjrzyjmy się bliżej niektórym jego kluczowym cechom.
Bezagentowy – w przeciwieństwie do innych rozwiązań, takich jak Puppet czy Chef, Ansible nie wymaga instalowania żadnego oprogramowania ani agenta na zarządzanych węzłach.
Python – Ansible jest oparty na Pythonie, szybkim i cenionym języku programowania.
SSH – wykorzystuje prosty i bezpieczny protokół uwierzytelniania sieciowego bez hasła. Wymaga jedynie skopiowania klucza do klienta.
Architektura push – Ansible przesyła konfiguracje do klientów. Wystarczy zapisać konfiguracje (w formie playbooka) i przekazać je do węzłów jednocześnie. Dzięki temu można wprowadzić zmiany na tysiącach serwerów w ciągu kilku minut.
Konfiguracja – do działania wymaga minimalnej konfiguracji.
Architektura Ansible
Zacznijmy od chmury publicznej lub prywatnej, gdzie znajduje się serwer Linux. Może on pełnić rolę repozytorium dla wszystkich instalacji i konfiguracji IT.
Przedstawiona architektura zawiera wiele maszyn hostów, z którymi serwer Ansible komunikuje się, przesyłając playbooki za pomocą protokołu SSH.
Ansible wykorzystuje silnik automatyzacji, który umożliwia użytkownikom uruchamianie playbooków bezpośrednio na hostach. Silnik ten składa się z kilku elementów. Pierwszym jest inwentarz hostów, czyli lista adresów IP wszystkich hostów.
Kolejnym elementem są moduły. Ansible udostępnia setki wbudowanych modułów, które reprezentują fragmenty kodu wykonywane po uruchomieniu playbooka. Playbook zawiera zbiór sztuk, sztuka składa się z zadań, a zadanie z modułów.
Gdy uruchamiasz playbook, moduły są wykonywane na hostach, realizując przypisane im akcje. Możliwe jest także tworzenie własnych modułów, co wymaga napisania kilku linijek kodu.
Architektura zawiera również playbooki, które definiują przepływ pracy. Zadania zapisane w playbooku są wykonywane w dokładnie takiej kolejności, w jakiej zostały zapisane. Playbooki tworzy się w łatwym do zrozumienia języku YAML, który przypomina język angielski.
Kolejnymi elementami architektury są wtyczki, które są specjalnym rodzajem modułów. Wtyczki wykonują się przed modułami na węzłach, głównie na maszynie sterującej, do celów logowania. Wtyczki zwrotne (callback) pozwalają na podpięcie się pod zdarzenia Ansible w celu monitorowania i logowania. Wtyczki pamięci podręcznej przyspieszają działanie, zapisując fakty i unikając kosztownych operacji ich zbierania. Ansible oferuje także wtyczki akcji, które wykonują zadania na maszynie sterującej przed wywołaniem samych modułów.
W architekturze znajdziemy również wtyczki do połączeń. Nie zawsze jest konieczne wykorzystanie SSH do łączenia się z hostami. Można użyć na przykład wtyczki połączenia Dockera, aby zarządzać kontenerami.
To wszystko na temat architektury. Teraz wyjaśnię, jak dokładnie działa Ansible.
Jak działa Ansible?
Ansible działa poprzez łączenie się z węzłami i przesyłanie małych programów, zwanych modułami Ansible. Moduły te są domyślnie wykonywane przez SSH, a następnie usuwane po zakończeniu działania.
Węzeł zarządzający Ansible jest węzłem kontrolnym, który kieruje wykonaniem playbooków. To z niego uruchamia się instalację, a plik inwentarza zawiera listę hostów, na których mają zostać uruchomione moduły. Węzeł zarządzający nawiązuje połączenie SSH, a następnie wykonuje moduły na hostach i instaluje oprogramowanie, po czym moduły są usuwane. W ten sposób działa Ansible.
Teraz pewnie chciałbyś wiedzieć, jak zainstalować i skonfigurować Ansible.
Podsumowanie
Mam nadzieję, że teraz masz lepsze pojęcie o Ansible. Ansible zmienia sposób zarządzania infrastrukturą. Jeśli jesteś administratorem lub programistą, możesz rozważyć kurs praktyczny, aby rozwinąć swoje umiejętności.