Rozdzia 5:

1. Folder YAML: Przykad w tym folderze pokazuje dziaanie formatu danych YAML. Kod zawarty w skrypcie wywietla dane z pliku YAML oraz wywietla informacje w jaki typ danych Pythona s one interpretowane. W celu poprawnego dziaania naley zamieci pliki w tym samym folderze, po czym wywoa wewntrz niego polecenie "python example.py". 
Pliki w folderze to:
- example.py - skrypt Pythona, ktry przeglda plik danych, 
- example.yml - przykadowy plik z danymi w formacie YAML.

2. Folder JSON: Przykad w tym folderze pokazuje dziaanie formatu danych JSON. Kod zawarty w skrypcie wywietla jakiego rodzaju dane s przechowywane w pliku JSON oraz wywietla informacje w jaki typ danych Pythona s one interpretowane. W celu poprawnego dziaania naley zamieci pliki w tym samym folderze, po czym wywoa wewntrz niego polecenie "python example.py". 
Pliki w folderze to:
- example.py - skrypt Pythona, ktry przeglda plik danych, 
- json-example.json- przykadowy plik z danymi w formacie JSON.

3. Folder XML skada si z dwch podkatalogw:
a) Schematy XSD - Przykad w tym podkatalogu pokazuje dziaanie schematw XSD i moliwo generowania za ich pomoc plikw XML. Kod zawarty w skrypcie umoliwia utworzenie pliku przechowujcego dane w formacie XML na temat danego routera. W celu poprawnego dziaania naley umieci pliku w tym samym folderze, po czym wywoa wewntrz niego interpreter Pythona, a w jego wierszu polece wywoa po kolei komendy z pliku example.txt. Szczegowy proces znajduje si w sekcji: "Wykorzystanie XML Schema Definition (XSD) dla modeli danych". 
Pliki w folderze to:
- example.txt - plik zawierajcy komendy do wywoania w interpreterze Pythona,
- schema.py - skrypt Pythona, ktry powstaje po wywoaniu komendy "pyxbgen -u schema.xsd -m schema", powstaje on z schematu XSD i suy do wprowadzania danych do postaci zrozumiaej dla formatu danych XML,
- schema.pyc - skompliowany skrypt Pythona,
- schema.xsd - plik schematu danych dla formatu danych XML.
b) Tworzenie strony HTML - Przykad w tym podkatalogu pokazuje generacj strony HTML zawierajcej dane z pliku w formacie danych XML. Kod zawarty w skrypcie umoliwia utworzenie kodu strony HTML wywietlajce tablic z autorami, dane pozyskiwane s z pliku XML, a "ukadane" na bazie szablonu XSL. W celu poprawnego dziaania naley zamieci pliki w tym samym folderze, po czym wywoa wewntrz niego polecenie "python example.py". W efekcie uzyskamy kod strony HTML. 
Pliki w folderze to:
- example.html - strona powstaa z kodu wygenerowanego w tym przykadzie,
- example.py - skrypt Pythona, ktry generuje kod strony HTML z danych z pliku XML i szablonu z pliku XSL,
- template.xsl - szablon dla danych w postaci schematu XSL,
- xmldata.xml - dane o autorach zapisane w formacie danych XML.

Rozdzia 6:
1. Folder Generowanie z listy sownikw: Przykad w tym folderze pokazuje jak generowa szablony z list sownikw. Kod zawarty w skrypcie wyciga dane z przekazanej listy sownikw i formatuje ich wywietlenie zgodnie z zaczonym szablonem,. W celu poprawnego dziaania naley zamieci pliki w tym samym folderze, po czym wywoa wewntrz niego polecenie "python example.py". Pliki w folderze to:
- example.py - skrypt Pythona, ktry wywietla dane na bazie szablonu,
- template.j2 - przykadowy plik z szablonem dotyczcym konfiguracji interfejsw.

