Linux

Informatyk | Branża drogowa

Z systemami Linux (głównie Ubuntu/Debian/Mint, Fedora, Mandriva, RedHat, CentOS, Kali, Manjaro/Arch) pracuję od około 5 lat. Wykorzystuję je głównie jako system operacyjny napędzający maszyny pełniące rolę serwerów – serwer plików pod WWW (hosting – LAMP), serwer wymiany plików (dysk sieciowy – Samba) oraz serwery maszyn wirtualnych (Docker, Kubernetes). Prywatnie korzystam z systemu operacyjnego Linux Ubuntu w dystrybucji PopOS!, co ułatwia mi pozostanie na bieżąco z obsługą systemu i pozwala na poznawanie nowych sposobów na radzenie sobie z wyzwaniami codziennego użytkowania komputera pod kontrolą systemu Linux.

Konfiguracja sprzętu

Sprzęt komputerowy od najmłodszych lat był moją pasją, zostało tak do dziś. Składanie komputerów i serwerów mogę śmiało wpisać w rubrykę „Hobby” w CV. Posiadam bogate doświadczenie budowane od 2004 roku i rozbudowywane regularnie wraz z postępem technologii. Potrafię w najlepszy możliwy sposób wykorzystać dostępny budżet i zbudować maszynę, która spełni  wszystkie oczekiwania. Wiele lat składania najróżniejszych kombinacji sprzętu i ich testowanie pozwala mi bardzo szybko oszacować jakie podzespoły są niezbędne do danego zadania oraz jak osiągnąć najlepszy rezultat najniższym kosztem.

Moja ulubiona rodzina systemów Linux – Ubuntu (na zdjęciu Ubuntu 22.04 Workstation)

Instalacje i wdrożenia

Posiadam bogate doświadczenie w zakresie instalacji i wdrożeń systemów z rodziny Linux, w tym:

  • przygotowywanie nośników instalacyjnych,
  • przygotowywanie dysku twardego komputera do przeprowadzenia instalacji,
  • instalacja zgodnie z predefiniowanymi potrzebami użytkownika lub organizacji,
  • konfiguracja systemu do działania na serwerze oraz stacji roboczej,
  • obsługa systemu Linux z poziomu linii komend (lub Terminala),
  • praca z alternatywnymi sterownikami sprzętu (drukarki, plotery, skanery, czytniki),
  • konfiguracja systemu do obsługi zdalnej,
  • instalacja systemów zgodnie z przygotowanymi obrazami instalacji (oprogramowanie dedykowane),
  • instalacja oprogramowania z użyciem repozytoriów.

Konfiguracja oprogramowania

Linux jest bardzo specyficznym środowiskiem i wiele programów czy skryptów nie jest gotowa do pracy „od ręki”. Dzięki codziennej pracy z systemem Linux konfiguracja i zaawansowane opcje instalacji oprogramowania nie sprawiają mi problemów. Dzięki umiejętności konfigurowania oprogramowania jestem w stanie dostosować pracę systemu do przeznaczonego zadania uwalniając tym samym dodatkowe zasoby i przyspieszając wykonywanie zadań.

Konfiguracja sieci

System Linux pozwala na bardzo dowolne skonfigurowanie ustawień sieciowych serwera. Ze względu na brak interfejsu graficznego konfiguracja wymaga znajomości poleceń oraz edytorów tekstu (nano, vi). Dzięki wielokrotnemu łączeniu kilkudziesięciu maszyn w jednej sieci poznałem wszystkie możliwe problemy, które pojawiają się w trakcie konfiguracji sieci w systemach Linux.

Edycja pliku konfiguracyjnego za pomocą edytora nano w systemie Ubuntu Server.

Oprogramowanie serwerowe

W codziennej pracy jako informatyk w branży drogowej wykorzystuję system Linux jako główny system napędzający serwery z oprogramowanie do obsługi Systemów Zarządzania Ruchem. Linux pozwala na to, aby maszyna była jednocześnie serwerem web (interfejs webowy), serwerem plików (wymiana plików między urządzeniami), bazą danych (przetwarzanie informacji pozyskanych przez czujniki drogowe) oraz maszyną do przetwarzania wideo (system ściany wizyjnej prezentującej podgląd z kamer na drodze).

Oprogramowanie przygotowane jest w taki sposób, aby zminimalizować wykorzystanie zasobów w tzw. trybie spoczynku (brak zalogowanych użytkowników), natomiast po zalogowaniu się oprogramowanie zaczyna alokować wymagane zasoby pozwalając na szybka pracę nie zużywając nadmiernie podzespołów. Całość współpracuje ze sobą nieustannie pozwalając na sprawne zarządzanie wszystkimi urządzeniami zamontowanymi na drodze w ramach Systemu Zarządzania Ruchem (znaki LED, znaki pryzmatyczne, kamery CCTV, kamery wykrywające zdarzenia, stacje meteorologiczne, stacje pomiaru ruchu i wiele innych).

