Ansible 2 w praktyce
Automatyzacja
infrastruktury, zarządzanie konfiguracją i wdrażanie aplikacji
Framework
Ansible jest potężnym narzędziem służącym do automatyzacji wdrożeń
oprogramowania i zarządzania jego konfiguracjami. Oferuje proste i
bardzo przydatne funkcje przeznaczone do automatyzacji wielowarstwowych
środowisk za pomocą komunikacji niewymagającej agenta. Przydaje się
także do obsługi ciągłej integracji i 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ń.
Ta książka jest
przeznaczona dla osób zajmujących się automatyzacją - od
żmudnych codziennych zadań po złożone wdrożenia infrastruktury jako
kodu.
Ten
praktyczny przewodnik pozwoli na sprawne rozpoczęcie korzystania z
frameworka Ansible 2.9. Na początku pokazano, jak go zainstalować i
skonfigurować, później zaprezentowano proste, jednowierszowe
polecenia automatyzacji, aby stopniowo wprowadzać
czytelników do tworzenia własnego kodu rozszerzającego
możliwości Ansible, a nawet automatyzującego infrastrukturę chmury i
kontenerów. Znalazło się tu mnóstwo praktycznych
przykładów kodu, a zdobyte umiejętności pozwolą na
korzystanie z Ansible w sposób skalowalny, powtarzalny i
niezawodny.
W książce:
- podstawy pracy z
frameworkiem Ansible
- konfiguracja zależności i
zmiennych bazujących na rolach
- unikanie najczęściej
popełnianych błędów podczas tworzenia kodu w Ansible
- tworzenie
modułów i wtyczek dla Ansible
- rozwiązywanie
problemów podczas wykonywania scenariuszy Ansible
O
autorach 9
O recenzentach technicznych 11
Wprowadzenie 13
CZĘŚĆ I.
PODSTAWY ANSIBLE
19
Rozdział 1.
Rozpoczęcie
pracy z Ansible 21
Wymagania techniczne 22
Instalacja i konfiguracja Ansible 22
Instalacja Ansible w systemach Linux i FreeBSD 22
Instalacja Ansible w macOS 25
Konfiguracja hosta Windows do pracy z Ansible 27
Poznajemy oprogramowanie Ansible 32
Jak Ansible nawiązuje połączenie z hostem? 32
Weryfikacja poprawności instalacji oprogramowania Ansible 35
Wymagania dotyczące węzła zarządzanego przez Ansible 37
Instalacja Ansible na podstawie kodu źródłowego kontra
instalacja z pakietu RPM 39
Podsumowanie 41
Pytania 42
Dalsza lektura 42
Rozdział 2.
Podstawy Ansible 43
Wymagania techniczne 44
Poznajemy framework Ansible 44
Komponenty tworzące Ansible 48
Składnia YAML 51
Organizowanie kodu automatyzacji 55
Plik konfiguracyjny Ansible 59
Argumenty powłoki 63
Polecenia jednorazowe 65
Definiowanie zmiennych 70
Filtry Jinja2 74
Podsumowanie 78
Pytania 78
Dalsza lektura 79
Rozdział 3.
Ewidencja
81
Wymagania techniczne 81
Utworzenie pliku ewidencji i dodanie hostów 82
Używanie grup hostów 84
Dodawanie hostów i zmiennych grup do ewidencji 88
Generowanie pliku ewidencji dynamicznej 94
Używanie wielu źródeł ewidencji 97
Używanie grup statycznych i dynamicznych 98
Zarządzanie hostami za pomocą wzorców 99
Podsumowanie 102
Pytania 102
Dalsza lektura 103
Rozdział 4.
Scenariusze i role 105
Wymagania techniczne 106
Poznawanie frameworka scenariuszy 106
Porównanie scenariusza i polecenia jednorazowego 111
Definiowanie zbiorów i zadań 114
Poznawanie ról - sposób organizowania scenariuszy
116
Definiowanie zależności i zmiennych na podstawie roli 121
Ansible Galaxy 127
Konstrukcje warunkowe w kodzie Ansible 128
Wielokrotne wykonywanie zadań w pętli 133
Grupowanie zadań za pomocą bloków 138
Strategie wykonywania scenariusza 143
Używanie ansible-pull 146
Podsumowanie 148
Pytania 149
Dalsza lektura 149
CZĘŚĆ II.
ROZSZERZANIE MOŻLIWOŚCI
ANSIBLE 151
Rozdział 5.
Tworzenie
i używanie modułów
153
Wymagania techniczne 154
Wykonywanie wielu modułów w powłoce 154
Praca z repozytorium modułów 156
Uzyskanie z poziomu powłoki dostępu do dokumentacji modułu 159
Wartość zwrotna modułu 161
Samodzielne opracowanie modułu 163
Unikanie najczęściej występujących problemów 171
Testowanie i dokumentowanie modułu 173
Lista rzeczy do sprawdzenia podczas tworzenia modułu Ansible 177
Przekazanie kodu modułu do projektu Ansible 178
Podsumowanie 181
Pytania 182
Dalsza lektura 183
Rozdział 6.
Tworzenie
i używanie wtyczek 185
Wymagania techniczne 186
Ustalanie typów wtyczek 186
Wyszukiwanie wtyczek w standardowej instalacji Ansible 189
Samodzielne tworzenie wtyczki Ansible 191
Integracja własnej wtyczki z kodem źródłowym Ansible 198
Przekazanie kodu wtyczki do projektu Ansible 199
Podsumowanie 202
Pytania 203
Dalsza lektura 203
Rozdział 7.
Najlepsze
praktyki podczas tworzenia kodu 205
Wymagania techniczne 206
Preferowana struktura katalogów 206
Najlepsze praktyki dotyczące ewidencji w chmurze 211
Odróżnianie poszczególnych typów
środowisk 215
Właściwe podejście w zakresie definiowania zmiennych hostów
i grup 216
Używanie scenariuszy najwyższego poziomu 221
Wykorzystanie narzędzi systemu kontroli wersji 221
Definiowanie wariantów systemu operacyjnego i dystrybucji 224
Przenoszenie kodu między różnymi wersjami Ansible 227
Podsumowanie 229
Pytania 230
Dalsza lektura 230
Rozdział 8.
Zagadnienia
zaawansowane w Ansible 231
Wymagania techniczne 232
Akcje asynchroniczne kontra synchroniczne 232
Kontrolowanie wykonywania zbioru podczas stosowania nieustannych
uaktualnień 235
Określenie maksymalnego poziomu niepowodzenia 238
Konfiguracja delegowania zadań 240
Używanie opcji run_once 244
Lokalne uruchamianie scenariuszy 247
Praca z proxy i używanie hostów pośrednich 249
Pobieranie danych wejściowych dla scenariusza 250
Używanie tagów w zbiorach i zadaniach 252
Zabezpieczanie danych za pomocą Ansible Vault 255
Podsumowanie 259
Pytania 259
Dalsza lektura 260
CZĘŚĆ III.
UŻYCIE ANSIBLE W
PRZEDSIĘBIORSTWACH 261
Rozdział 9.
Automatyzacja
sieci z Ansible 263
Wymagania techniczne 264
Dlaczego w ogóle należy automatyzować zarządzanie siecią? 264
Jak Ansible zarządza urządzeniami sieciowymi? 266
Jak włączyć automatyzację sieci? 267
Dostępne moduły Ansible przeznaczone do obsługi sieci 269
Nawiązywanie połączenia z urządzeniami sieciowymi 271
Zmienne środowiskowe dla urządzeń sieciowych 273
Konstrukcje warunkowe dla urządzeń sieciowych 275
Podsumowanie 277
Pytania 278
Dalsza lektura 278
Rozdział 10.
Zarządzanie kontenerami i
chmurami 279
Wymagania techniczne 280
Opracowanie i budowanie kontenerów za pomocą scenariuszy 280
Zarządzanie wieloma platformami kontenerów 282
Wdrażanie do Kubernetes za pomocą narzędzia ansible-container 283
Zarządzanie obiektami Kubernetes za pomocą Ansible 284
Użycie Ansible do automatyzacji Dockera 287
Poznanie modułów związanych z kontenerami 289
Automatyzacja usługi Amazon Web Services 291
Instalacja 292
Uwierzytelnienie 292
Utworzenie pierwszej maszyny wirtualnej 292
Uzupełnienie Google Cloud Platform za pomocą automatyzacji 295
Instalacja 295
Uwierzytelnienie 295
Utworzenie pierwszej maszyny wirtualnej 296
Bezproblemowa integracja automatyzacji z Azure 297
Instalacja 297
Uwierzytelnienie 297
Utworzenie pierwszej maszyny wirtualnej 298
Rozbudowa środowiska za pomocą Rackspace Cloud 300
Instalacja 300
Uwierzytelnienie 301
Utworzenie pierwszej maszyny wirtualnej 301
Użycie Ansible do orkiestracji OpenStack 302
Instalacja 302
Uwierzytelnienie 302
Utworzenie pierwszego scenariusza 303
Podsumowanie 306
Pytania 306
Dalsza lektura 307
Rozdział 11.
Rozwiązywanie
problemów i strategie testowania 309
Wymagania techniczne 310
Sprawdzanie pod kątem problemów występujących podczas
wykonywania scenariuszy 310
Używanie informacji dotyczących hosta do analizy niepowodzeń 311
Testowanie scenariuszy 311
Używanie trybu sprawdzenia 313
Rozwiązywanie problemów dotyczących połączenia z hostem 316
Przekazywanie poprzez CLI zmiennych roboczych 318
Ograniczanie możliwości działania w hoście 319
Opróżnianie bufora kodu 322
Sprawdzanie kodu pod kątem niepoprawnej składni 322
Podsumowanie 323
Pytania 324
Dalsza lektura 324
Rozdział 12.
Rozpoczęcie pracy z
Ansible Tower 325
Wymagania techniczne 326
Instalacja AWX 326
Uruchomienie z poziomu AWX pierwszego scenariusza 328
Utworzenie projektu AWX 328
Utworzenie ewidencji 330
Utworzenie szablonu zadania 332
Uruchomienie zadania 334
Kontrolowanie dostępu do AWX 335
Utworzenie użytkownika 336
Utworzenie zespołu 337
Utworzenie organizacji 337
Przypisywanie uprawnień w AWX 338
Podsumowanie 339
Pytania 339
355
stron, Format: 17.0x23.5cm, oprawa miękka