Artykuł pochodzi z wydania: Lipiec-Sierpień 2024
Jednym z najbardziej żmudnych i czasochłonnych, a zarazem niezbędnych w codziennej pracy inżyniera sieciowego jest prowadzenie dokumentacji. Arkusz kalkulacyjny to w dalszym ciągu całkiem popularna propozycja, ale na szczęście do wyboru mamy bardziej wyszukane opcje.
Niech pierwszy rzuci kamieniem ten, kto nigdy nie przechowywał dokumentacji adresacji IP w Excelu. Co więcej, arkusz kalkulacyjny to nadal najpopularniejszy sposób na przechowywanie informacji o sieci, szczególnie wśród mniejszych przedsiębiorstw. Adresacja to podstawowy, ale niejedyny rodzaj informacji, który dobrze byłoby przechowywać w mniej lub bardziej zorganizowany sposób. Równie istotne jest gromadzenie informacji o fizycznej lokalizacji urządzeń podpiętych do sieci i to zarówno pod względem geograficznym, jak i instalacji w konkretnym miejscu w szafie, serwerowni czy nawet centrum przetwarzania danych z uwzględnieniem schematu połączeń, konfiguracji lub informacji czysto inwentaryzacyjnych. Popularny arkusz kalkulacyjny pewnie poradziłby sobie również i z tymi zadaniami, ale zdecydowanie łatwiej sięgnąć po dedykowane narzędzie. Z pomocą przychodzi NetBox – darmowe narzędzie rozwijane na podstawie licencji Apache 2.0, które zyskało rzeszę entuzjastów od momentu premiery w 2016 r.
Autorem projektu jest inżynier sieciowy Jeremy Stretch, który podczas pracy dla popularnego dostawcy chmurowego – DigitalOcean – potrzebował narzędzia ułatwiającego codzienne zadania. Do dziś jest on również głównym kontrybutorem wersji otwartej. Obecnie za projektem stoi NetBox Labs, a także prężnie działająca społeczność. NetBox wspierany jest także przez duże firmy IT, które zainwestowały w przedsięwzięcie i z powodzeniem wykorzystują NetBoksa do własnych potrzeb. NetBox Labs odpowiada także za komercyjne oblicze projektu, a więc wersję SaaS – NetBox Cloud oraz edycję Enterprise. Produkty komercyjne pozostawiamy jednak dla użytkowników wymagających wsparcia oraz dodatkowych funkcji dostępnych za dodatkową opłatą. Przedmiotem testu jest najnowsza dostępna wersja (v4.0.3) dostępna w githubowym repozytorium projektu.
> ARCHITEKTURA I WDROŻENIE
NetBox jest oparty na Django – popularnym dla Pythona frameworku – a także na bazie danych PostgreSQL. Aplikacja działa jako usługa WSGI (Web Server Gateway Interface) dostępna za pośrednictwem serwera HTTP. W przypadku WSGI wspierany jest gunicorn oraz uWSGI, natomiast serwis HTTP można oprzeć na nginksie albo Apache’u. Kolejkowanie zadań bazuje z kolei na Redis/Django-rq.
Wdrożenie NetBoksa można przeprowadzić na kilka sposobów. Metoda tradycyjna polega na instalacji każdego komponentu po kolei, wykorzystując menedżera pakietów wybranej dystrybucji Linuksa do instalacji pakietów typu PostgreSQL, Apache czy Redis. Uruchomienie samej aplikacji NetBox wymaga wcześniejszego zainstalowania Pythona oraz wymaganych bibliotek, a następnie pobrania archiwum wydania lub sklonowania repozytorium za pomocą gita. W kolejnych krokach konieczne jest stworzenie użytkownika systemowego dla usługi WSGI i HTTP, a także wstępna konfiguracja samej usługi za pośrednictwem pliku configuration.py, w którym należy podać informacje na temat bazy danych PostgreSQL, Redisa czy klucza wykorzystywanego przez mechanizmy szyfrowania. Podanie podstawowych informacji wystarczy do przeprowadzenia właściwej instalacji. W tym celu należy uruchomić skrypt upgrade.sh, który utworzy środowisko wirtualne Pythona, zainstaluje wymagane paczki oraz przygotuje wszystkie zależności. Po przeprowadzeniu instalacji konieczne będzie stworzenie konta administracyjnego, a także dodanie do harmonogramu skryptu mającego za zadanie utrzymanie NetBoksa w dobrym stanie (czyszczenie starych sesji, usuwanie przeterminowanych rekordów w logu itp.). Na tym etapie możliwe jest już sprawdzenie, czy nasza usługa NetBox działa, choć do pełni szczęścia brakuje jeszcze skonfigurowania serwera HTTP, który pozwoli na wyświetlenie okna aplikacji w przeglądarce. Domyślnie wraz z NetBoksem instalowany jest gunicorn, który należy wstępnie skonfigurować i dodać do autostartu. Ostatnim krokiem jest instalacja preferowanego serwera HTTP. Pliki konfiguracyjne dla Apache’a i nginksa dostępne są wraz z NetBoksem. Ze względów bezpieczeństwa rekomendowane jest także uruchomienie szyfrowanej komunikacji HTTPS. Ponadto niektóre z wtyczek, jak chociażby rozszerzenie pozwalające załadować bazę informacjami o popularnych urządzeniach sieciowych, nie zaakceptują certyfikatu typu self-signed. Warto zatem skorzystać chociażby z popularnego Let’s Encrypt.
Alternatywnym, a zarazem dużo łatwiejszym sposobem instalacji jest skorzystanie z docker compose. Dokumentacja projektu zawiera też linki do innych metod instalacji, np. z wykorzystaniem Kubernetesa, Vagranta czy za pomocą Terraforma w AWS-ie. Szczegółowe instrukcje dla każdej z metod znaleźć można na GitHubie projektu.
[…]
Marcin Jurczyk
Autor jest od 2004 roku związany z branżą IT i nowych technologii w obszarze administrowania systemami klasy ERP. Specjalizuje się w realizacji wdrożeń i audytów bezpieczeństwa informacji.