Dystrybucje Linux dla firm
Dla większości osób Linux jest utożsamiany z bezpłatnym systemem operacyjnym zainstalowanym na serwerach, którego obsługa jest skomplikowana. Nie jest to całkowicie poprawne myślenie, bo różne dystrybucje mogą z powodzeniem być stosowane w codziennym użytku, np. w pracy biurowej. Dodatkowo w przypadku typowych zastosowań serwerowych (takich jak serwer WWW czy baz danych), użycie wybranej dystrybucji z reguły nie komplikuje w żaden sposób konfiguracji – można wręcz powiedzieć, iż konfiguracja analogicznych serwisów w systemie Windows Server wymaga poświęcenia większej ilości czasu.
Z reguły dla wspomnianych typowych zastosowań wybór konkretnej dystrybucji nie ma aż tak wielkiego znaczenia. Istotne jest wtedy posiadane doświadczenie w pracy z danym systemem. W systemach Linux wszystkie podstawowe polecenia są takie same niezależnie od dystrybucji. Różnice dotyczą przykładowo obsługi instalatora, menedżerów pakietów i w pewnym stopniu także konfiguracji docelowych usług. Nie są to szczególnie skomplikowane różnice, aczkolwiek nie można w każdym wypadku stwierdzić, iż osoba, która dotychczas administrowała głównie systemami z rodziny Debian, wykaże analogiczny stopień umiejętności w pracy na systemach RHEL.
W kwestii wyboru systemu pod konkretne zastosowanie często decydujące zdanie ma zespół administratorów. I przykładowo firma hostingowa może zdecydować, iż wszystkie ich maszyny wirtualne będą posiadały zainstalowany system Debian. Tutaj jest to o tyle istotne, iż proces instalacji i konfiguracji systemu w takiej firmie został zwykle w dużym stopniu zautomatyzowany – chociażby pod kątem działania z panelem dla klientów, w którym mogą dodawać swoje witryny, ustawiać wersje systemu itd. – z tego powodu wszystkie maszyny raczej posiadają tę samą dystrybucję.
Dla docelowych odbiorców usług hostingowych nie ma to zwykle żadnego znaczenia. Wszelkie systemy CMS napisane w PHP mogą zostać uruchomione na dowolnym systemie operacyjnym i być obsługiwane przez dowolny serwer WWW zintegrowany z interpreterem PHP (chociaż wyjątkiem jest często rozwiązanie IIS dostępne w Windows Server). jeżeli hosting zapewnia dodatkowo wsparcie dla języków typu Python czy Node.js, to kwestia systemu operacyjnego również jest całkowicie drugorzędna dla programisty – zresztą oba środowiska można skompilować we własnym zakresie.
Wiadomo oczywiście, iż hosting nie zawsze będzie odpowiednim wyborem. Gdy tylko pojawia się konieczność zwiększenia wydajności – choćby dlatego, iż hostowana witryna generuje duży ruch – czy konfiguracji high availability wraz z dedykowanymi serwerami dla aplikacji, storage i bazy danych, to hosting zdecydowanie nie wystarczy. Dla takich projektów przewidziano serwery VPS czy wręcz dedykowane. Wtedy wybór systemu operacyjnego należy do klienta, który może wcześniej skonsultować swoje potrzeby ze specjalistami IT.
Linux i wsparcie techniczne
Termin „Linux” w rzeczywistości odnosi się do jądra systemu, czyli podstawowego i najważniejszego elementu każdego systemu operacyjnego odpowiadającego za zarządzanie zasobami sprzętowymi. W praktyce jednak przyjęło się, iż jest to określenie całości rodziny systemów, które pracują w oparciu o jądro (kernel) opracowane oryginalnie przez Linusa Torvaldsa w roku 1991. „Logo” Linuxa stanowi postać pingwina nazwanego Tux, która pewnie jest rozpoznawana choćby przez osoby niemające jakiekolwiek doświadczenia z pracą na tym systemie.

