Ansible w praktyce w.3 Tarnów

Ansible służy do automatyzacji wdrożeń oprogramowania i zarządzania jego konfiguracjami. Inżynierowie cenią ten framework za minimalne rozmiary, brak konieczności instalowania czegokolwiek na serwerach i prostotę użytkowania. Oferuje on proste i bardzo przydatne funkcje przeznaczone do …

od 54,76 Najbliżej: 2,3 km

Liczba ofert: 7

Oferta sklepu

Opis

Ansible służy do automatyzacji wdrożeń oprogramowania i zarządzania jego konfiguracjami. Inżynierowie cenią ten framework za minimalne rozmiary, brak konieczności instalowania czegokolwiek na serwerach i prostotę użytkowania. Oferuje on proste i bardzo przydatne funkcje przeznaczone do automatyzacji wielowarstwowych środowisk, przydaje się też do obsługi ciągłej integracji i ciągłego wdrażania oprogramowania (CI/CD) bez żadnego przestoju. Może służyć do różnych celów: przygotowania infrastruktury jako kodu, wdrożeń aplikacji czy automatyzacji codziennych, czasochłonnych zadań administracyjnych. Ta książka jest przeznaczona dla programistów i administratorów, którzy poszukują wydajnej metody zarządzania systemami. Pokazano w niej, w jaki sposób działa Ansible i jak należy przygotować go do pracy. Omówiono sposoby tworzenia scenariuszy (są to skrypty do zarządzania konfiguracją), zasady zarządzania zewnętrznymi serwerami, a także zaprezentowano najciekawsze funkcjonalności tego oprogramowania: wbudowane deklaratywne moduły . W tym wydaniu uwzględniono zmiany wynikające z dynamicznego rozwoju Ansible, dodano też kilka rozdziałów poświęconych kontenerom, platformie Molecule, kolekcjom Ansible, obrazom i infrastrukturze chmurowej. Wszystkie kody zostały zaktualizowane, a całość została wzbogacona o praktyczne wskazówki dotyczące dobrych praktyk programistycznych na platformach do weryfikowania kodu. W książce: zarządzanie konfiguracją i wdrożeniami systemów za pomocą Ansible dobre praktyki pracy z Ansible formaty kolekcji, moduły i wtyczki generowanie obrazów kontenerów i instancji chmurowych tworzenie infrastruktury chmurowej automatyzacja procesów CI/CD w środowisku programistycznym platforma Ansible Automation w metodyce DevOps Minimalne rozmiary, prostota i wyjątkowa skuteczność — poznaj Ansible! Spis treści: Wstęp do trzeciego wydania 1. Wprowadzenie Uwaga do wersji Do czego nadaje się Ansible? Jak działa Ansible? Na czym polega wielkość Ansible? Prostota Użyteczność Bezpieczeństwo Czy Ansible nie jest zbyt proste? Co musisz wiedzieć? Czego tu nie znajdziesz? Co dalej? 2. Instalacja i konfiguracja Instalacja Ansible Luźne zależności Uruchomienie Ansible w kontenerze Rozwijanie Ansible Konfiguracja serwera testowego Konfiguracja serwera testowego za pomocą narzędzia Vagrant Wprowadzanie do Ansible informacji o serwerze Ułatwienia dzięki plikowi ansible.cfg Nie miej litości Przydatne opcje konfiguracyjne środowiska Vagrant Przekazywanie portów i prywatne adresy IP Włączanie przekazywania agentów Prowizjoner Docker Lokalny prowizjoner Ansible Kiedy uruchamiany jest prowizjoner? Wtyczki Vagrant Hostmanager VBGuest Dostosowywanie maszyny wirtualnej VirtualBox Plik Vagrantfile to kod Ruby Konfiguracja produkcyjna Podsumowanie 3. Scenariusze - pierwsze kroki Wstępne wymagania Bardzo prosty scenariusz Tworzenie pliku konfiguracyjnego Nginx Tworzenie strony WWW Definiowanie grupy serwerów WWW Uruchomienie scenariusza Scenariusz to plik YAML Początek pliku Koniec pliku Komentarze Wcięcia i białe znaki Ciągi znaków Wartości logiczne Listy Słowniki Dzielenie wierszy Czysty YAML zamiast argumentów tekstowych Anatomia scenariusza Akcje Zadania Moduły Korzystanie z dokumentacji Ansible Wszystko razem Czy coś się zmieniło? Śledzenie stanu serwera Coś ciekawszego: szyfrowanie TLS Tworzenie certyfikatu TLS Zmienne Cudzysłowy w ciągach znaków Tworzenie szablonu konfiguracyjnego Nginx Pętle Procedury Kilka cech procedur, o których należy pamiętać Testy Weryfikacja Scenariusz Uruchomienie scenariusza Podsumowanie 4. Ewidencja: opisywanie serwerów Plik ewidencyjny Wstępne wymagania: kilka maszyn Vagrant Funkcjonalne parametry ewidencji Zmienianie domyślnych wartości parametrów funkcjonalnych Grupy, grupy i jeszcze raz grupy Przykład: instalacja aplikacji Django Aliasy i porty Grupy grup Serwery numerowane (zwierzaki kontra stado) Zmienne serwerowe i grupowe w pliku ewidencyjnym Zmienne serwerowe i grupowe w osobnych plikach Dynamiczna ewidencja Wtyczki ewidencyjne Amazon EC2 Azure Resource Manager Interfejs skryptu dynamicznej ewidencji Tworzenie skryptu dynamicznej ewidencji Podział ewidencji na kilka plików Dodawanie wpisów w trakcie działania scenariusza za pomocą modułów add_host i group_by Moduł add_host Moduł group_by Podsumowanie 5. Zmienne i fakty Definiowanie zmiennych w scenariuszu Definiowanie zmiennych w oddzielnych plikach Układ katalogów Wyświetlanie wartości zmiennych Interpolacja zmiennych Rejestrowanie zmiennych Fakty Wyświetlanie wszystkich faktów skojarzonych z serwerem Wyświetlanie podzbioru faktów Fakty i informacje może zwracać każdy moduł Fakty lokalne Definiowanie nowej zmiennej za pomocą modułu set_fact Wbudowane zmienne hostvars inventory_hostname groups Definiowanie zmiennych w wierszu poleceń Priorytety Podsumowanie 6. Mezzanine: nasza testowa aplikacja Dlaczego wdrażanie aplikacji produkcyjnych jest skomplikowane? Baza danych: PostgreSQL Serwer aplikacyjny: Gunicorn Serwer WWW: Nginx Menedżer procesów: Supervisor Podsumowanie 7. Instalacja Mezzanine za pomocą Ansible Wyświetlanie zadań scenariusza Układ zainstalowanych plików Zmienne jawne i poufne Instalowanie wielu pakietów Instrukcja become w zadaniu Aktualizacja rejestru apt Sprawdzenie projektu za pomocą modułu git Instalacja Mezzanine i innych pakietów w środowisku wirtualnym Krótka dygresja: skomplikowane argumenty w zadaniach Konfiguracja bazy danych Tworzenie pliku local_settings.py na podstawie szablonu Polecenia django-manage Uruchamianie własnych skryptów Pythona w kontekście aplikacji Utworzenie plików konfiguracyjnych usług Aktywacja konfiguracji serwera Nginx Instalacja certyfikatów TLS Instalacja zadania Twitter w harmonogramie cron Cały scenariusz Uruchomienie scenariusza na maszynie wirtualnej Vagrant Diagnostyka Brak dostępu do repozytorium GitHub Brak dostępu do adresu 192.168.33.10.nip.io Komunikat Bad Request (400) Podsumowanie 8. Diagnozowanie scenariuszy Czytelne komunikaty o błędach Diagnozowanie połączenia SSH Typowe wyzwania związane z usługą SSH PasswordAuthentication no Połączenie z użyciem innego konta Błąd weryfikacji klucza Sieci prywatne Moduł debug Debuger scenariuszy Moduł assert Sprawdzenie scenariusza przed uruchomieniem Sprawdzenie składni Wyświetlenie listy serwerów Wyświetlenie listy zadań Tryb weryfikacji Różnice (wyświetlenie zmian w plikach) Tagi Limity Podsumowanie 9. Skalowanie scenariuszy: role Podstawowa struktura roli Przykład: role database i mezzanine Stosowanie ról w scenariuszach Zadania wstępne i końcowe Rola database instalująca bazę danych Rola mezzanine instalująca aplikację Mezzanine Tworzenie plików i katalogów ról za pomocą narzędzia ansible-galaxy Role zależne Repozytorium Ansible Galaxy Interfejs WWW Interfejs wiersza poleceń Wymagania ról w praktyce Udostępnianie własnej roli Podsumowanie 10. Zaawansowane scenariusze Obsługa błędnie działających poleceń Filtry Filtr default Filtry zarejestrowanych zmiennych Filtry ścieżek plików Tworzenie własnych filtrów Wyszukiwarki file pipe env password template csvfile dig redis Utworzenie własnej wyszukiwarki Zaawansowane pętle Wyszukiwarki with with_lines with_fileglob with_dict Wyszukiwarki jako pętle Sterowanie pętlami Określanie nazwy zmiennej iteracyjnej Umieszczanie etykiet w wynikach Importowanie i dołączanie plików Dynamiczne dołączanie plików Dołączanie ról Sterowanie realizacją roli Bloki Obsługa błędów za pomocą bloków Szyfrowanie poufnych danych Kilka sejfów z różnymi hasłami Podsumowanie 11. Dostosowywanie serwerów, przebiegów i procedur Wzorce specyfikowania serwerów Określanie grupy serwerów Wykonywanie zadania na komputerze sterującym Jawne gromadzenie faktów Odczytywanie adresu IP serwera Wykonywanie zadania na innym komputerze niż serwer Wykonywanie zadania na kolejnych serwerach Wykonywanie zadania w grupie serwerów Jednokrotne wykonanie zadania Selektywne wykonywanie zadań step start-at-task Tagi wykonywane Tagi pomijane Strategie przebiegów Strategia linear Strategia free Zaawansowane procedury Procedury w zadaniach wstępnych i końcowych Procedury natychmiastowe Metapolecenia Procedury powiadamiające inne procedury Procedury nasłuchujące Procedury nasłuchujące: konfiguracja certyfikatów SSL Podsumowanie 12. Zarządzanie serwerami Windows Połączenie z systemem Windows PowerShell Moduły Windows Nasza maszyna programistyczna Java Tworzenie lokalnych kont użytkowników Funkcje Windows Instalacja oprogramowania za pomocą menedżera Chocolatey Konfiguracja środowiska Java Aktualizacja systemu Windows Podsumowanie 13. Ansible i kontenery Kubernetes Proces uruchamiania aplikacji kontenerowej Rejestry Ansible i Docker Połączenie z demonem Docker Przykładowa aplikacja: Ghost Uruchomienie kontenera Docker na lokalnym komputerze Utworzenie obrazu na podstawie pliku Dockerfile Wysłanie obrazu do rejestru Konfigurowanie kontenerów na lokalnym komputerze Uzyskiwanie informacji o lokalnym obrazie Wdrożenie aplikacji kontenerowej Utworzenie maszyny MySQL Wdrożenie bazy danych dla aplikacji Ghost Fronton Fronton: Ghost Fronton: NGINX Usunięcie kontenerów Podsumowanie 14. Kontrola jakości przy użyciu platformy Molecule Instalacja i konfiguracja Konfigurowanie sterowników Molecule Utworzenie roli Ansible Scenariusze Molecule Żądany stan Konfigurowanie scenariusza Molecule Zarządzanie maszynami wirtualnymi Zarządzanie kontenerami Polecenia Molecule Lintowanie YAMLlint ansible-lint ansible-later Weryfikatory Ansible Goss TestInfra Podsumowanie 15. Kolekcje Instalacja kolekcji Wyświetlenie listy kolekcji Stosowanie kolekcji w scenariuszu Tworzenie kolekcji Podsumowanie 16. Tworzenie obrazów Tworzenie obrazów za pomocą narzędzia Packer Tworzenie maszyny wirtualnej w środowisku Vagrant VirtualBox Połączenie narzędzi Packer i Vagrant Obrazy chmurowe Google Cloud Platform Azure Amazon EC2 Scenariusz Obraz Docker: GCC 11 Podsumowanie 17. Infrastruktura chmurowa Terminologia Instancja Obraz AMI Etykieta Definiowanie poświadczeń Zmienne środowiskowe Pliki konfiguracyjne Wymagania: biblioteka Python Boto3 Dynamiczne ewidencjonowanie instancji Buforowanie ewidencji Inne opcje konfiguracyjne Definiowanie dynamicznych grup zasobów za pomocą etykiet Przypisywanie etykiet do istniejących zasobów Czytelne nazwy grup Wirtualne chmury prywatne Przygotowanie pliku ansible.cfg Uruchamianie nowych instancji Pary kluczy EC2 Utworzenie nowego klucza Grupy zabezpieczeń Dozwolone adresy IP Porty w grupach zabezpieczeń Uzyskiwanie najnowszego obrazu AMI Utworzenie nowej instancji i dodanie jej do grupy Oczekiwanie na gotowość instancji Wszystko razem Konfiguracja chmury VPC Dynamiczne ewidencjonowanie i chmura VPC Podsumowanie 18. Wtyczki zwrotne Wtyczki standardowego wyjścia ARA debug default dense json minimal null oneline Wtyczki powiadomień i agregacji Moduły Pythona foreman jabber junit log_plays logentries logstash mail profile_roles profile_tasks say slack splunk timer Podsumowanie 19. Własne moduły Przykład: sprawdzenie, czy zewnętrzny serwer jest dostępny Użycie modułu script zamiast tworzenia własnego modułu Skrypt can_reach jako moduł Czy trzeba tworzyć własne moduły? Gdzie umieszczać własne moduły? Jak Ansible uruchamia moduły? Utworzenie niezależnego skryptu Pythona z argumentami (tylko Python) Skopiowanie modułu do serwera Utworzenie pliku argumentów na serwerze (inne języki) Wywołanie modułu Oczekiwane wyniki Zmienne wynikowe oczekiwane przez Ansible Tworzenie modułów w języku Python Analiza argumentów Odczytywanie argumentów Import klasy pomocniczej AnsibleModule Opcje argumentów Parametry konstruktora klasy AnsibleModule Zwracanie informacji o pomyślnym lub niepomyślnym wykonaniu modułu Wywoływanie zewnętrznych programów Tryb weryfikacji (suchy przebieg) Dokumentowanie modułu Diagnozowanie modułu Implementowanie modułu jako skryptu Bash Określanie alternatywnego położenia powłoki Bash Podsumowanie 20. Przyspieszanie Ansible Zwielokrotnienie sesji SSH (opcja ControlPersist) Ręczne włączenie zwielokrotnienia sesji SSH Opcje zwielokrotniania sesji SSH Dodatkowe strojenie sesji SSH Zalecenia dotyczące algorytmów Potokowanie Włączenie potokowania Konfigurowanie potokowania na serwerze Mitogen dla Ansible Zapamiętywanie faktów Zapamiętywanie faktów w plikach JSON Zapamiętywanie faktów w bazie Redis Zapamiętywanie faktów w bazie Memcached Równoległe połączenia Równoległe wykonywanie zadań za pomocą instrukcji async Podsumowanie 21. Sieci i bezpieczeństwo Zarządzanie siecią Obsługiwane urządzenia Komunikacja Ansible z urządzeniami sieciowymi Tryb uprzywilejowany Ewidencja sieci Zastosowania automatyzacji operacji sieciowych Bezpieczeństwo Czy trzeba przestrzegać norm? Zabezpieczony, ale nie bezpieczny Szare IT Jasne IT Zero zaufania Podsumowanie 22. Procesy CI/CD i Ansible Ciągła integracja oprogramowania Elementy systemu ciągłej integracji oprogramowania Jenkins i Ansible Uruchomienie procesu CI dla ról Ansible Testy Wtyczka Ansible Wtyczka Ansible Tower Podsumowanie 23. Ansible Automation Platform Modele subskrypcyjne Wersja próbna platformy Ansible Automation Platform Do czego służy platforma Ansible Automation? Kontrola dostępu Projekty Zarządzanie ewidencją Uruchamianie zadań według szablonów Interfejs REST API Kolekcja awx.awx Instalacja Zdefiniowanie organizacji Utworzenie ewidencji Uruchamianie scenariusza za pomocą szablonu zadania Uruchamianie Ansible za pomocą kontenerów Tworzenie środowisk wykonawczych Podsumowanie 24. Dobre praktyki Prostota, modułowość i kompozycyjność Porządkowanie treści Oddzielenie ewidencji od projektów Oddzielenie ról od kolekcji Scenariusze Styl kodu Oznaczanie i testowanie wszystkiego Żądany stan Ciągłe dostarczanie oprogramowania Bezpieczeństwo Wdrażanie Wskaźniki wydajności Ocenianie skuteczności dobrych praktyk Słowo końcowe Bibliografia

Specyfikacja

Podstawowe informacje

Autor
  • Lorin Hochstein|Rene Moser|Bas Meijer
Wybrani autorzy
  • Praca zbiorowa
Wybrane wydawnictwa
  • Helion
Okładka
  • Broszura
Rok wydania
  • 2023
Ilość stron
  • 400
Tematyka
  • Sieci komputerowe
  • Systemy operacyjne
ISBN
  • 9788383221526