2. Folder Generowanie z pliku YAML: Przykad w tym folderze pokazuje jak generowa szablony z pliku YAML. Kod zawarty w skrypcie wyciga dane z pliku YAML i formatuje ich wywietlenie zgodnie z zaczonym szablonem,. W celu poprawnego dziaania naley zamieci pliki w tym samym folderze, po czym wywoa wewntrz niego polecenie "python example.py". 
Pliki w folderze to:
- data.yml - przykadowy plik z danymi dotyczcymi konfiguracji interfejsw,
- example.py - skrypt Pythona, ktry wywietla dane na bazie szablonu,
- template.j2 - przykadowy plik z szablonem dotyczcym konfiguracji interfejsw.

3. Folder Instrukcje warunkowe: Przykad w tym folderze pokazuje jak wykorzysta instrukcje warunkowe w plikach szablonw Jinja. Kod zawarty w skrypcie konfiguruje interfejs jako trunk lub dostpowy w zalenoci od tego jak warto przyjmuje zmienna "uplink",. W celu poprawnego dziaania naley zamieci pliki w tym samym folderze, po czym wywoa wewntrz niego polecenie "python example.py", eby interfejs zosta skonfigurowany jako mode access, naley w pliku Pythona zmieni warto "uplink" na "False", w przeciwnym razie pozostawi domyln warto "True". 
Pliki w folderze to:
- example.py - skrypt Pythona, ktry wywietla dane na bazie szablonu,
- template.j2 - przykadowy plik z szablonem dotyczcym konfiguracji interfejsw.

4. Folder Ptle: Przykad w tym folderze pokazuje jak wykorzysta ptle w plikach szablonw Jinja. Kod zawarty w skrypcie konfiguruje dziesi interfejsw jako dostpowe,. W celu poprawnego dziaania naley zamieci pliki w tym samym folderze, po czym wywoa wewntrz niego polecenie "python example.py". 
Pliki w folderze to:
- example.py - skrypt Pythona, ktry wywietla dane na bazie szablonu,
- template.j2 - przykadowy plik z szablonem dotyczcym konfiguracji interfejsw.

5. Folder Instrukcje warunkowe i ptle: Przykad w tym folderze pokazuje jak wykorzysta instrukcje warunkowe oraz ptle w plikach szablonw Jinja. Kod zawarty w skrypcie konfiguruje pierwszy interfejs jako trunk, a pozostaych dziewi jako dostpowe,. W celu poprawnego dziaania naley zamieci pliki w tym samym folderze, po czym wywoa wewntrz niego polecenie "python example.py". Pliki w folderze to:
- example.py - skrypt Pythona, ktry wywietla dane na bazie szablonu,
- template.j2 - przykadowy plik z szablonem dotyczcym konfiguracji interfejsw.

6. Folder Renderowanie szablonu zawiera dwa podkatalogi:
a) Klasa: Przykad w tym podkatalogu pokazuje jak wyglda renderowanie szablonu z danymi przekazanymi jako obiekt klasy. W celu poprawnego dziaania naley zamieci pliki w tym samym folderze, po czym wywoa wewntrz niego polecenie "python example.py". Pliki w folderze to:
- example.py - skrypt Pythona, ktry wywietla dane na bazie szablonu,
- template.j2 - przykadowy plik z szablonem dotyczcym konfiguracji interfejsw.

b) Sownik: Przykad w tym podkatalogu pokazuje jak wyglda renderowanie szablonu z danymi przekazanymi jako sownik. W celu poprawnego dziaania naley zamieci pliki w tym samym folderze, po czym wywoa wewntrz niego polecenie "python example.py". Pliki w folderze to:
- example.py - skrypt Pythona, ktry wywietla dane na bazie szablonu,
- template.j2 - przykadowy plik z szablonem dotyczcym konfiguracji interfejsw.

7. Folder Iterowanie zawiera dwa podkatalogi:
a) Lista: Przykad w tym podkatalogu pokazuje jak renderowa szablon, ktry iteruje po zbiorze definicji interfejsw przekazanych jako lista. W celu poprawnego dziaania naley zamieci pliki w tym samym folderze, po czym wywoa wewntrz niego polecenie "python example.py". 
Pliki w folderze to:
- example.py - skrypt Pythona, ktry wywietla dane na bazie szablonu,
- template.j2 - przykadowy plik z szablonem dotyczcym konfiguracji interfejsw.

