Network Programmability Bootcamp (NetProg)  

Data Lokalizacja Informacje Cena Rejestracja
2017-09-11 ILT, Warszawa, 5 dni

Język: PL    Zapytaj o cenę!

Rejestracja

Dedykowane dla:

  • administratorów IT, którzy pragną uzupełnić swoją wiedzę z zakresu programowania w jezyku Python i korzystania z pakietu Ansible w kontekście zarządzania środowiskiem IT
  • inżynierów sieciowych, zainteresowanych rozszerzeniem swoich umiejętności i możliwości w zakresie automatyzacji zarządzania konfiguracją urządzeń sieciowych, zaawansowanego monitoringu i reakcji na zdarzenia

Wprowadzenie:

Podczas tego szkolenia uczestnicy zapoznają się ze współczesnym oprogramowaniem do automatyzacji zarządzania (Ansible) i poznają jego możliwości w zakresie zarządzania sprzętem sieciowym. Korzystając z języka programowania Python nauczą się zarówno korzystania z klasycznych metod automatyzacji takich jak skrypty expect, jak i nowoczesnych interfejsów zarządzania takich jak NX-API, Netconf/YANG czy RESTful, XML API. Kursanci zapoznają się także z możliwościami i metodami programowania urządzeń sieciowych przy wykorzystaniu natywnych pakietów deweloperskich SDK (Software Develpement Kit) takich jak onePK czy Cobra. Przetestują również możliwości języka programowania Python wbudowanego w niektóre sieciowe systemy operacyjne (np. NX-OS). Wszystkie omawiane zagadnienia zostaną zastosowane w praktyce poprzez odpowiednio dobrane ćwiczenia na sprzęcie firmy Cisco Systems.

Opis:

Szkolenie NetProg jest jednocześnie przyspieszonym kursem programowania w języku Python na poziomie średnio-zaawansowanym. Instruktor rozpocznie od wprowadzenia i omówienia wszystkich podstawowych konstrukcji języka wraz z praktycznymi ćwiczeniami. Omówi korzystanie z podstawowych, wbudowanych narzędzi, powłoki Pythona, środowiska IDLE, włącznie ze śledzeniem wykonywania kodu (trace) i usuwaniem błędów (debugging). Docelowo natomiast, kursanci zapoznają się z i będą korzystać z profesjonalych (acz darmowych) narzędzi IDE/RAD (Integrated Development Environment / Rapid Application Development). Poznają również podstawy korzystania z systemu kontroli wersji, po to aby przy wszystkich pozostałych ćwiczeniach z niego korzystać i nauczyć się pracy i rozwoju oprogramowania w grupie. Możliwość przeglądania różnic, przywołania poprzednich wersji kodu jest w pracy programisty niezwykle przydanta lub wręcz niezbędna.
Kolejnymi zadaniami programistycznymi będzie analiza gotowego programu, jego uzupełnienie i poprawienie. Następnie uczstnicy szkolenia przejdą do stworzenie własnego programu (netprog), którego celem będzie uzupełnienie możliwości pakietu Ansible o elementy tam nieosiągalne. Oprogramowanie będzie mogło być wykorzystywane we współpracy z Ansible lub niezależnie. Rozpoczną od najprostszych zadań, a w kolejnych ćwiczeniach będą dodawać coraz to bardziej wyrafinowane możliwości. Przy tej okazji zapoznają się z kolejnymi rozszerzonymi konstrukcjami języka oraz z możliwościami bogatego zestawu bibliotek standardowych i dodatkowych.

Wymagania:

  • znajomość podstawowych technik programistycznych dowolnego języka programowania imperatywnego – np. umiejętność pisania prostych skryptów.
  • przydatna również będzie znajomość podstawowych zagadnień sieciowych, podstawowych komend CLI na urządzeniach Cisco (np. poziom CCNA jest w zupełności wystarczający)

Tematyka:

Dzień 1
Sprawy organizacyjne

Przegląd metod programowania sprzętu sieciowego

  • SNMP
  • CLI
  • Expect – CLI
  • RPC
  • Ansible
  • Plan kursu

Wprowadzenie do Pythona

  • Instalacja Pythona
  • Python jako kalkulator
  • Zmienne
  • Zapis instrukcji do pliku, uruchamianie z pliku
  • Trace, pdb, pudb

Python IDEs

  • IDLE
  • Profesjonalny pakiet IDE

Systemy kontroli wersji (VCS)

  • Wprowadzenie, podstawowe operacje
  • Git, github
  • Obsługa VCS w IDE

