Programowalność i automatyzacja sieci. Poradnik inżyniera sieci następnej generacji - ebook
Programowalność i automatyzacja sieci. Poradnik inżyniera sieci następnej generacji - 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!
Spis treści
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
Kategoria: | Programowanie |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-283-5053-3 |
Rozmiar pliku: | 6,2 MB |