Automatyzacja

Ansible w praktyce – jak zaoszczędzić godziny pracy administracyjnej tygodniowo

Ręczne aktualizowanie 20 serwerów? Konfigurowanie nowego komputera od zera za każdym razem? Ansible eliminuje powtarzalną pracę i wprowadza powtarzalność tam, gdzie dotąd panował chaos.

SS
SmoothSolutions
10 lutego 20268 min czytania
Ansibleautomatyzacja ITDevOpsadministracja serwerówIaC

Każdy administrator IT ma w głowie listę zadań, które robi ręcznie, bo „to tylko chwila”. Aktualizacja pakietów na kilku serwerach. Tworzenie konta użytkownika na nowej maszynie. Wdrożenie tej samej konfiguracji firewalla na trzech urządzeniach. Pojedynczo to 10–30 minut. Razem, w skali roku – setki godzin. Ansible pozwala te setki godzin odzyskać.

Ansible w jednym zdaniu

Ansible to narzędzie do automatyzacji konfiguracji i zarządzania infrastrukturą. Piszesz playbook – plik YAML opisujący pożądany stan systemu – i uruchamiasz go na dowolnej liczbie maszyn jednocześnie. Nie wymaga agentów – łączy się przez SSH. Jest idempotentny – możesz uruchomić go dziesięć razy i za każdym razem doprowadzi system do tego samego stanu, nie psując nic po drodze.

5 zadań, które warto zautomatyzować od razu

  1. 1Aktualizacje bezpieczeństwa – jednolinijkowy playbook aktualizuje wszystkie serwery naraz i restartuje tylko te, które tego wymagają.
  2. 2Onboarding użytkowników – nowy pracownik? Playbook tworzy konta, ustawia klucze SSH, dodaje do odpowiednich grup i konfiguruje środowisko.
  3. 3Backup konfiguracji – codzienny job pobiera konfiguracje switchów, routerów i firewalli i wrzuca do Git.
  4. 4Wdrożenie aplikacji – ten sam kod na staging i produkcję bez ręcznego kopiowania plików i modyfikacji configów.
  5. 5Hardening serwerów – CIS Benchmark zastosowany do nowych maszyn jednym poleceniem zamiast ręcznego checklistowania.

Struktura projektu Ansible – jak to zorganizować

Kluczem do długoterminowego sukcesu jest dobra organizacja. W SmoothSolutions stosujemy strukturę ról (roles), która pozwala wielokrotnie używać tego samego kodu w różnych kontekstach:

  • inventory/ – grupy serwerów (web, db, monitoring, network)
  • group_vars/ – zmienne dla grup (np. wersja Postgresa dla serwerów db)
  • roles/ – wielokrotnie używane moduły (nginx, postgresql, hardening, backup)
  • playbooks/ – orkiestracja ról dla konkretnych zadań (site.yml, update.yml, onboard_user.yml)
💡

Zasada: nigdy nie pisz tego samego dwa razy. Jeśli konfigurujesz coś po raz drugi ręcznie, to znak, że powinieneś to zinautomatyzować.

Ansible Tower / AWX – automatyzacja dla całego zespołu

Ansible z linii poleceń to świetny start. Ale gdy w zespole jest kilka osób i setki serwerów, warto sięgnąć po AWX (open-source) lub Red Hat Ansible Automation Platform. Dają GUI, harmonogramowanie jobów, zarządzanie credentialami i audyt – kto uruchomił co i kiedy.

Ansible vs. inne narzędzia

Na rynku są też Puppet, Chef i Terraform. Puppet i Chef wymagają agentów i są bardziej złożone w konfiguracji. Terraform jest świetny do provisjonowania infrastruktury (chmura, VMs), ale nie do konfiguracji systemu operacyjnego. Ansible zajmuje najlepszą niszę: nie wymaga agentów, uczy się szybko i działa zarówno w środowiskach on-premise (typowych dla firm z Tczewa), jak i w chmurze.

W SmoothSolutions używamy Ansible do zarządzania całą infrastrukturą klientów – od prostych aktualizacji po kompleksowe wdrożenia. Efekt: mniej błędów ludzkich, pełna dokumentacja zmian w Git i możliwość odtworzenia każdego środowiska od zera w ciągu minut.