b) Sownik: Przykad w tym podkatalogu pokazuje jak renderowa szablon, ktry iteruje po zbiorze definicji interfejsw przekazanych jako sownik. W celu poprawnego dziaania naley zamieci pliki w tym samym folderze, po czym wywoa wewntrz niego polecenie "python example.py". 
Pliki w folderze to:
- example.py - skrypt Pythona, ktry wywietla dane na bazie szablonu,
- template.j2 - przykadowy plik z szablonem dotyczcym konfiguracji interfejsw.

8. Folder Filtry zawiera trzy podkatalogi:
a) Filtr grny: Przykad w tym podkatalogu pokazuje jak renderowa szablon, ktry uwzgldnia filtr UPPER przy wywietlaniu opisw interfejsw. W celu poprawnego dziaania naley zamieci pliki w tym samym folderze, po czym wywoa wewntrz niego polecenie "python example.py". 
Pliki w folderze to:
- data.yml - przykadowy plik z danymi dotyczcymi konfiguracji interfejsw,
- example.py - skrypt Pythona, ktry wywietla dane na bazie szablonu,
- template.j2 - przykadowy plik z szablonem dotyczcym konfiguracji interfejsw.

b) acuchy filtrw: Przykad w tym podkatalogu pokazuje jak renderowa szablon, ktry uwzgldnia filtry UPPER i REVERSE przy wywietlaniu opisw interfejsw. W celu poprawnego dziaania naley zamieci pliki w tym samym folderze, po czym wywoa wewntrz niego polecenie "python example.py". 
Pliki w folderze to:
- data.yml - przykadowy plik z danymi dotyczcymi konfiguracji interfejsw,
- example.py - skrypt Pythona, ktry wywietla dane na bazie szablonu,
- template.j2 - przykadowy plik z szablonem dotyczcym konfiguracji interfejsw.

c) Wasny filtr: Przykad w tym podkatalogu pokazuje jak renderowa szablon, ktry uwzgldnia utworzony przez autorw filtr przy wywietlaniu przepustowoci interfejsu. W celu poprawnego dziaania naley zamieci pliki w tym samym folderze, po czym wywoa wewntrz niego polecenie "python example.py". 
Pliki w folderze to:
- example.py - skrypt Pythona, ktry wywietla dane na bazie szablonu,
- templatestuff - katalog zawierajcy szablon oraz plik z danymi.



Rozdzia 7: 

a) Katalog NETCONF, podkatalog Edycja konfiguracji - w katalogu znajduj si dwa pliki XML, ktre wysane do urzdzenia w ramach sesji NETCONF powinny skonfigurowa odpowiednie ustawienia. Plik example1.xml dodaje now statyczn tras routingu, a plik example2.xml to plik, ktry konfiguruje interfejs GigabitEthernet4.

b) Katalog NETCONF, podkatalog Pozyskiwanie konfiguracji - w katalogu znajduj si cztery pliki XML, ktre wysane do urzdzenia w ramach sesji NETCONF powinny pozyska informacje o odpowiednich ustawieniach. Plik example1.xml pozyskuje informacja o skonfigurowanych interfejsach, plik example2.xml pozyskuje informacje o konkretnym interfejsie - GigabitEthernet4, plik example3.xml pozyskuje informacje o interfejsie fxp0, ale dane s zwracane w modelu danych YANG opracowanym przez IETF, za to plik example4.xml dziaa tak samo jak plik example1.xml, tylko e wykorzystywany model danych to model danych YANG od IETF.

c) Katalog NETCONF, podkatalog Wymiana moliwoci NETCONF - w katalogu znajduje si plik XML example.xml, ktry suy do pozyskania informacji na temat moliwoci NETCONF docelowego urzdzenia.

