reklama - zainteresowany?

Ansible w praktyce. Automatyzacja konfiguracji i proste instalowanie system - Helion

Ansible w praktyce. Automatyzacja konfiguracji i proste instalowanie system
Autor: Bas Meijer, Lorin Hochstein, Ren
Tytuł oryginału: Ansible: Up and Running: Automating Configuration Management and Deployment the Easy Way, 3rd Edition
ISBN: 978-83-8322-152-6
okładka: mi
Księgarnia: Helion

Książka będzie dostępna od stycznia 2023

Spis treści

Ansible w praktyce. Automatyzacja konfiguracji i proste instalowanie systemów. Wydanie III -- 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

Code, Publish & WebDesing by CATALIST.com.pl



(c) 2005-2024 CATALIST agencja interaktywna, znaki firmowe należą do wydawnictwa Helion S.A.