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.
Wtorki z Pythonem
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.
Przez Piotr Wojciechowski, temu
Wtorki z Pythonem
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.
Przez Piotr Wojciechowski, temu
Narzędzia
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.
Przez Piotr Wojciechowski, temu
Narzędzia
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.
Przez Piotr Wojciechowski, temu
Wtorki z Pythonem
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.
Przez Piotr Wojciechowski, temu
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 preferences. Jest 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.
Przez Piotr Wojciechowski, temu
Wtorki z Pythonem
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.
Przez Piotr Wojciechowski, temu
Wtorki z Pythonem
Operatory porównania “==” oraz “is”
Wiele osób zaczynających swoją przygodę z Pythonem jest zafascynowana elastycznością tego języka oraz składnią, która jest dość intuicyjna. Następnie zderzają się z problemem, że za bardzo chcieliby upraszczać, a co za tym idzie nie do końca poprawnie stosują różne operatory. Chyba najczęściej mylnie używane są operatory porównania ==
oraz is
.
Przez Piotr Wojciechowski, temu
Porady
Uruchamiamy skypt Python w Jenkins
Jenkins to elastyczne narzędzie do tworzenia i wykonywania scenariuszy w modelu CI/CD. Scenariusz taki może składać się z przeróżnych kroków, w trakcie których wykorzystujemy zewnętrzne narzędzia takie jak skrypty Pythona. W dzisiejszym artykule zaprezentuję Ci trzy sposoby wywoływania skryptów Python w Jenkins w projektach opisywanych za pomocą zdefiniowanych akcji jak i jako pipeline.
Przez Piotr Wojciechowski, temu