Red Hat Ansible Automation
 
Red Hat Ansible Automation jest platformą do automatyzacji o otwartym kodzie (ang. Open Source). Nadaje się zarówno do automatyzacji niskopoziomowej, która realizowana jest bezpośrednio na każdym z elementów oddzielnie, jak i wysokopoziomowej, która realizowana jest poprzez dedykowane kontrolery innych producentów. Sprawia to, że oprócz automatyzacji różnych rozwiązań Red Hat i innych producentów, spaja dodatkowo automatykę w ramach całego środowiska, opartego o produkty i rozwiązania wielu producentów.
 
 
W ramach platformy dostępny jest interfejs CLI i WebUI oraz API do integracji z zewnętrznymi systemami. Platforma udostępnia scentralizowany wgląd w bieżące i historyczne zdarzenia. Da się w niej tworzyć bardzo zaawansowane przepływy zadań, które mogą być od siebie zależne oraz być wykonywane warunkowo. Obsługiwany jest też harmonogram, który umożliwia cykliczne wykonywanie zadań i ułatwia weryfikację zgodności (ang. compliance). Dostęp do jej poszczególnych elementów da się odpowiednio różnicować i kontrolować. Umożliwia także wygodną integrację z wewnętrznymi i zewnętrznymi pojemnikami poświadczeń oraz bazami użytkowników.
 

Wykorzystuje natywnie dostępne i popularne sposoby zarządzania, do których należy m.in. SSH (Secure Shell), WinRM (Windows Remote Management), NETCONF (RFC 6241), RESTCONF (RFC 8040) czy API. Dzięki temu, zwykle można z niej korzystać bez większych zmian wewnątrz infrastruktury, jak rekonfiguracja zapór sieciowych (ang. firewall) czy instalacja dodatkowego oprogramowania w postaci agentów pośrednich.

 W skład platformy Red Hat Ansible Automation wchodzi kilka elementów, do których należy:
  • Ansible Engine - silnik służący do wykonywania playbook-ów oraz doraźnych (łac. ad-hoc) poleceń.
  • Ansible Tower - centralna obsługa, kontrola i zarządzanie automatyką w ramach organizacji.
  • Automation Hub - portal zawierający certyfikowane kolekcje, role i moduły.
  • Automation Analytics - dodatkowa analityka, raporty i statystyki w ramach wielu klastrów Ansible Tower.

Red Hat Ansible Automation jest szkieletem (ang. framework) do automatyzacji, który wygodnie da się rozbudowywać o nowe funkcjonalności. Realizowane jest to poprzez dodatkowe wtyczki (ang. plugins), których ilość ciągle rośnie. 

Zainteresowanych zakupem lub wdrożeniem Red Hat Ansible Automation This email address is being protected from spambots. You need JavaScript enabled to view it..

Zadaniem platformy Red Hat Ansible Automation jest doprowadzenie urządzeń, systemów, plików, aplikacji bądź usług do żądanego stanu, który opisywany jest w sposób deklaratywny (ang. declarative language). Oznacza to, że tylko określamy stan jaki chcemy by dany obiekt przyjął, bez opisywania w szczegółach w jaki sposób ma zostać to zrealizowane. Doprowadzeniem go do określonego stanu zajmują się już odpowiednie moduły. W zależności od tego w jakim stanie początkowym jest dany obiekt, użyty moduł może wykonać na nim więcej lub mniej różnych operacji, czy nawet nie wykonać żadnej, jeżeli jest to niepotrzebne. Podejście takie charakteryzuje się idempotentnością (ang. idempotent), czyli możliwość wielokrotnego uruchomienia tego samego modułu bez zmiany końcowego stanu.

Oznacza to też to, że możemy bez obaw wielokrotnie wykonywać ten sam moduł na danym obiekcie. Jeżeli dany obiekt jest już w zadeklarowanym stanie, to nic się nie stanie, a jeżeli nie jest, to Ansible doprowadzi go do niego.

