ConsolePi – genialny serwer szeregowej konsoli

W tym wpisie przedstawię bardzo ciekawe narzędzie na RaspberryPi, przydatne każdemu administratorowi urządzeń sieciowych. W sumie to nie tylko, bo wszelkich pudełek wyposażonych w port szeregowej konsoli. Generalnie dostęp po RS232 stosuje się w dwóch przypadkach: przy pierwszym podłączeniu i konfiguracji oraz wtedy, gdy dostęp po sieci jest niemożliwy z różnych względów.

Co będzie potrzebne do uruchomienia ConsolePi?

Nie będzie niespodzianką, że ConsolePi instaluje się na RaspberryPi (chociaż można i na innych plaftormach: https://github.com/Pack3tL0ss/ConsolePi?tab=readme-ov-file#alternative-hardware-installs). Do tego projektu użyłem starą dobrą RPi w wersji 3B, czyli sprzęt z czasów, gdy był w normalnej cenie, co było jedną z głównych założeń. Na karcie microSD zainstalowałem RaspiOS Lite.Do kompletu wykorzystałem 3 sprawdzone konwertery USB->RS232: jeden dołączany do firewalli Fortigate i dwa tanie Digitusy, na których pracuję od 15 lat.

No i jakieś zasilanie 5V dla malinki.

Instalacja ConsolePi na RaspiOS

Na wstępnie skonfigurowany RaspiOS (WiFi, expand file system, strefa czasowa, aktualizacja itp), zgodnie z manualem wkleiłem:

wget -q https://raw.githubusercontent.com/Pack3tL0ss/ConsolePi/master/installer/install.sh -O /tmp/ConsolePi && sudo bash /tmp/ConsolePi && sudo rm -f /tmp/ConsolePi

Zaczęła się instalacja:

Jednym z pierwszych zadań jest ustawienie hasła dla użytkownika consolepi, wykorzystywanego do zdalnego dostępu, np. przez wbudowany OpenVPN.

Kolejny etap to odpowiedź na kilka pytań dotyczących specyficznych ustawień (tryb HotSpot, ustawienia chmurowe, VPN itd):

Na koniec potwierdzenie wybranych opcji, ja sobie wybrałem tak:

Coś tam pomieli na karcie i pytanie o instalację dodatkowych narzędzi, mój wybór:

Ciekawy pakiet to cocpit – umożliwia wygodne zarządzanie malinką + wbudowany terminal, a to wszystko z poziomu przeglądarki internetowej.

Kolejne pytanie o interfejsy szeregowe i możliwość przypisania im aliasów, ja zostawiłem to na później:

Ostatni etap to kilka podstawowych informacji + restart RaspberryPi:

Sama instalacja na wspomnianej RaspberryPi 3B trwała kilkadziesiąt minut, ale ściąganych i konfigurowanych pakietów było dosyć sporo.

Pierwsze uruchomienie ConsolePi

Po restarcie i zalogowaniu, automatycznie pojawia się informacja:

No to uruchamiam:

consolepi-menu

Zgodnie z oczekiwaniem, krzyczy, że nie ma interfejsów szeregowych:

Podłączyłem do USB konwerter z Fortinetu i odświeżyłem menu klawiszem ’r’:

Teraz czas na alias, czyli wpisuje ’rn’ wybieram ’1′ i wpisuję nową nazwę, w tym wypadku po prostu nazwa przełącznika, do którego będzie wpięty port konsoli, wpinam jeszcze dwa konwertery i tak samo zmieniam nazwy poprzez aliasy:

Opisując powyższą konfigurację, łączyłem się przez SSH. Można też skorzystać z wcześniej zainstalowanego narzędzia cocpit i łączyć się przez przeglądarkę (ip raspberrypi na porcie 9090):

Chcąc się połączyćz konsolą danego urządzenia, trzeba wybrać numer interfejsu, dalej uruchomi się picocom i jeśli uda się otworzyć port, zgłosi gotowość do uruchomienia konsoli:

Po [Enter] wpisujemy login, hasło i można gmerać w ustawieniach pudełka :):

Podpowiem tylko, że wyjście z konsoli to kolejno [CTRL]+a i [CTRL]+x. Standardowe skróty z picocom’a.

ConsolePi – co jeszcze?

Ten soft ma dużo więcej możliwości. Może sterować (włączać/wyłączać) zasilaniem za pośrednictwem GPIO + przekaźniki, dedykowane listwy zasilające czy gniazdka IoT (Tasmota, espHome). Prócz szeregowych połączeń lokalnych, do menu można dodać skróty do sesji SSH. Do wykorzystania jest też UART wbudowany w RaspberryPi (wersja 4 ma ich aż 4), trzeba tylko zwrócić uwagę na standard (TTL!). Z poziomu konsoli można łączyć się do innych ConsolePi.

A wiem to wszystko, bo przeczytałem na stronie projektu: https://github.com/Pack3tL0ss/ConsolePi?tab=readme-ov-file#features.

Podsumowanie

Kto zajmuje się sieciówką, z pewnością doceni ConsolePi. Szczególnie jeśli serwerownia nie jest za ścianą, a kilka czy nawet kilkadziesiąt kilometrów dalej. RaspberryPi podłączona do niezależnego routera pozwoli zaoszczędzić mnóstwo czasu. Kto nie zrobił błędu w konfiguracji i tym samym nie odciął się od urządzenia, niech pierwszy rzuci kamieniem. Nie raz zdarzyło mi się zakomitować konfig z głupim babolem i sesja ssh została zakończona :). Wtedy szybko do Golfa i wycieczka do serwerowni, najczęściej wieczorem lub w nocy, bo wtedy robi się takie prace. Oczywiście można przetestować konfigurację, np. Juniper ma sprytne commit confirmed, które po określonym czasie wycofa zmiany, jeśli nie zostaną potwierdzone, ale kto ma na to czas, poza tym przecież „ja się nie mylę” :).

Generalnie ConsolePi w sieciówce super rozwiązanie: tanie, łatwe do wdrożenia i mega pomocne. Pewnie w automatyce też znalazłoby zastosowanie.

Możesz również polubić…

1 Odpowiedź

  1. Piotr pisze:

    Super artykuł 🙂

Zostaw komentarz

This site uses Akismet to reduce spam. Learn how your comment data is processed.