d) Katalog requests, podkatalog Arista eAPI - w katalogu znajduj si trzy skrypty Pythona, wymagaj poczenia z odpowiednim urzdzeniem Arista EOS:
- eapi-requests1.py - skrypt pobiera informacje na temat skonfigurowanych sieci VLAN w urzdzeniu eos-spine1. Skrypt wywoujemy poleceniem: python eapi-requests1.py. Niestety ze wzgldu na brak dostpu do urzadzenia Arista EOS, nie byem zdolny wywoa tego skryptu w peni. W zamierzeniu, eby skrypt dziaa w sieci musi istnie Arista EOS o hostname eos-spine1 rozpoznawanym przez DNS,
- eapi-requests2.py - analogicznie do poprzedniego, tylko e adniej formatuje wyniki,
- eapi-requests3.py - przeprowadza automatyczn konfiguracj interfejsw na dwch urzdzeniach Arista EOS: eos-spine1 i eos-spine2.

e) Katalog requests, podkatalog Cisco NX-API - w katalogu znajduj si dwa skrypty Pythona, wymagaj poczenia z odpowiednim urzdzeniem Cisco NXOS:
- nxapi-cli1.py - skrypt wywouje i wywietla wynik komendy show version w urzdzeniu nxos-spine (ponownie jest wymagane obecno switcha z hostname nxos-spine rozpoznawanym przez DNS),
- nxapi-cli2.py - skrypt wywouje i wywietla wynik komendy wybranej przez wywoujcego w urzdzeniu nxos-spine (ponownie jest wymagane obecno switcha z hostname nxos-spine rozpoznawanym przez DNS), uruchomienie skryptu wyglda nastpujco: python nxapi-cli2.py "komenda" "opcjonalny wybr formatu odpowiedzi".

f) Katalog requests, podkatalog RESTCONF - w katalogu znajduj si dwa skrypty Pythona i jeden plik YAML, wymagaj poczenia z odpowiednim urzdzeniem Cisco IOS:
- ospf-config.yml - plik YAML zawierajcy konfiguracj routingu OSPF,
- example1.py - skrypt pozyskuje informacje o konfiguracji urzdzenia ios-csr1kv (znowu wymagana jest obecno takiego hostname'u w sieci),
- example2.py - skrypt konfiguruje na urzdzeniu ios-csr1kv routing OSPF zgodnie z danymi z pliku YAML.

g) Katalog requests, podkatalog Wykorzystanie Pythona - w katalogu znajduj si dwa skrypty Pythona, wymagaj poczenie z odpowiednim wirtualnym urzdzeniem Cisco ASAv
- example1.py - pozyskuje informacje o konfiguracjach interfejsw na urzdzeniu asav (znowu wymagana obecno urzdzenia w sieci),
- example2.py - konfiguruje opis interfejsu GigabitInterface na urzdzeniu asav.

Rozdzia 9: W rodku znajduje si katalog Ansible, wewntrz ktrego umieszczono kilka podkatalogw prezentujcych funkcjonalno narzdzia Ansible. 
Te podkatalogi to:
a) Wdraanie SNMP - przykad pokazujcy jak za pomoc Ansible'a wdroy konfiguracje SNMP na urzdzeniach z pliku inwentarza. Wywoanie wymaga umiejscowienia obu plikw w tym samym katalogu po czym wywoania komendy: "ansible-playbook -i inventory snmp-intro.yml". Przykad wymaga, aby w sieci istniay urzdzenia o nazwach hostw takich jak w pliku inwentarza. 
Pliki w podkatalogu to:
- inventory - plik inwentarza z urzdzeniami sieciowymi, na ktrych wdraamy konfiguracje SNMP,
- snmp-intro.yml - plik scenariusza, ktry wdraa konfiguracje SNMP.

b) Tworzenie plikw konfiguracyjnych SNMP - przykad pokazujcy jak za pomoc Ansible'a przygotowa pliki z konfiguracjami SNMP dla urzdzeniach z pliku inwentarza. Wywoanie wymaga umiejscowienia obu plikw oraz wszystkich trzech podfolderw w tym samym katalogu po czym wywoania komendy: "ansible-playbook -i inventory snmp.yml". Pliki w podkatalogu to:
- inventory - plik inwentarza z urzdzeniami sieciowymi, dla ktrych generujemy pliki z konfiguracjami SNMP,
- snmp.yml - plik scenariusza, ktry generuje pliki konfiguracji SNMP,
- configs - podkatalog w ktrego wntrzu znajduje si folder snmp, jest to folder w ktrym pojawiaj si wygenerowane pliki, w przesyanym archiwum wysyam te wygenerowane przez ten scenariusz konfiguracje,
- group_vars - podkatalog zawiera trzy pliki YAML z odpowiednimi definicjami zmiennych wykorzystywanych przy realizacji scenariusza,
- templates - podkatalog w ktrego wntrzu znajduje si folder snmp, jest to folder w ktrym trzymane s pliki szablonw wykorzystywane do generacji plikw konfiguracji SNMP, kady z tych szablonw dostosowany jest do innego urzdzenia sieciowego.