Należy pamiętać o tym, że idempotentność jest zagwarantowana tylko jeżeli korzystamy z wbudowanych modułów. Jeżeli tworzymy je sami lub korzystamy z innych możliwości, jak dla przykładu wysyłanie pojedynczych czy zestawów poleceń, to o idempotentność musimy zadbać sami.
 
Oprócz modułów i poleceń, możemy także korzystać z szablonów Jinja2. Nadają się one świetnie do personalizacji zawartości plików w oparciu o zadeklarowane wartości zmiennych.
 
 
O ile korzystanie z szablonów Jinja2 czy możliwości wydawania poleceń CLI może być wygodne, a czasami nawet niezbędne, to należy z tych metod korzystać w ostateczności. Jeżeli tylko jest dostępny odpowiedni moduł, to z niego powinniśmy skorzystać w pierwszej kolejności.
 
W ten sposób nie tylko będziemy mieli zapewnioną idempotentność, ale także będziemy mieli opisaną całą infrastrukturę jednym, spójnym kodem czy językiem (ang. IaC - Infrastructure as Code).

W przypadku Ansible tym językiem jest YAML (YAML Ain’t Markup Language). Za jego pomocą budujemy playbook-i (ang. playbooks), które są sekwencyjną listą zadań do odegrania (ang. plays) na zadanych obiektach, czy inaczej mówiąc, stanów jakie powinny one po ich wykonaniu posiadać. Należy pamiętać, że w ramach playbook-a mogą także zostać zdefiniowane różne inne operacje, jak m.in. przekopiowanie pliku, pobranie czegoś z jakiegoś miejsca, uruchomienie konkretnych poleceń CLI czy wykorzystanie silnika szablonów Jinja2. Istnieje także możliwość korzystania z różnych pętli, wyrażeń warunkowych, wyrażeń regularnych, zmiennych i uchwytów (ang. handler).

Mamy również możliwość wykonywanie doraźnych (łac. ad-hoc) poleceń i zadań, a także definiowanie bardziej złożonych roli (ang. roles). Role są zbiorem playbook-ów, których wykonanie jest niezbędne do pełnienia przez dane urządzenie czy system jakiejś konkretnej roli czy funkcji w naszym środowisku.
 
Red Hat Ansible Automation obsługuje zarówno statyczne jak i dynamiczne inwentarze (ang. inventory). Statyczne tworzy się w plikach INI lub YAML, a dynamiczne poprzez zaciąganie danych z innych rozwiązań, jak Amazon EC2, Red Hat Satellite, Cisco ACI (Application Centric Infrastructure) czy też wyników uruchamianych dynamicznie skryptów, które pobierają dane z różnych baz danych. 
Red Hat Ansible Automation świetnie nadaje się do automatyzacji zarówno małych, jak i dużych sieci. W mniejszych może bezpośrednio łączyć się do urządzeń, dostosowując ich stan do zadanych wymagań, a w większych realizować to poprzez dedykowane systemy, jak Cisco NSO, Cisco SD-WAN, Cisco ACI czy Cisco DNA.

 


Powodem wykorzystywania w większych sieciach dodatkowych kontrolerów SDN (Software Defined Network) jest nie tylko automatyzacja i orkiestracja. Systemy te dostarczają bardzo rozbudowane narzędzia diagnozy, analizy i wizualizacji, czego nie udostępnia Ansible. Dlatego o ile Ansible nie zastąpi takich rozwiązań w pełni, to może z nimi kooperować, działając na poziomie wyżej.

W ten sposób Red Hat Ansible Automation może być narzędziem spajającym naszą całą infrastrukturę. Ponadto, ręczne przeklikiwanie się przez dużą ilość zakładek różnych kontrolerów jest uciążliwe, czasochłonne oraz podatne na błędy i pominięcia. Dlatego o wiele łatwiej zautomatyzować to na poziomie Ansible.


Zapraszamy do kontaktu drogą mailową This email address is being protected from spambots. You need JavaScript enabled to view it. lub telefonicznie +48 797 004 932.