Ansible® to otwarte oprogramowanie do zarządzania stanem infrastruktury oraz do automatyzacji procesów administracyjnych w przedsiębiorstwie. Ułatwia wdrażanie systemów i aplikacji, ich konfigurację, utrzymanie, a także orkiestrację wewnątrz usług dzięki współdzielonym elementom infrastruktury.

Ansible® pozwala zarządzać setkami czy nawet tysiącami systemów naraz – tak jak jednym. Dzięki temu można skonfigurować nawet pojedynczą usługę zainstalowaną na wielu systemach. Zapewnia oszczędność czasu oraz eliminuje problemy związane z ręczną konfiguracją usług. Pomaga także w utrzymaniu środowiska w zgodności ze wszelkimi normami bezpieczeństwa. Dzięki skalowalności i wieloplatformowości umożliwia efektywne wykorzystanie zasobów z wszelkiego typu hostów. Warto zauważyć, iż Ansible® pozwala zarządzać zarówno systemami Linux, BSD, jak i Windows®.

Jak działa Ansible®?

agent-less

Ansible® to platforma bezagentowa. Oznacza to, że nie trzeba instalować żadnego dodatkowego oprogramowania na zarządzanych serwerach klientów. Ansible® łączy się z nimi za pomocą protokołu SSH, co zapewnia wysokie bezpieczeństwo i nie wymaga dodatkowych zasobów, polityki bezpieczeństwa czy otwartych portów. Rozwiązanie nie potrzebuje również dodatkowej, niestandardowej infrastruktury, co ułatwia jej wdrożenie.

Playbooks

Ansible® używa bardzo prostego formatu zapisu YAML (a jest on nawet prostszy od JSON!), dzięki czemu jest łatwy w użyciu i zrozumieniu. Proces automatyzacji zadań jest bardzo czytelny dla administratora. Platformę można wykorzystać także w urządzeniach sieciowych, co znacznie ułatwia zmianę konfiguracji w switchach, routerach czy innych urządzeniach sieciowych.

Ansible® może być używany zarówno ad hoc (wydawanie komend z konsoli dla konkretnych serwerów), jak i na podstawie wcześniej przygotowanych playboooków zawierających wszystkie zaplanowane zdarzenia.

idempotentność

Bardzo ważną cechą Ansible® jest idempotentność. Oznacza to, że wielokrotne wykonanie tego samego zadania nie zmieni stanu systemu. Przykładowo, podczas inicjacji bazy danych będzie ona wypełniana danymi tylko za pierwszym razem (chyba że zechcemy inaczej). Każde następne wykonanie sprawdzi, czy baza jest zainicjowana i jeśli jest, to przejdzie do następnego zadania bez wykonania zmian w systemie.

Kiedy Ansible® nie wystarcza?

Ze względu na swój lokalny konsolowy (w znaczeniu terminalowy) charakter Ansible® może sprawiać kłopoty przy bardziej rozbudowanych środowiskach. Przykładowo dwóch administratorów może chcieć uruchomić dwa wzajemnie wykluczające się zadania w tym samym czasie. Dodatkowym kłopotem staje się historia operacji, dostęp do logów czy możliwość współdzielenia wybranej części infrastruktury przez kilku użytkowników.

Odpowiedzią na te i wiele innych wyzwań jest rozwiązanie EuroTower.