c) Wdraanie SNMP na EOS - przykad pokazujcy jak za pomoc Ansible'a przygotowa pliki z konfiguracjami SNMP dla urzdzeniach z pliku inwentarza, a nastpnie wdroy na urzdzeniu EOS konfiguracj SNMP na bazie jednego z tych plikw. Wywoanie wymaga umiejscowienia obu plikw oraz wszystkich trzech podfolderw w tym samym katalogu po czym wywoania komendy: "ansible-playbook -i inventory snmp.yml". Przykad wymaga, aby w sieci istniay urzdzenia o nazwach hostw takich jak w pliku inwentarza. 
Pliki w podkatalogu to:
- inventory - plik inwentarza z urzdzeniami sieciowymi, dla ktrych generujemy pliki z konfiguracjami SNMP,
- snmp.yml - plik scenariusza, ktry generuje pliki konfiguracji SNMP oraz wdraa konfiguracje SNMP na urzdzeniach EOS,
- configs - podkatalog w ktrego wntrzu znajduje si folder snmp, jest to folder w ktrym pojawiaj si wygenerowane pliki, w przesyanym archiwum wysyam te wygenerowane przez ten scenariusz konfiguracje,
- group_vars - podkatalog zawiera trzy pliki YAML z odpowiednimi definicjami zmiennych wykorzystywanych przy realizacji scenariusza,
- templates - podkatalog w ktrego wntrzu znajduje si folder snmp, jest to folder w ktrym trzymane s pliki szablonw wykorzystywane do generacji plikw konfiguracji SNMP, kady z tych szablonw dostosowany jest do innego urzdzenia sieciowego.

d) Wdraanie SNMP na Junos - przykad pokazujcy jak za pomoc Ansible'a przygotowa pliki z konfiguracjami SNMP dla urzdzeniach z pliku inwentarza, a nastpnie wdroy na urzdzeniu EOS, a nastpnie Junos, konfiguracj SNMP na bazie dwch z tych plikw. Wywoanie wymaga umiejscowienia obu plikw oraz wszystkich trzech podfolderw w tym samym katalogu po czym wywoania komendy: "ansible-playbook -i inventory snmp.yml". Przykad wymaga, aby w sieci istniay urzdzenia o nazwach hostw takich jak w pliku inwentarza. Pliki w podkatalogu to:
- inventory - plik inwentarza z urzdzeniami sieciowymi, dla ktrych generujemy pliki z konfiguracjami SNMP,
- snmp.yml - plik scenariusza, ktry generuje pliki konfiguracji SNMP oraz wdraa konfiguracje SNMP na urzdzeniach EOS i Junos,
- configs - podkatalog w ktrego wntrzu znajduje si folder snmp, jest to folder w ktrym pojawiaj si wygenerowane pliki, w przesyanym archiwum wysyam te wygenerowane przez ten scenariusz konfiguracje,
- group_vars - podkatalog zawiera trzy pliki YAML z odpowiednimi definicjami zmiennych wykorzystywanych przy realizacji scenariusza,
- templates - podkatalog w ktrego wntrzu znajduje si folder snmp, jest to folder w ktrym trzymane s pliki szablonw wykorzystywane do generacji plikw konfiguracji SNMP, kady z tych szablonw dostosowany jest do innego urzdzenia sieciowego.

