Ansible
Red Hat Ansible Automation Platform
Automatyzacja konfiguracji i orkiestracja bez agentow. Zarzadzaj setkami serwerow jednym poleceniem przez SSH.
Ansible uzupelnia Terraform - Terraform tworzy infrastrukture, Ansible ja konfiguruje. Architektura agentless sprawia, ze jest prosty do wdrozenia. Wiele firm uzywa Ansible do zarzadzania konfiguracjami serwerow.
Ansible to narzedzie do automatyzacji konfiguracji, wdrazan i orkiestracji stworzone przez Red Hat. Jego glowna zaleta to architektura agentless - nie wymaga instalowania zadnego oprogramowania na serwerach docelowych. Wystarczy SSH i Python (ktory jest na prawie kazdym Linuxie).
Ansible uzywa deklaratywnych plikow YAML zwanych Playbook. Definiujesz pozadany stan serwera (zainstalowane pakiety, konfiguracja uslug, pliki) i Ansible doprowadza go do tego stanu. Co wazne, Ansible jest idempotentny - mozesz uruchomiac ten sam playbook wielokrotnie bez obawy o niespojnosci.
Dla Cloud Engineera Ansible to doskonale uzupelnienie Terraform. Terraform tworzy infrastrukture (EC2, VPC, RDS), a Ansible konfiguruje serwery (instaluje pakiety, ustawia uslugii, deployuje aplikacje). Razem daja pelna automatyzacje od zera do produkcji.
Ansible laczy sie z serwerami przez SSH, kopiuje tymczasowe moduily Python, wykonuje je i zwraca wyniki. Nie wymaga agenta po stronie serwera.
Parsowanie playbooka
Ansible wczytuje plik YAML, rozwiazuje zmienne, filtry Jinja2 i inventory. Buduje liste taskow do wykonania.
Polaczenie SSH
Ansible laczy sie z serwerami docelowymi przez SSH. Kontroluje polaczenia (forks) dla rownoleglego wykonania.
Przeslanie modulow
Tymczasowy skrypt Python z kodem modulu jest kopiowany na serwer docelowy i uruchamiany.
Wykonanie i raport
Modul sprawdza aktualny stan, wykonuje zmiany jesli potrzebne i zwraca status: changed, ok, failed lub skipped.
Cleanup
Tymczasowe pliki sa usuwane z serwera docelowego. Handlers sa uruchamiane na koncu, jesli zostaly notified.
Sprawdzone praktyki pracy z Ansible w srodowiskach AWS.
Uzywaj rol zamiast monolitycznych playbookow
ansible-galaxy init moja_rola tworzy strukture. Role sa testowalce, reuzywalne i latwe do utrzymania.
PoczatkujacyDynamic inventory z AWS
Zamiast recznej listy IP uzyj pluginu aws_ec2. Ansible automatycznie odkrywa instancje EC2 po tagach.
ZaawansowanyAnsible Vault do tajnych danych
ansible-vault encrypt szyfruje pliki z haslami i kluczami. Nigdy nie trzymaj secrets w plaintext.
PoczatkujacyTestuj z Molecule
Molecule tworzy tymczasowe kontenery Docker, uruchamia role i weryfikuje wyniki. CI/CD dla Ansible.
ZaawansowanyDo czego sluzy Ansible?
Konfiguracja serwerow
Zainstaluj pakiety, skonfiguruj Nginx, ustaw firewalla, dodaj uzytkownikow - wszystko opisane w YAML i powtarzalne.
Wdrazanie aplikacji
Pobierz kod z Git, zainstaluj zaleznosci, zrestartuj usluge, wykonaj health check. Rolling deploy bez downtime.
Patching i aktualizacje
Zaktualizuj pakiety na 100 serwerach jednoczesnie z kontrola nad kolejnoscia i rollback w razie problemow.
Compliance i hardening
Wymus standardy bezpieczenstwa na wszystkich serwerach. CIS benchmarks, audyt konfiguracji, raportowanie niezgodnosci.
Co musisz wiedziec?
Playbook
Plik YAML definiujacy zadania do wykonania na grupie serwerow. Glowna jednostka automatyzacji w Ansible.
Inventory
Lista serwerow i ich grup. Moze byc statyczny plik INI/YAML lub dynamiczne inventory pobierajace hosty z AWS (plugin amazon.aws.aws_ec2).
Role
Zorganizowany zestaw taskow, handlers, templates i zmiennych. Umozliwia reuzywanie logiki miedzy projektami.
Module
Gotowe jednostki pracy: apt, yum, copy, template, service, ec2_instance, s3_object. Ponad 3000 modulow dostepnych.
Idempotentnosc
Wielokrotne uruchomienie tego samego playbooka daje ten sam rezultat. Ansible sprawdza aktualny stan przed wykonaniem zmian.
Handler
Task uruchamiany tylko gdy zostanie powiadomiony (notify). Typowo: restart Nginx po zmianie konfiguracji.
Przyklady Ansible CLI
Uruchomienie playbooka
Wykonaj playbook na serwerach z inventory
ansible-playbook -i inventory.yml site.yml
Ad-hoc komenda
Wykonaj pojedyncza komende na wszystkich serwerach
ansible all -i inventory.yml -m shell -a 'uptime'
ansible webservers -m apt -a 'name=nginx state=latest' --become
Dynamiczny inventory z AWS
Uzyj pluginu AWS EC2 do automatycznego odkrywania instancji
# aws_ec2.yml
plugin: amazon.aws.aws_ec2
regions:
- eu-central-1
filters:
tag:Environment: production
ansible-playbook -i aws_ec2.yml deploy.yml
Test playbooka (dry run)
Sprawdz co playbook zmieni bez wykonywania zmian
ansible-playbook site.yml --check --diff
Jak Ansible dziala z AWS?
Ansible posiada kolekcje amazon.aws i community.aws z modulami do zarzadzania EC2, S3, RDS, VPC, IAM i innymi serwisami. Dynamic inventory automatycznie odkrywa instancje EC2. Ansible moze dzialac z AWS Systems Manager Session Manager zamiast SSH. AWX/Ansible Tower integruje sie z CloudWatch do logowania.
Quiz: Ansible
Sprawdz czy dobrze rozumiesz podstawy. Kliknij odpowiedz - feedback pojawi sie od razu.
1. Czym wyroznia sie Ansible od Puppet i Chef?
2. Co to jest Playbook w Ansible?
3. Co oznacza idempotentnosc w kontekscie Ansible?
Serwisy AWS powiazane z Ansible
Chcesz poznac Ansible w praktyce?
Kurs Ansible jest w przygotowaniu. Zapisz sie na newsletter, zeby nie przegapic premiery. W miedzyczasie sprawdz darmowy kurs "AWS od podstaw".