Szczegóły ebooka

Programowalność i automatyzacja sieci. Poradnik inżyniera sieci następnej generacji

Programowalność i automatyzacja sieci. Poradnik inżyniera sieci następnej generacji

Jason Edelman, Scott S. Lowe, Matt Oswalt

Ebook

Programowalna i zautomatyzowana sieć upraszcza pracę jej administratora. Rozwój technologii radykalnie komplikuje takie zadania jak zarządzanie i operowanie sprzętem sieciowym, topologiami sieci i połączeniami sieciowymi. Trzeba tu mieć na uwadze systemy operacyjne, nowe metodologie oraz narzędzia. W takich warunkach zarządzanie większą czy nieco bardziej złożoną siecią wyłącznie za pomocą działań manualnych jest obarczone sporym ryzykiem. Profesjonalny inżynier sieciowy musi dziś dobrze orientować się w świecie programowalności i automatyzacji sieci. Powinien poznawać nowe protokoły, technologie, modele dostarczania i pojawiające się w związku z nimi potrzeby biznesowe.

W tej książce znajdziesz solidne podstawy pozwalające zapewnić sieci programowalność i zautomatyzowanie jej pracy. Dowiesz się, jakie narzędzia i umiejętności będą potrzebne do dokonania tego kluczowego przekształcenia w sieć nowej generacji. W bardzo przystępny i praktyczny sposób wyjaśniono, jak korzystać z takich technologii jak Linux, Python, JSON i XML, aby programowo zautomatyzować pracę systemu. Opisano koncept modeli danych, podstawy języka YANG oraz najważniejsze technologie związane z API. Sporo miejsca poświęcono narzędziom open source służącym do automatyzacji pracy sieci. Znalazły się tu również informacje o interfejsach macvlan, sieciach wykorzystujących maszyny wirtualne, sieciowych przestrzeniach nazw oraz o bibliotece Pythona NAPALM i jej integracji z narzędziami: Ansible, Salt i StackStorm.

W książce między innymi:

  • powstanie sieci sterowanych programowo
  • technologie automatyzacji sieci
  • Linux i Python a technologie sieciowe
  • praca z szablonami konfiguracji sieciowej
  • kontrola źródła w pracy z niektórymi serwisami online
  • prosty przepływ pracy w automatyzacji sieci

Sieć zautomatyzowana i programowalna - najlepszy przyjaciel admina!


Wstęp 13

1. Trendy inżynierii sieciowej 19

  • Sieci sterowane programowo 19
    • OpenFlow 19
    • Czym są sieci sterowane programowo? 23
  • Podsumowanie 34

2. Automatyzacja sieci 35

  • Po co automatyzować sieci? 36
    • Uproszczone architektury 36
    • Deterministyczny rezultat 37
    • Biznesowa swoboda działania 37
  • Typy automatyzacji sieci 38
    • Zaopatrywanie urządzeń 38
    • Zbieranie danych 40
    • Migracje 41
    • Zarządzanie konfiguracją 42
    • Zgodność 43
    • Raportowanie 43
    • Rozwiązywanie problemów 44
  • Ewolucja płaszczyzny zarządzania od SNMP do API urządzeń 45
    • Interfejs programowania aplikacji (API) 45
    • Wpływ open networkingu 49
  • Automatyzacja sieci w erze SDN 50
  • Podsumowanie 50

3. Linux 51

  • Linux w kontekście automatyzacji sieci 51
  • Krótka historia Linuxa 52
  • Dystrybucje Linuxa 52
    • Red Hat Enterprise Linux, Fedora i CentOS 53
    • Debian, Ubuntu i inne pochodne 54
    • Inne dystrybucje Linuxa 55
  • Interakcja z Linuxem 56
    • Nawigacja w systemie plików 57
    • Manipulowanie plikami i katalogami 61
    • Uruchomianie programów 67
    • Praca z demonami 69
  • Sieci oparte na Linuxie 74
    • Praca z interfejsami 74
    • Routing jako host końcowy 83
    • Routowanie jako router 87
    • Mostkowanie (przełączanie) 89
  • Podsumowanie 94