Osobom zainteresowanym historią informatyki lub po prostu zajmującym się administracją mogę polecić świetną książkę „Jak Unix tworzył historię” autorstwa Briana W. Kernighana. Zawiera około 200 stron, wliczając wiele zdjęć z tamtych lat, więc niestety jest to dość krótka lektura. Opisuje jednak sporo naprawdę ciekawych wydarzeń, o których raczej nie można przeczytać w zasobach internetowych. Do zrozumienia nie wymaga zaawansowanej wiedzy informatycznej.
Linux jest dostarczany w ramach licencji GNU GPL, co oznacza, iż jego kod źródłowy jest publicznie dostępny (zachęcam do zapoznania się z moim artykułem, w którym pokazałem sposób utworzenia systemu operacyjnego używającego właśnie kernela Linux). Kod można modyfikować i dodawać różne funkcjonalności (których jednak w samym jądrze nie brakuje), po czym udostępniać publicznie skompilowane binaria, np. dla różnych architektur procesora. Żeby nie naruszyć licencji GPL, to koniecznie należy udostępnić także kod źródłowy zawierający wprowadzone modyfikacje.
Co bardzo ważne, licencja GPL w żaden sposób nie determinuje, czy napisane oprogramowanie musi być bezpłatne. Faktycznie zdecydowana większość projektów pisanych „w duchu” GNU jest w pełni bezpłatna – co ma oczywiste zalety, ale także wady. Przede wszystkim nie można w takich sytuacjach polegać na profesjonalnym wsparciu technicznym – chyba iż w formie usługi dostarczanej przez zewnętrzny podmiot. Nie ma również żadnej pewnej gwarancji, iż oprogramowanie będzie otrzymywać aktualizacje, chociażby te związane z bezpieczeństwem.
Dla użytkowników domowych nie są to raczej szczególne ograniczenia. W każdej chwili mogą pobrać plik ISO z wybraną dystrybucją Linuxa i ją zainstalować, po czym bezproblemowo korzystać w ramach własnego środowiska. Popularne są zresztą rozwiązania, które można określić jako „DIY”, np. własna bezpłatna chmura dla plików w sieci domowej, systemy automatyki takie jak Domoticz czy bardziej skomplikowane usługi typu VPN zapewniające zdalny dostęp do sieci domowej.
Dla odmiany część firm może mieć własne polityki, które zezwalają na korzystanie wyłącznie z oprogramowania, dla którego dostarczane jest wsparcie techniczne. Podobne standardy obowiązują także m.in. w podmiotach publicznych. Oznacza to, iż w przypadku chęci użycia przykładowo systemu Ubuntu, należy wcześniej zakupić subskrypcję Ubuntu Pro, która zapewnia profesjonalne wsparcie firmy Canonical.
Istnieją również całkowicie komercyjne dystrybucje Linuxa, np. SUSE Linux Enterprise Server czy Red Hat Enterprise Linux. W tym artykule przedstawię ten drugi system, pokazując sposób instalacji i podstawowej konfiguracji.
Red Hat Enterprise Linux
Wspomniany system jest rozwiązaniem w pełni płatnym. Można jednak zapoznać się z jego możliwościami poprzez wersję trial na 60 dni. Wymagane jest konto Red Hat, które można łatwo założyć (wymagane wyłącznie potwierdzenie rejestracji poprzez odwiedzenie linku z wiadomości e-mail). Po udanym zalogowaniu możliwe będzie – przez okres 60 dni – pobranie ISO (około 11 GB) z najnowszą wersją systemu.

Z poziomu strony https://access.redhat.com/downloads można dodatkowo pobrać inne (starsze) wersje, jak również oprogramowanie z pozostałych kategorii (Red Hat to nie tylko system operacyjny).
Każdy system ma swoje wymagania minimalne. Dla Red Hat nie są one szczególne wygórowane – aktualnie dla architektury x86_64 to 1.5/3 GiB pamięci RAM i 10 GB miejsca na dysku. Instalacja jest bardzo łatwa. jeżeli ktoś ma wcześniejsze doświadczenia np. z AlmaLinux czy Rocky Linux, to na pewno rozpozna układ graficzny zastosowany w instalatorze.