e) Testy zgodnoci - przykad pokazujcy jak wykorzysta moduy debug i report do wykonywania testw zgodnoci. Wywoanie wymaga umiejscowienia obu plikw oraz podfolderu w tym samym katalogu po czym wywoania komendy: "ansible-playbook -i inventory tests.yml". Przykad wymaga, aby w sieci istniay urzdzenia o nazwach hostw takich jak w pliku inwentarza. Pliki w podkatalogu to:
- inventory - plik inwentarza z urzdzeniami sieciowymi, w tym urzdzenia na ktrym przeprowadzamy testy zgodnoci,
-  tests.yml - plik scenariusza, ktry pobiera z urzdzenia EOS informacje na temat skonfigurowanych w nim sieci VLAN, a nastpnie sporzdza raport ich dotyczcy,
- group_vars - podkatalog zawiera trzy pliki YAML z odpowiednimi definicjami zmiennych wykorzystywanych przy realizacji scenariusza.

f) Wykonanie polecenia show - przykad pokazujcy jak wykorzysta Ansible do wysania polecenia show na urzdzenie, a nastpnie sporzdzenia raportu z wywietlonego wyjcia. Wywoanie wymaga umiejscowienia obu plikw oraz podfolderu w tym samym katalogu po czym wywoania komendy: "ansible-playbook -i inventory  show.yml". Przykad wymaga, aby w sieci istniay urzdzenia o nazwach hostw takich jak w pliku inwentarza. Pliki w podkatalogu to:
- inventory - plik inwentarza z urzdzeniami sieciowymi, w tym urzdzenia na ktre wysyamy komend show,
- show.yml - plik scenariusza, ktry wysya poleceni show do urzdzenia EOS, a nastpnie sporzdza raport z uzyskanych w ten sposb informacji dotyczcych jego konfiguracji SNMP,
- group_vars - podkatalog zawiera trzy pliki YAML z odpowiednimi definicjami zmiennych wykorzystywanych przy realizacji scenariusza.

g) Zbieranie faktw - przykad pokazujcy jak wykorzysta Ansible do zebrania faktw dotyczcych urzdzenia Cisco IOS-XE. Wywoanie wymaga umiejscowienia obu plikw oraz podfolderu w tym samym katalogu po czym wywoania komendy: "ansible-playbook -i inventory gather.yml". Przykad wymaga, aby w sieci istniay urzdzenia o nazwach hostw takich jak w pliku inwentarza. Pliki w podkatalogu to:
- inventory - plik inwentarza z urzdzeniami sieciowymi, w tym urzdzenia z ktrego zbieramy fakty,
- gather .yml - plik scenariusza, ktry zbiera fakty z urzdzenia Cisco IOS-XE,
- group_vars - podkatalog zawiera trzy pliki YAML z odpowiednimi definicjami zmiennych wykorzystywanych przy realizacji scenariusza.

h) Wykorzystanie moduu debug - przykad pokazujcy jak wykorzysta Ansible do zebrania faktw dotyczcych urzdzenia Cisco IOS-XE, a nastpnie wykorzystania moduu debug w celu uzyskania informacji na temat nazwy hosta tego urzdzenia oraz jego wersji NOS. Wywoanie wymaga umiejscowienia obu plikw oraz podfolderu w tym samym katalogu po czym wywoania komendy: "ansible-playbook -i inventory debug.yml". Przykad wymaga, aby w sieci istniay urzdzenia o nazwach hostw takich jak w pliku inwentarza. Pliki w podkatalogu to:
- inventory - plik inwentarza z urzdzeniami sieciowymi, w tym urzdzenia z ktrego zbieramy fakty i pozyskujemy nazw hosta oraz wersj NOS,
- debug.yml - plik scenariusza, ktry zbiera fakty z urzdzenia Cisco IOS-XE, a nastpnie wydobywa z nich nazw hosta oraz wersj NOS,
- group_vars - podkatalog zawiera trzy pliki YAML z odpowiednimi definicjami zmiennych wykorzystywanych przy realizacji scenariusza.

Rozdzia 10: W rodku znajduje si skrypt Pythona, ktry sprawdza, czy wskazanej ciece (../datafiles) znajduj si poprawne pliki YAML. Wywoanie przykadu wymaga umieszczenie w katalogu roboczym pliku oraz folderu z plikami YAML, po czym wywoanie w tym katalogu roboczym polecenia "python example.py".