Pamiętacie zapewne, że byłem bardzo rozczarowany Cisco Modeling Labs 2.0. Brakowało mi fantastycznej funkcjonalności z Cisco VIRL pozwalającej w prosty sposób prekonfigurować urządzenia. Pozwalało to inżynierom zaoszczędzić sporo czasu na adresowaniu interfejsów czy konfigurowaniu protokołów. Funkcja ta ma miała nazwę AutoNetKit. Jakiś miesiąc temu postanowiłem, że napiszę własny program wypełniający, choć częściowo, tą lukę. Tak powstał CMLNetKit i mogę powiedzieć, że jego pierwsza wersja gotowa jest do testów.ę

Pierwsze wydanie CMLNetKit

W artykule „Jak określam założenia mojego projektu” wyspecyfikowałem dwie grupy funkcjonalności, których mi najbardziej brakowało w CML 2.0. Chciałem, aby mój program potrafił przede wszystkim:

  1. Po ułożeniu topologii w ramach wyznaczonych przeze mnie podsieci chcę, aby automatycznie zaadresował:
    • Połączenia L3 pomiędzy urządzeniami
    • Wszystkie interfejsy Loopback0
    • Interfejsy służące do zarządzania
  2. Zmieniał konfigurację obiektów „External Connection” na Bridge 
Na spokojnie pisząc sobie kod wieczorami czy w weekendy te funkcjonalności zostały zaimplementowane. Przy okazji powstało kilka artykułów na bloga. Kod nie jest jeszcze idealny, widzę parę rzeczy do poprawy, uproszczenia, lub wymagana jest lepsza obsługa błędów.
Rzeczy do poprawy jest co najmniej kilka. Niektóre polegają na optymalizacji samego kodu, pozbycia się jakiś nadmiarowych metod czy ich wywołań. Wynikają one z faktu, że czasem w czasie pisania zmieniała mi się nieco koncepcja tego, w jaki sposób chciałem coś zaimplementować. Jest to naturalna rzecz w czasie tworzenia każdego programu i nie wynika on ze słabego warsztatu pracy czy złych pomysłów. Sposoby optymalizacji pewnych czynności widać czasem, dopiero gdy pewne funkcje zaimplementujemy. Dlatego w najbliższym czasie kilka rzeczy zostanie uproszczonych.
W niektórych miejscach konieczne jest też dopisanie lepszej obsługi wyjątków. Chodzi zarówno o poprawę konstrukcji ich obsługi, jak i zaimplementowanie zachowania aplikacji w przypadku wystąpienia wyjątków mniej oczywistych.

Jeżeli jesteś w stanie wyłapać jakie elementy kodu można by poprawić, zoptymalizować, lub lepiej zaimplementować napisz w komentarzu pod tym postem!

Jak możesz przetestować CMLNetKit

Zachęcam Cię do przetestowania mojego programu. Jeżeli masz CML2.0 to nic prostszego, uruchomisz aplikację u siebie. Jeżeli nie masz, to możesz spróbować przetestować CMLNetKit w Cisco Modeling Labs Sandbox dostępnym na stronach Cisco DevNet Sandbox. Wystarczy dokonać odpowiedniej rezerwacji (dostępne są maksymalnie 4-godzinne sloty czasowe), połączyć się VPN-em i korzystać bez ograniczeń. Dawno z tego sandbox-a nie korzystałem, ale jeżeli nic się nie zmieniło, powinno się udać.

Aplikacja działa w ten sposób, że pobiera ona konfigurację wskazanego laba z serwera CML, dokonuje zmian i wgrywa zmodyfikowaną wersję jako nowy lab, zachowując oryginalną nazwę. Lab identyfikowany jest za pomocą unikalnego identyfikatora. Listę skonfigurowanych labów i przypisanych im identyfikatorów pobieramy dodając parametr --list-labs. Lab, którego modyfikacji chcemy dokonać, wskazujemy parametrem -l. Jeżeli wywołacie program z parametrem -h wyświetli się na ekranie lista dostępnych parametrów z przykładami ich wywołań. 

Przykłady, w jaki sposób uruchamiać aplikację znajdują się w dokumentacji.


Subscribe
Powiadom o
guest

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.

0 komentarzy
Inline Feedbacks
View all comments

ZdradziĆ Ci sekretY udanego projektu automatyzacji?

(link otwiera się w nowym oknie)