Python – podstawowe konstrukcje

  • Comments, variables, Strings, Data-structures
  • Lab – struktury danych
  • Conditional Expressions, Loops
  • Lab – pętle
  • Functions, Classes, Objects
  • Lab – funkcje, obiekty
  • Imports, Project structure
  • Lab – import
  • File operations
  • Lab – pliki

Dzień 2
Python – analiza algorytmu

  • Clone projektu Git
  • Zrozumienie algorytmu, debuggowanie
  • Moduł logowania – omówienie
  • Modyfikacja algorytmu – z podziałem na grupy
  • Wykorzystywanie gotowych funkcji – korzystanie z dokumentacji

Programowanie Sieci – rozpoczęcie projektu netprog

  • Pyexpect – zasady, możliwości, pułapki
  • Netmiko
  • Lab – Testy netmiko w powłoce
  • Lab – Program ‚netprog’ – zdalne wykonywanie poleceń i weryfikacja
  • Lab – Program ‚netprog’ – wycofywanie konfiguracji
  • Lab – Program ‚netprog’ – argumenty wejściowe, czytanie komend z pliku

Ansible

  • Mechanizm działania
  • Instalacja
  • Zbiór urządzeń
  • Komendy Ad-Hoc
  • Lab – komendy Ad-Hoc
  • Pliki konfiguracyjne
  • Playbooks – podstawy
  • Lab – playbooks
  • Moduły
  • Moduły do sieci
  • Lab – Konfigurowanie przełączników z Ansible
  • Lab – Współraca ‚netprog’ z Ansible

Dzień 3
NX-API

  • Sposób działania
  • Uruchamianie – feature, środowisko Sandbox
  • Lab – założenie vlan-u, skonfigurowanie trunk-a, weryfikacja
  • Lab – Opcja ‚-nxapi’ programu ‚netprog’

Netconf / YANG

  • Sposób działania Netconf, RFC
  • Możliwości, operacje
  • YANG
  • ncclient – możliwości, dokumentacja
  • Lab – interaktywny shell
  • Lab – ncclient
  • Lab – Opcja ‚-netconf’ programu ‚netprog’

Python w NX-OS

  • Wywoływanie, parametry
  • Biblioteki dostępne
  • Logging
  • Lab – wywolanie skryptu
  • Lab – EEM

RESTful API

  • Sposób działania, transport
  • Gdzie wspierane
  • Przykłady użycia
  • Lab – CSR1kv, shell
  • Lab – użycie w programie w pythonie

Natywny Python SDK: onePK

  • Sposób działania
  • Przegląd dokumentacji
  • Przykłady
  • Lab – zrozumienie, uruchamianie i testowanie przykładów

Dzień 4
Ansible – zaawansowane konstrukcje i możliwości

  • Jinja2, filtry
  • Warunki
  • Pętle
  • Strategie
  • Szyfrowane schowki
  • Tagi
  • Lab – ćwiczenia do powyższych

Python – zaawansowane konstrukcje i moduły – Integracja ‚netprog’ z Ansible

  • Lab – Czytanie plików konfiguracyjnych
  • Lab – Integracja konfiguracji z Ansible – hosts
  • Lab – Bezpieczne wycofywanie komend
  • Lab – Bezpieczne zapisanie hasła
  • Lab – Możliwość tworzenia ciągu czynności przez Ansible dla ‚netprog’
  • Lab – Commit przez Ansible dla ‚netprog’
  • Lab – Korzystanie z szablonów dla ‚netprog’
  • Lab – Budowanie topologii dla łączy L2, lint
  • Lab – Dwustronne operacje na łączach L2 wg topologii

Dzień 5
Programowanie w ACI (Application Centric Infrastructure i Cisco Nexus 9000)

  • RESTful interface
  • Lab – obserwacja zdarzeń
  • Lab – natywny SDK: cobra + arya

Programowanie UCS (Unified Computing System – Cisco blades)

  • Natywny Python SDK – opis
  • Lab – Tworzenie grupy obiektów

Python – zaawansowane techniki

  • Udostępnianie RESTful / XML Northbound API
  • Lab – korzystanie z gotowego API dla zarządzania aplikacją
  • Testowanie – DocTests, UnitTests
  • Lab – UnitTesting dla aplikacji ‚netprog’
  • Multithreading / multiprocessing – podstawy
  • Lab – Równoległe wykonanie zadań w aplikacji ‚netprog’