Agenda szkolenia
  1. Zrozumienie podstawowych komponentów Ansible:
    • plik inventory – tworzenie, konfiguracja, wykorzystanie w pracy administratora
    • Ansible modules – budowa, najczęściej wykorzystywane moduły w pracy z systemami Linux, wykorzystanie w praktyce
    • zmienne
    • Ansible facts – gromadzenie, wykorzystanie w playbookach, templatach itp.
    • playbooks – najważniejsze elementy, dobre praktyki w pisaniu własnych playbooków, uruchamianie, sterowanie wykonaniem itp.
    • pliki konfiguracyjne – położenie, najważniejsze zmienne, zastosowanie wielu plików konfiguracyjnych w projektach
    • zdobywanie wiedzy na podstawie dokumentacji, wykorzystanie w praktyce (komendy ad-hoc, playbooki itp.)
  2. Wdrożenie platformy automatyzacji za pomocą Ansible
    • Instalacja niezbędnego oprogramowania, zależności, wersje oprogramowania itp.
    • przygotowanie systemu zarządzającego
    • konfiguracja klientów (generowanie kluczy uwierzytelniających, konfiguracja serwisu sshd, konfiguracja uprawnień systemowych)
    • przygotowanie plików konfiguracyjnych
    • najlepsze praktyki przy budowie pliku inventory
    • dynamic inventory
    • sprawdzanie poprawności działania środowiska, połączenia z klientami itp.
  3. Praca z głównymi modułami w typowych zadaniach administracyjnych:
    • Zarządzanie oprogramowaniem oraz repozytoriami
    • Zarządzanie grupami, użytkownikami w systemie
      •  zarządzanie prawami dostępu
      •  praca z filesystemem
      •  konfiguracja firewalla
      •  zarządzanie serwisami w systemie
      •  konfiguracja dyskami i partycjami lokalnymi (m.in. LVM)
      •  archiwizacja, backupy itp.
      •  zarządzanie plikami i ich kontentem (szczególnie pliki konfiguracyjne systemu)
      •  konfiguracja SELinux
      •  planowanie zadań w systemie (crond)
  4. Praca ze skryptami
    • przygotowanie skryptu na potrzeby automatyzacji
    • posługiwanie się skryptami w procesie automatyzacji pracy środowiska
  5. Ansible playbooks
    • charakterystyka języka YAML
    • sprawdzanie poprawności składni, wykrywanie błędów
    • przygotowanie edytora pod kątem pracy z językiem YAML
    • importowanie zewnętrznych playbooków, tasków, zmiennych itp.
    • optymalizacja oraz udoskonalanie istniejących playbooków
    • przechwytywanie błędów
    • praca ze zmiennymi
    • wykorzystywanie warunków w playbookach
    • sterowanie wykonaniem poszczególnych playów
    • wykorzystanie handlers
  6. Ansible roles
    • Budowa ansible roles
    • tworzenie roli
    • wykorzystywanie własnych roli w automatyzacji serwerów
    • skuteczne wyszukiwanie roles w Ansible Galaxy
  7. Zaawansowane aspekty Ansible:
    • zabezpieczanie playbooków i pozostałych komponentów (np. plików ze zmiennymi) za pomocą Ansible Vault
    • wykorzystanie templates jinja2
    • struktury sterujące w jinja2
    • logowanie zdarzeń Ansible
    • rozwiązywanie problemów
    • sprawdzanie poprawności składni playbooków
    • walidacja poprawności wykonania playbooków
    • paralelizm, pipelining
    • przyśpieszanie działania Ansible