4. Nauka wykorzystania Pythona w sieci 95

  • Czy inżynierowie sieciowi powinni nauczyć się programować? 96
  • Korzystanie z interaktywnego interpretera Pythona 98
  • Zrozumienie typów danych w Pythonie 100
    • Nauka użycia typu tekstowego 101
    • Nauka użycia typów liczbowych 109
    • Nauka użycia typów logicznych 111
    • Nauka użycia list Pythona 114
    • Nauka użycia słowników Pythona 119
    • Nauka o zbiorach i krotkach Pythona 123
  • Dodawanie logiki warunkowej do Twojego kodu 125
  • Zrozumienie przynależności 127
  • Wykorzystanie pętli w Pythonie 128
    • Zrozumienie pętli while 128
    • Zrozumienie pętli for 129
  • Funkcje 132
  • Praca z plikami 136
    • Odczytywanie z pliku 136
    • Zapisywanie do pliku 138
  • Tworzenie programów Pythona 140
    • Tworzenie podstawowego skryptu Pythona 140
    • Zrozumienie shebang 141
    • Migrowanie kodu z interpretera Pythona do skryptu Pythona 142
  • Praca z modułami Pythona 143
  • Przekazywanie argumentów do skryptu Pythona 145
  • Wykorzystanie pip i instalowanie paczek Pythona 146
  • Dodatkowe rady, sztuczki i informacje dotyczące Pythona 148
  • Podsumowanie 153

5. Formaty i modele danych 155

  • Wprowadzenie do formatów danych 155
    • Typy danych 157
  • YAML 158
    • Omówienie podstaw formatu YAML 158
    • Praca z formatem YAML w Pythonie 161
    • Modele danych w YAML 162
  • XML 163
    • Omówienie podstaw formatu XML 163
    • Wykorzystanie XML Schema Definition (XSD) dla modeli danych 164
    • Transformacja XML z XSLT 166
    • Przeszukiwanie XML z wykorzystaniem XQuery 169
  • JSON 170
    • Omówienie podstaw formatu JSON 170
    • Praca z formatem JSON w Pythonie 172
    • Wykorzystanie schematu JSON dla modeli danych 173
  • Modele danych YANG 174
    • Przegląd YANG 174
    • Zagłębienie się w model YANG 175
  • Podsumowanie 178

6. Szablony konfiguracji sieciowej 179

  • Narodziny współczesnych języków szablonów 180
    • Wykorzystanie szablonów w programowaniu sieciowym 181
    • Więcej o wykorzystaniu szablonów 181
  • Przydatność szablonów w automatyzacji sieci 182
  • Jinja dla szablonów konfiguracji sieciowej 183
    • Dlaczego Jinja? 183
    • Dynamiczne wprowadzanie danych do podstawowego szablonu języka Jinja 184
    • Renderowanie pliku szablonu Jinja w Pythonie 185
    • Instrukcje warunkowe i pętle 187
    • Filtry Jinja 192
    • Dziedziczenie szablonów w języku Jinja 195
    • Tworzenie zmiennych w języku Jinja 197
  • Podsumowanie 197

7. Praca z sieciowymi API 199

  • Zrozumienie sieciowych API 200
    • Zapoznanie się z API bazującymi na HTTP 200
    • Zgłębianie NETCONF 203
  • Praktyka z sieciowymi API 211
    • Praktyka z API bazującymi na HTTP 211
    • Praktyka z NETCONF 218
  • Automatyzacja z wykorzystaniem sieciowych API 226
    • Wykorzystanie biblioteki Pythona requests 226
    • Wykorzystanie biblioteki Pythona ncclient 253
    • Wykorzystanie netmiko 275
  • Podsumowanie 280

