Co to jest Ansible?
Ansible jest to narzędzie, które ułatwia zarządzanie infrastrukturą fizyczną. Głównie serwerami ale też komputerami, urządzeniami sieciowymi, routerami usługami w chmurze i wieloma innymi urządzeniami. Ułatwia wdrażanie systemów i aplikacji, konfigurowanie i ich utrzymanie. W taki sam łatwy sposób dla 10 serwerów jak i dla 10 000. Ansible najlepiej współpracuje z systemami z rodziny Linux.
Dla jasności, sam Ansible działa z systemu Linux/FreeBSD/MacOS ale może zarządzać maszynami z Windows
Cechy Ansible’a
IaC – Ansible jest przykładem rozwiązania dla infrastruktury jako kod (Infrastructure as Code)
Inne przykłady narzędzi IaC: Terraform, Chef, Puppet, SaltStack, AWS CloudFormation
Bez agenta – Ansible nie potrzebuje agenta aby zarządzać serwerem czy innym urządzeniem. Wystarczy mu tylko aktywne połączenie SSH.
Playbooki – Ansible używa tak zwanych playbooków jako listy zadań do wykonania. T Playbooki zapisane są w formacie YAML, który jest bardzo czytelny i łatwy w zrozumieniu dla człowieka i Ansibla. Taki przepis na ciasto.
Task – to jedno zadanie do wykonania w playbooku. Ustaw piekarnik na 200 stopni w przepisie na ciasto.
Role – jest to konkretny zestaw zadań często ze zmiennymi w celu uzyskania konkretnego efektu. Na przykład instalacja serwera MySQL z konkretnymi ustawieniami.
Playbook vs Role
Często pojawią się pytanie czym się różni playbook od roli (role). Ponieważ oba pliki wydaja się realizować podobne zadanie. Jednak generalną różnica jest to że to rola powstała dla playbooka, aby jego struktura była czytelniejsza. No i najważniejsze: playbook jest tym (master) plikiem, który uruchamia bezpośrednio Ansible.
Moduł – to narzędzie które wykonuje jakieś zadanie w danym oprogramowaniu czy środowisku. Ansible ma moduły starające się pokryć wszystkie zadania w obsługiwanych obszarach oprogramowania.
Deklaratywnie – oznacza to że zadania, które opisujemy w playbooku to stan jakiego oczekujemy a nie działania jakie mają się zadziać. Na przykład: w playbooku chcemy żeby usluga byla w stanie uruchomiona (running) a nie żeby została wystartowana.
Co ważne, w Ansiblu też możemy wykonywać polecenia imperatywne – czyli co ma się zadziać.
Ansible to naprawdę przyjemne narzędzie idealne dla każdego admina czy devopsa. Co istotne – łatwo się go szybko nauczyć.