Zaraz po uruchomieniu maszyny z dodanym plikiem ISO należy wybrać pierwszą opcję z listy, czyli Install Red Hat Enterprise Linux 9.5 (domyślnie zaznaczona druga opcja, która wykonuje dodatkowe sprawdzenie integralności ISO). Następnie wystarczy wybrać język systemu i układ klawiatury, po czym kliknąć przycisk Kontynuuj.
Proces instalacji nie jest trudny. Wystarczy wybrać odpowiednie opcje w widocznych sekcjach. Te najważniejsze ustawienia to generalnie:
- Hasło roota
- Miejsce docelowe instalacji
- Sieć i nazwa komputera
- Wybór oprogramowania
Użyte przeze mnie ustawienia przedstawia poniższy zrzut ekranu. Dla sieci jest to adres statyczny i określenie nazwy hosta.

Dalej zwyczajnie wystarczy kliknąć przycisk Rozpocznij instalację. Gdy tylko proces dobiegnie końca, pojawi się kolejny przycisk – Uruchom komputer ponownie.

Jak można było zauważyć, zainstalowana została wersja RHEL 9.5 o nazwie kodowej Plow. Numery wersji są wspólne dla wszystkich systemów opartych na RHEL. Istotny jest fakt, iż nie musimy korzystać z wersji trial systemu RHEL, aby zapoznać się z tym systemem i spróbować skonfigurować wymagane usługi. Wszelkie konfiguracje możemy śmiało sprawdzać przykładowo w systemach AlmaLinux czy Rocky Linux. Oba zapewniają „binary compatibility”, co oznacza, iż oprogramowanie przeznaczone na RHEL zadziała też w jego bezpłatnych odpowiednikach.
Z pragmatycznego punktu widzenia jest to ważne np. podczas konfiguracji środowiska deweloperskiego czy testowego. choćby jeżeli system produkcyjny jest uruchomiony na RHEL, to konfiguracja analogicznego środowiska na bezpłatnym systemie jak najbardziej będzie adekwatna.
Po instalacji można zalogować się np. poprzez konsolę do nowego systemu z użyciem konta root i ustawionego hasła. Warto od razu dodać innego użytkownika z uprawnieniami wheel, aby niekoniecznie korzystać z konta root do zadań administracyjnych.
Następnie można połączyć się z serwerem poprzez SSH. Na początek dobrym pomysłem będzie skonfigurowanie systemu do korzystania z repozytoriów dostarczanych przez Red Hat – domyślnie repozytoria nie są aktywne (plik /etc/yum.repos.d/redhat.repo zawiera tylko komentarze z instrukcją konfiguracji).
Tutaj są dwie możliwości, o których powinno się wspomnieć. Można korzystać z bezpośrednio RHSM, czyli repozytoriów dostarczanych przez Red Hat, co wymaga tylko zalogowania z użyciem konta Red Hat. Alternatywę stanowi rozwiązanie Satellite, w których paczki są pobierane poprzez działającą lokalnie instancję. Nie jest to żadna metoda na obejście licencjonowania, ponieważ Satellite i tak korzysta ze zdalnych zasobów.
Użyjemy pierwszego podejścia, więc wykonujemy tylko polecenie sudo subscription-manager register. Podajemy login i hasła do konta Red Hat.