Własne skrypty (#! bash)

Kilka lat pracy z systemem Linux przyczyniło się do chęci automatyzacji pewnych procesów podczas instalacji czy konfiguracji oprogramowania. Z pomocą przyszły skrypty pisane w języku Bash. Z pomocą skryptów zautomatyzowałem konfigurację sieciową serwerów Ubuntu, instalację i konfigurację pakietów LAMP, instalację i konfigurację Dockera. Do tego stworzyłem kilka skryptów pozwalających na dostosowanie wizualnej strony linii komend do potrzeb użytkownika (niekoniecznie potrzebne, lecz pozwalające na tchnięcie odrobiny życia w ekran).

Wyświetlenie danych komputera z użyciem funkcji przeplatania kolorów (z wykorzystaniem dodatkowych bibliotek napisanych w Pythonie)

Obsługa zdalna

Zdecydowana większość prowadzonych przeze mnie projektów realizowana jest z wykorzystaniem serwerów lokalnych lub serwerów umiejscowionych w Centrum Sterowania Ruchem. Zdalny dostęp do serwera w celu zarządzania jest niezbędnym narzędziem przyspieszającym reakcję w wypadku każdego zgłoszenia ze strony Zamawiającego. Poprawna konfiguracja zapory sieciowej, VPN i dostępu zdalnego jest niezbędna w celu zapewnienia bezpiecznego połączenia bez ryzyka zewnętrznych ataków. W swojej pracy korzystam z narzędzi wbudowanych w system Linux, jak i oprogramowania zewnętrznego – FortiNet oraz OpenVPN.

Docker / Kubernetes

Niejednokrotnie zdarza się, że w ramach pracy jednego serwera konieczne jest uruchomienie kilku aplikacji działających przy różnych wersjach bibliotek (np. różnych wersjach PHP). W tym przypadku korzystam z Dockera, który pozwala na uruchomienie aplikacji i wymaganych bibliotek w izolowanym kontenerze. Dzięki wykorzystaniu kontenerów zamiast pełnej maszyny wirtualnej mogę w pełni wykorzystać potencjał serwera pracującego w oparciu o system Linux. W przypadku większej ilości kontenerów uruchamianych na jednym serwerze pracuję w Kubernetes, co znacznie ułatwia zarządzanie kontenerami i pozwala na generowanie czytelnych statystyk dla użytkownika.

Serwery WWW

W czasie pracy z Systemami Zarządzania Ruchem wielokrotnie tworzyłem serwery działające jako serwer sieci WEB pozwalający na wyświetlenie użytkownikowi panelu zarządzania systemem za pomocą przeglądarki internetowej. Pozwala to na pracę aplikacji na dowolnym urządzeniu i na każdej platformie. Wymogiem jest tutaj jedynie minimalna rozdzielczość ekranu urządzenia, natomiast sama obsługa możliwa jest wtedy za pomocą smartfonu, tabletu czy komputera. Do pracy z aplikacjami WEB korzystam z systemów opartych o dystrybucję Ubuntu oraz pakietu LAMP (Linux, Apache, MySQL, PHP).

Serwery plików

Podczas pracy w branży drogowej niejednokrotnie konfigurowałem serwery wymiany plików – część na potrzeby stałej pracy firmy, natomiast część jedynie na potrzeby poszczególnych projektów. Do wykorzystania przestrzeni dyskowej serwera (lub stacji roboczej) jako Dysku Sieciowego korzystam z oprogramowania Samba. Pozwala to na dowolne współdzielenie plików pomiędzy użytkownikami niezależnie od platformy oraz systemu operacyjnego jakim dysponują – Linux, Windows i Android mogą współdzielić pliki w ramach jednego Dysku Sieciowego.

Raspberry Pi (IoT)

Wiele projektów posiadających serwer sterujący znakami pryzmatycznymi i znakami LED korzysta z prostych serwerów zbudowanych w oparciu o rozwiązania IoT – Raspberry Pi, Banana Pi czy Arduino. W czasie pracy przy projektach drogowych miałem okazję zainstalować i skonfigurować urządzenia RevolutionPi – są to bardzo wydajne mikrokomputery oparte o architekturę Raspberry Pi i dostosowane do pracy w trudnych warunkach (certyfikacja zgodna z wymogami dla urządzeń przemysłowych). Urządzenia takie pozwalają na znaczne ograniczenie na zapotrzebowanie w energię na drodze, a także na łatwą wymianę w razie awarii (wystarczy przełożenie karty pamięci do drugiego urządzenia, a to jest gotowe do pracy od razu po podpięciu do zasilania).

Przykład zastosowania urządzenia RevolutionPi Core3 w szafie sterowniczej zarządzającej znakami LED (przewód Ethernet odłączony na czas robienia zdjęcia, by nie zasłaniał urządzenia).

Strona WWW poświęcona Linuxowi

Oprócz częstej pracy z systemem Linux prowadzę także stronę WWW, która jest w całości poświęcona Linuxowi. W ramach jej działania publikuję tam wpisy w formie poradników. Poradniki te zahaczają nie tylko o tematy związane stricte z systemem Linux, ale także łączące system Linux z zagadnieniami programistycznymi, hardware’owymi czy serwerowymi. W poradnikach staram się przedstawić krok po kroku mój sposób myślenia, optymalną ścieżkę na osiągnięcie zamierzonego celu oraz informacje pozwalające na uniknięcie często popełnianych błędów. Zachęcam do zapoznania się z treścią strony – pozwala to na zrozumienie nie tylko mojego sposobu gromadzenia i przekazywania informacji, ale także wrodzonej chęci pomocy.

Adres WWW strony: strefalinux.pl

Widok strony głównej na StrefaLinux.pl