SPIS TREŚCI
Wprowadzenie
Część I. Infrastruktura jako kod, zarządzanie konfiguracją, zapewnienie bezpieczeństwa i administrowanie systemami
1. Przygotowanie maszyny wirtualnej
Dlaczego warto używać kodu do utworzenia infrastruktury?
Rozpoczęcie pracy z narzędziem Vagrant
Instalacja
Anatomia pliku Vagrantfile
Podstawowe polecenia Vagrant
Rozpoczęcie pracy z Ansible
Instalacja
Najważniejsze koncepcje Ansible
Scenariusz Ansible
Podstawowe polecenia Ansible
Utworzenie maszyny wirtualnej z systemem operacyjnym Ubuntu
Podsumowanie
2. Używanie Ansible do zarządzania hasłami, użytkownikami i grupami
Wymuszenie stosowania silnych haseł
Instalowanie narzędzia libpam-pwquality
Konfiguracja modułu pam_pwquality w celu wymuszenia silniejszej polityki haseł
Rodzaje użytkowników w systemie Linux
Rozpoczęcie pracy z modułem user w Ansible
Wygenerowanie silnego hasła
Grupy w systemie Linux
Rozpoczęcie pracy z modułem group w Ansible
Przypisywanie użytkownika do grupy
Tworzenie zasobów chronionych
Uaktualnianie maszyny wirtualnej
Sprawdzanie uprawnień użytkownika i grupy
Podsumowanie
3. Używanie Ansible do konfiguracji SSH
Poznawanie i aktywowanie uwierzytelnienia z użyciem klucza publicznego
Generowanie pary klucza publicznego
Używanie Ansible w celu pobrania w maszynie wirtualnej Twojego klucza publicznego
Dodawanie uwierzytelniania wielopoziomowego
Instalowanie Google Authenticator
Konfigurowanie modułu Google Authenticator
Konfiguracja PAM dla modułu Google Authenticator
Konfigurowanie serwera SSH
Ponowne uruchomienie serwera SSH za pomocą procedury obsługi
Przygotowanie maszyny wirtualnej
Testowanie dostępu za pomocą SSH
Podsumowanie
4. Kontrolowanie za pomocą sudo poleceń wydawanych przez użytkownika
Czym jest sudo?
Planowanie polityki bezpieczeństwa sudoers
Instalacja aplikacji internetowej Greeting
Anatomia pliku sudoers
Utworzenie pliku sudoers
Szablon sudoers
Przygotowanie maszyny wirtualnej
Testowanie uprawnień
Uzyskanie dostępu do aplikacji internetowej
Edycja pliku greeting.py w celu przetestowania polityki sudoers
Zatrzymywanie i uruchamianie serwera za pomocą polecenia systemctl
Audyt dzienników zdarzeń
Podsumowanie
5. Automatyzacja i testowanie zapory sieciowej hosta
Planowanie reguł zapory sieciowej
Automatyzacja reguł UFW
Przygotowanie maszyny wirtualnej
Testowanie zapory sieciowej
Skanowanie portów za pomocą nmap
Rejestrowanie danych zapory sieciowej
Ograniczenie komunikacji z portem
Podsumowanie
Część II. Konteneryzacja i wdrażanie nowoczesnych aplikacji
6. Konteneryzacja aplikacji za pomocą Dockera
Ogólne omówienie Dockera
Rozpoczęcie pracy z Dockerem
Polecenia w pliku Dockerfile
Obraz kontenera i jego warstwy
Kontener
Przestrzenie nazw i cgroups
Instalowanie i testowanie Dockera
Instalowanie silnika Dockera i minikube
Instalowanie klienta Dockera oraz zdefiniowanie zmiennych środowiskowych Dockera
Sprawdzenie możliwości nawiązania połączenia z klientem Dockera
Konteneryzacja przykładowej aplikacji
Analiza przykładowego pliku Dockerfile
Tworzenie obrazu kontenera
Weryfikacja obrazu Dockera
Uruchamianie kontenera
Inne polecenia klienta Dockera
exec
rm
inspect
history
stats
Testowanie kontenera
Nawiązanie połączenia z telnet-server
Pobieranie dzienników zdarzeń z kontenera
Podsumowanie
7. Koordynowanie kontenerów za pomocą Kubernetesa
Ogólne omówienie Kubernetesa
Zasoby związane z zadaniami Kubernetesa
Pod
ReplicaSet
Deployment
StatefulSet
Service
Volume
Secret
ConfigMap
Namespace
Wdrażanie przykładowej aplikacji telnet-server
Praca z Kubernetesem
Przegląd plików manifestu
Utworzenie zasobów Deployment i Service
Wyświetlanie zasobów Deployment i Service
Testowanie zasobów Deployment i Service
Uzyskanie dostępu do aplikacji telnet-server
Rozwiązywanie problemów
Usunięcie poda
Skalowanie rozwiązania
Dzienniki zdarzeń
Podsumowanie
8. Wdrażanie kodu
Potok CI/CD w nowoczesnym stosie aplikacji
Przygotowanie potoku
Przegląd pliku skaffold.yaml
Testowanie kontenera
Symulowanie potoku programistycznego
Wprowadzenie zmiany w kodzie
Testowanie zmiany w kodzie
Testowanie wycofania zmian
Inne narzędzia CI/CD
Podsumowanie
Część III. Obserwowalność i rozwiązywanie problemów
9. Obserwowalność
Ogólne omówienie monitorowania
Monitorowanie przykładowej aplikacji
Instalowanie stosu monitorowania
Weryfikacja instalacji
Wskaźniki
Złote sygnały
Dostosowanie wzorca monitorowania
Panel aplikacji telnet-server
PromQL – krótkie wprowadzenie
Ostrzeżenia
Przeglądanie w aplikacji Prometheus ostrzeżeń związanych ze złotymi sygnałami
Routing i powiadomienia
Podsumowanie
10. Rozwiązywanie problemów
Rozwiązywanie problemów i debugowanie – krótkie wprowadzenie
Scenariusz – wysoki poziom średniego obciążenia systemu
uptime
top
Następne kroki
Scenariusz – wysoki poziom użycia pamięci
free
vmstat
ps
Następne kroki
Scenariusz – wysoka wartość iowait
iostat
iotop
Następne kroki
Scenariusz – nieudane ustalenie nazwy hosta
resolv.conf
resolvectl
dig
Następne kroki
Scenariusz – brak wolnego miejsca na dysku
df
find
lsof
Następne kroki
Scenariusz – połączenie zostało odrzucone
curl
ss
tcpdump
Następne kroki
Sprawdzanie dzienników zdarzeń
Najczęściej stosowane dzienniki zdarzeń
Najczęściej używane polecenia journalctl
Przetwarzanie dzienników zdarzeń
Analizowanie procesów
strace
Podsumowanie
Opinie
Na razie nie ma opinii o produkcie.