Ansible
Ansible to otwartoźródłowe narzędzie do automatyzacji IT, wykorzystywane do zarządzania konfiguracją serwerów, wdrażania aplikacji i orkiestracji wieloetapowych procesów. Jego wyróżnikiem jest architektura bezagentowa: Ansible łączy się ze zdalnymi maszynami przez SSH (w przypadku Windows — WinRM) i nie wymaga instalowania żadnego oprogramowania po stronie zarządzanych hostów. Pożądany stan infrastruktury opisuje się deklaratywnie w plikach YAML, co czyni Ansible jednym z filarów podejścia Infrastructure as Code.
Jak działa Ansible?
Praca z Ansible opiera się na kilku pojęciach:
- inwentarz (inventory) — lista zarządzanych hostów pogrupowanych np. w „web”, „db”, „monitoring”;
- playbook — plik YAML opisujący zadania do wykonania na wskazanych grupach: instalację pakietów, szablonowanie konfiguracji, restart usług;
- moduły — gotowe jednostki wykonawcze (apt, systemd, template, user i tysiące innych), które realizują zadania w sposób idempotentny — zmieniają system tylko wtedy, gdy jego stan odbiega od zadeklarowanego;
- role — wielokrotnego użytku pakiety zadań, zmiennych i szablonów, którymi dzieli się np. przez Ansible Galaxy.
Podczas uruchomienia Ansible tłumaczy zadania na małe programy w Pythonie, kopiuje je na hosty, wykonuje i raportuje, co faktycznie się zmieniło.
Zastosowanie w praktyce
Typowe scenariusze to przygotowanie nowego serwera od zera (użytkownicy, klucze SSH, firewall, fail2ban), utrzymanie spójnej konfiguracji dziesiątek maszyn, aktualizacje pakietów w kontrolowanych falach oraz wdrożenia aplikacji łączone z pipeline'ami CI/CD. Administratorzy cenią Ansible również przy migracjach — ten sam playbook odtwarza identyczne środowisko na nowym VPS w kilka minut, eliminując ręczne, podatne na błędy kroki.
Ansible bywa też warstwą orkiestracji dla środowisk kontenerowych: buduje obrazy, konfiguruje hosty Dockera czy przygotowuje węzły pod Kubernetes. W firmach, które zarządzają serwerami klientów, playbooki pełnią rolę żywej dokumentacji — każdy element konfiguracji jest zapisany w repozytorium i podlega przeglądom jak zwykły kod.
Powiązane pojęcia
Najczęstsze pytania
Czym Ansible różni się od Puppeta i Chefa?
Ansible działa bezagentowo — łączy się z serwerami po SSH i niczego na nich nie instaluje, podczas gdy Puppet i Chef wymagają agenta i zwykle serwera centralnego. Konfigurację pisze się w YAML, a nie w dedykowanym DSL-u, więc próg wejścia jest niższy.
Czy playbooki Ansible można uruchamiać wielokrotnie?
Tak — dobrze napisane playbooki są idempotentne. Moduły sprawdzają aktualny stan systemu i wykonują zmiany tylko wtedy, gdy odbiega on od zadeklarowanego, więc ponowne uruchomienie nie psuje konfiguracji ani nie duplikuje operacji.