8. Kontrola wersji z Git 283

  • Scenariusze użycia systemu kontroli wersji 283
  • Korzyści z zastosowania kontroli wersji 284
    • Śledzenie zmian 284
    • Odpowiedzialność 284
    • Proces i przepływ pracy 284
  • Korzyści z systemu kontroli wersji w środowisku sieciowym 285
  • Poznaj Gita 285
    • Krótka historia systemu Git 286
    • Terminologia Git 287
    • Przegląd architektury systemu Git 287
  • Praca z systemem Git 289
    • Instalacja systemu Git 289
    • Tworzenie repozytorium 289
    • Dodawanie plików do repozytorium 290
    • Zatwierdzanie zmian w repozytorium 291
    • Zmienianie i zatwierdzanie śledzonych plików 294
    • Usuwanie plików z przechowalni 297
    • Wykluczanie plików z repozytorium 299
    • Przeglądanie dodatkowych informacji na temat repozytorium 303
    • Odnajdywanie różnic pomiędzy wersjami plików 307
  • Zarządzanie gałęziami w systemie Git 311
    • Tworzenie gałęzi Git 315
    • Przełączanie się na gałąź 316
    • Scalanie i usuwanie gałęzi 318
  • Wykorzystanie systemu Git do współpracy 322
    • Współpraca pomiędzy wieloma systemami z uruchomionym systemem Git 323
    • Współpraca za pomocą serwisów online bazujących na systemie Git 338
  • Podsumowanie 343

9. Narzędzia automatyzacji 345

  • Przegląd narzędzi do automatyzacji 345
  • Wykorzystanie Ansible 347
    • Podstawy działania Ansible 348
    • Konstrukcja pliku inwentarza 349
    • Wykonanie scenariusza Ansible 356
    • Wykorzystanie plików zmiennych 360
    • Tworzenie scenariuszy Ansible do automatyzacji sieci 362
    • Wykorzystanie modułów stron trzecich 379
    • Podsumowanie Ansible 382
  • Automatyzacja za pomocą narzędzia Salt 382
    • Architektura Salt 383
    • Pierwsze kroki z narzędziem Salt 386
    • Zarządzanie konfiguracjami sieci za pomocą narzędzia Salt 401
    • Zdalne wykonywanie funkcji narzędzia Salt 409
    • Salt: infrastruktura sterowana zdarzeniami 411
    • Dodatkowe informacje o narzędziu Salt 416
    • Podsumowanie Salt 419
  • Automatyzacja sterowana zdarzeniami za pomocą narzędzia StackStorm 419
    • Pojęcia związane ze StackStormem 420
    • Architektura StackStorm 422
    • Akcje i przepływy pracy 423
    • Sensory i wyzwalacze 432
    • Reguły 434
    • Podsumowanie StackStorm 437
  • Podsumowanie 437

10. Ciągła integracja 439

  • Istotne wymagania wstępne 441
    • Proste jest lepsze 441
    • Ludzie, proces i technologia 441
    • Naucz się programować 442
  • Wprowadzenie do ciągłej integracji 442
    • Podstawy ciągłej integracji 443
    • Ciągłe dostarczanie 444
    • Programowanie sterowane testami 446
    • Po co ciągła integracja w sieciach? 447
  • Potok ciągłej integracji dla sieci 448
    • Ocena przez osoby równorzędne 449
    • Automatyzacja budowy 454
    • Środowisko testowe, rozwojowe i przechowujące 459
    • Narzędzia wdrażania 462
    • Narzędzia testowania i automatyzacja sieci sterowana testami 463
  • Podsumowanie 465

11. Budowa kultury dla automatyzacji sieci 467

  • Strategia organizacyjna i swoboda pracy 468
    • Transformowanie skostniałej organizacji 468
    • Uzyskanie zgody najwyższego kierownictwa 469
    • Zbudować czy kupić 470
  • Akceptacja porażki 472
  • Rozwijanie umiejętności i kształcenie się 473
    • Ucz się nowych rzeczy 473
    • Skup się na podstawach 474
    • Certyfikaty? 475
    • Czy automatyzacja odbierze mi pracę?! 476
  • Podsumowanie 476

A. Sieci w Linuxie. Zagadnienia zaawansowane 479

B. Wykorzystanie biblioteki NAPALM 507

Skorowidz 521

  • Tytuł: Programowalność i automatyzacja sieci. Poradnik inżyniera sieci następnej generacji
  • Autor: Jason Edelman, Scott S. Lowe, Matt Oswalt
  • Tytuł oryginału: Network Programmability and Automation: Skills for the Next-Generation Network Engineer
  • Tłumaczenie: Jacek Andrzej Litka
  • ISBN: 978-83-283-5053-3, 9788328350533
  • Data wydania: 2019-08-13
  • Format: Ebook
  • Identyfikator pozycji: prausi
  • Wydawca: Helion