Dodane zostaną wpisy w pliku /etc/yum.repos.d/redhat.repo. Do repozytorium cdn.redhat.com nie ma możliwości innego dostępu. Wymagane są pliki wskazane w parametrach sslcacert, sslclientkey i sslclientcert generowane po stronie serwerów Red Hat.
Po tej operacji zalecane będzie zaktualizowane systemu poleceniem sudo dnf upgrade. Najlepiej też zrestartować serwer.
System jest już przygotowany do użycia. Trzeba jeszcze wspomnieć o istnieniu Red Hat Knowledge Center, czyli dostępnej tylko dla zarejestrowanych użytkowników obszernej bazy wiedzy dotyczącej wszystkich produktów Red Hat. Dla osób korzystających z bezpłatnych alternatyw mało pocieszający może być fakt, iż rozwiązania wielu problemów z systemami opartymi na RHEL często są opisane właśnie w komercyjnej bazie – aczkolwiek można skorzystać z bezpłatnej subskrypcji Red Hat Developer Subscription For Individuals poprzez rejestrację na stronie https://developers.redhat.com/.
Migracja z RHEL
W sytuacji, gdy chcielibyśmy zrezygnować z subskrypcji lub subskrypcja została zakończona i nie zamierzamy jej przedłużać, a jednocześnie utrzymać bezpieczeństwo na zadowalającym poziomie (ponieważ bez aktywnej subskrypcji Red Hat Enterprise Linux nie może być aktualizowany), to rozwiązaniem jest migracja na inny, bezpłatny system operacyjny. Wybór systemu zależy od nas, natomiast rozsądnie byłoby wykonać migrację na inny system z rodziny RHEL, ponieważ dostępne są gotowe rozwiązania, które „konwertują” zainstalowany system np. na Rocky Linux czy AlmaLinux – oba podejścia krótko opisałem poniżej.
Z kolei zmiana systemu na Debian czy Ubuntu będzie wymagać przeniesienia zainstalowanych usług i konfiguracji, co w wielu przypadkach oznacza większy nakład pracy. Wcześniej należy jeszcze utworzyć nową maszynę wirtualną, ponieważ bezpośrednia migracja nie jest z oczywistych względów możliwa.
Jeśli zdecydujemy się na przeprowadzenie migracji, to wcześniej powinniśmy utworzyć np. snapshot maszyny wirtualnej. Sam proces będzie wiązał się z chwilową niedostępnością systemu, ponieważ po wykonaniu skryptu musimy zainicjować reboot i dopiero wtedy procedura zostanie zakończona. Należy też uwzględnić czas na przetestowanie działania oraz ewentualne naprawy.
Niestety skrypt do migracji do Rocky Linux wymaga dostępu do repozytoriów źródłowego systemu – trzeba o tym pamiętać i zaplanować migrację przed wygaśnięciem subskrypcji.
AlmaLinux
Migracja do tego systemu jest przeprowadzana z użyciem skryptu almalinux-deploy.sh. Wystarczy wykonać kolejno te polecenia:
Skrypt powinien zakończyć się komunikatem analogicznym do widocznego na zrzucie ekranu.

Po restarcie można jeszcze się upewnić, czy faktycznie system „przedstawia się” jako AlmaLinux.

Rocky Linux
W celu migracji do Rocky Linux przygotowano dwa skrypty dla konkretnych wersji systemu źródłowego: migrate2rocky.sh i migrate2rocky9.sh. W naszym przypadku trzeba użyć tego drugiego skryptu, ponieważ w tej chwili zainstalowany jest RHEL 9.5.
Podczas testu migracji pojawił się błąd związany z konfliktem paczki openssl-libs. Rozwiązaniem była modyfikacja skryptu zgodnie z tym wpisem na forum Rocky Linux. Wcześniej przywróciłem snapshot maszyny wirtualnej, ponieważ skrypt zdążył wprowadzić zmiany, które powodowały kolejne problemy. Mimo tego procedura zakończyła się sukcesem.

Po restarcie można sprawdzić wynik polecenia hostnamectl i zweryfikować, czy wszystkie usługi działają prawidłowo.

Podsumowanie
Jak widać, Linux nie zawsze jest synonimem bezpłatnych dystrybucji. jeżeli polityka firmy wymaga wsparcia technicznego, to dobrym rozwiązaniem może być Red Hat Enterprise Linux, którego subskrypcja daje nie tylko dostęp do systemu operacyjnego, ale również do innych komercyjnych usług wraz z rozbudowaną bazą wiedzy. Zapoznanie z tym systemem można przeprowadzić z użyciem wersji trial, ale również dzięki otwartym dystrybucjom, np. AlmaLinux.