Pytaj o dane z NetFlow językiem naturalnym

Pytaj o dane z NetFlow językiem naturalnym

Pytaj o dane z NetFlow językiem naturalnym

To jeden z tych projektów, które miały iść do szuflady lub żyć zaledwie parę dni. Miałem pod ręką sporo danych z NetFlow i wpadłem na pomysł by napisać chatbota. Aby pytać o te dane za pomocą języka naturalnego. W sumie nigdy nie pisałem chyba chatbota więc why not? Ponieważ głównie dotychczas programowałem modele w OpenAI albo w Azure. Niekoniecznie chciałem dane z własnego NetFlow udostępniać publicznym modelom, więc padło na uruchomienie modelu na własnym serwerze. Do tego to był ten tydzień gdzie gruchnęła wiadomość o chińskim modelu DeepSeek. W ostateczności i tak dane do modelu nie trafiają. Nie muszą bo są w lokalnym ElasticStack, a zmiana koncepcji przyszła już w trakcie pisania, ale chęć użycia lokalnego modelu pozostała. I parę osób prosiło o opowiedzenie czegoś więcej o projekcie i udostępnienie kodu. Zapraszam zatem do lektury i do repozytorium.

Czytaj dalej
Włączanie Cisco UCS skryptem w Python

Włączanie Cisco UCS skryptem w Python

Włączanie Cisco UCS skryptem w Python

Jeżeli w Twoim domowym labie ląduje serwer Cisco UCS, to być może nie chcesz by działał 24/7. Prąd jest drogi, szumi to niemiłosiernie i jak nie masz serwerowni w garażu to po paru dniach będziesz miał dość odgłosów serwerowni w swoim domu. Z drugiej strony leń siedzi w każdym z nas i nikomu nie chce się chodzić by tylko kliknąć przycisk by uruchomić serwer. Zatem najbardziej przydatny skrypt to ten, który pozwoli uruchomić serwer zdalnie.

Czytaj dalej
Odkryj biblioteki Python przydatne w automatyzacji

Odkryj biblioteki Python przydatne w automatyzacji

Odkryj biblioteki Python przydatne w automatyzacji

Dzisiaj chciałbym podzielić się z Wami wyjątkowym repozytorium, które zawiera zbiór biblioteki Python przydatne w automatyzacji. Wykorzystasz je w skryptach automatyzujących zarządzanie sieciami komputerowymi. Repozytorium dostępne jest na GitHub Szkoły DevNet dla wszystkich. Jest to projekt, który może zainteresować zarówno początkujących, jak i doświadczonych programistów sieciowych. A co w nim znajdziesz? Szczegóły poniżej.

Czytaj dalej
Nowości w Python 3.11

Nowości w Python 3.11

Nowości w Python 3.11

Co prawda Python 3.11 wyszedł w październiku zeszłego roku to dopiero niedawno miałem czas przyjrzeć się nowościom i zmianom w tej wersji języka. Nie ma ich co prawda bardzo dużo, ale niektóre wydają się dość ciekawe i do zastosowania nie tylko przez zaawansowanych programistów. Sam jako domyślny język używam od wielu miesięcy wersji 3.10, którą uważam za stabilną. Spójrzmy zatem co przynosi wersja 3.11.

Czytaj dalej
Czym jest DevNet Code Exchange

Czym jest DevNet Code Exchange

Czym jest DevNet Code Exchange

Wśród wielu serwisów udostępniających skrypty automatyzacji warto zwrócić uwagę na Cisco DevNet Code Exchange. Jest to platforma, na której zebrane są stworzone przez Cisco oraz niezależnych developerów i entuzjastów skrypty ułatwiające automatyzację produktów z ekosystemu Cisco. Jeżeli więc pracujesz z urządzeniami tej firmy na co dzień, to powinieneś mieć ten serwis w swoich zakładkach. Mój projekt, CMLNetKit, także znajduje się w tym repozytorium.

Czytaj dalej
Pierwsza styczność z API na Fortigate

Pierwsza styczność z API na Fortigate

Pierwsza styczność z API na Fortigate

Trafił do mnie na jakiś czas firewall Fortigate 60E, więc postanowiłem skorzystać z okazji i zobaczyć co oferuje platforma od strony programowalnego zarządzania. Z urządzeniami Fortigate mam styczność co jakiś czas, wielu mniejszych klientów z nich korzysta. Nie miałem okazji jednak wykorzystywać ich interfejsu API czy programowalnych funkcjonalności. Opisane funkcje testowałem na najnowszym firmware 7.0.0.

Czytaj dalej
AdminDays - skrypt z warsztatów

AdminDays – skrypt z warsztatów

AdminDays - skrypt z warsztatów

W zeszłym tygodniu, 25 marca, w ramach eventu AdminDays miałem przyjemność poprowadzić warsztaty/prezentację związaną z automatyzacją w środowisku sieciowym. W czasie spotkania pokazałem proces tworzenia skryptu w języku Python, który wykonuje proste czynności administracyjne związane z odczytaniem i rekonfiguracją interfejsu Loopback. Z samym urządzeniem połączenie następuje za pomocą protokołu RESTCONF, a jeżeli ten jest niedostępny to za pomocą SSH z wykorzystaniem biblioteki Netmiko. Skrypt, wraz z zestawem linków do podstawowych bibliotek, które każdy programista sieciowy powinien znać, znajduje się w repozytorium GitHub Szkoły DevNet.

Czytaj dalej
Jak dodałem funkcjonalność MaxReplicas w docker-py i Ansible

Jak dodałem funkcjonalność MaxReplicas w docker-py i Ansible

Jak dodałem funkcjonalność MaxReplicas w docker-py i Ansible

W klastrach Docker Swarm możemy uruchamiać serwisy w dwóch trybach – global oraz replicated. Jeżeli wybierzemy pierwszy z nich, to na każdym węźle wchodzącym w skład klastra zostanie uruchomiona dokładnie jednak kopia serwisu. W trybie replicated wskazujemy, ile kopii serwisu chcemy mieć uruchomionych, ale to Swarm decyduje, na których węzłach zostaną one uruchomione. Możemy w pewnym stopniu na nie wpływać za pomocą tak zwanych placement constraints i placement preferencesJest też parametr MaxReplicas, którego wsparcie napisałem dla biblioteki docker-py oraz do modułu docker_swarm_service kolekcji community.docker w projekcie Ansible. Korzytanie z niego jest bardzo proste.

Czytaj dalej
Tajemnicze *args i **kwargs

Tajemnicze *args i **kwargs

Tajemnicze *args i **kwargs

Jak w każdym języku programowania także w Pythonie znajdziemy ciekawe i zastanawiające konstrukcje składni. Na przykład dziwnie wyglądające *args i **kwargs w języku Python. Dziś pokażę Ci w jaki sposób poradzić sobie w sytuacji, gdy wywołujemy funkcję, ale nie wiemy ile argumentów do niej zostanie przekazanych. Z taką sytuacją w świecie automatyzacji infrastruktury mamy do czynienia dość często. Rozwiązanie w tym przypadku jest banalnie proste.

Czytaj dalej