Instalacja Ubuntu Server 20.04

Wprowadzenie teoretyczne do lekcji

1. Przygotowanie maszyny wirtualnej.
Przed przystąpieniem do instalacji Ubuntu Server w wersji 20.04 należy odpowiednio przygotować do tego wirtualną maszynę. Podczas jej tworzenia należy pamiętać o aktywacji OBU kart sieciowych. Jeżeli tego nie zrobimy to mogą wystąpić problemy z dodaniem drugiej karty sieciowej do systemu. Dlatego należy pamiętać o obu. Zacznijmy więc od początku.

Przygotowania wstępne - wybieramy z menu VB File -> Preferences -> Network i należy utworzyć sieć NAT o wybranej adresacji np. 10.15.0.0/24 - najlepiej nazwać ją wprowadzoną adresacją.

Tak powinno to wyglądać.

Ustawienia maszyny wirtualnej:
- Nazwa: Dowolna np. Ubuntu_Serwer_20.04
- Typ: Linux
- Wersja: Ubuntu (64-bit)
- Rozmiar pamięci: 1024MB (minimum)
- Dysk twardy: Wirtualny dysk
- Typ pliku na dysku twardym: VDI
- Przechowywanie na dysku twardym: Dynamicznie alokowany
- Rozmiar dysku: 15GB (minimum)
- Pamięć VRAM: 128MB
- Akceleracja 3D: Włączona
- Karta sieciowa 1: Włączona
- Tryb działania karty 1: Sieć NAT (ustawić wcześniej stworzoną sieć)
- Karta sieciowa 2: Włączona
- Tryb działania karty 2: Sieć wewnętrzna

Jeżeli nie wiesz jak skonfigurować maszynę z tymi parametrami to przeczytaj najpierw dokument L0.0_Oprogramowanie_VirtualBox oraz L.0.1_NAT_Network. Mogę powiedzieć, że ustawienia VRAM i Akceleracji znajdziesz w zakładce Ekran w ustawieniach maszyny.

Przykładowo ustawienia pierwszej karty sieciowej w naszej maszynie powinny wyglądąć tak jak wyżej.

2. O systemie Ubuntu Server 20.04.
Zanim zainstalujemy w ogóle ten system to może warto trochę sobie o nim opowiedzieć. Szczególnie, że ta konkretna wersja różni się pod paroma względami od wersji 18.04.
Ubuntu w wersji serwer, tak jak każdy linux, jest systemem działającym w trybie tekstowym – tak, tekstowym. Oznacza to, że każde polecenie, każdą zmianę, każdą czynność wykonujemy wpisując odpowiednie komendy do konsoli systemu. Jest to duża różnica w przeciwieństwie do Windowsa Server, w którym jakaś powłoka graficzna zawsze jest (nawet w przypadku Core). W Linux Server nie mamy nawet kursora. Tak naprawdę myszkę można odłożyć na bok – do niczego się nie przyda (w normalnych warunkach).
Konfiguracja wszelakich usług w systemie opiera się na wykorzystaniu plików konfiguracyjnych, które będziemy musieli edytować. Aby zmiany zostały zaakceptowane i wprowadzone w życie trzeba będzie je ręcznie zatwierdzić. Można to zrobić na różne sposoby. Niektóre usługi mają do tego odpowiednie komendy (np. netplan apply), inne zaś usługi trzeba będzie po prostu zrestartować, czasem nawet trzeba będzie zresetować cały system.
Linux posiada swojego super-użytkownika, inaczej takiego użytkownika nad użytkownikami. Odpowiednik windowsowego Administratora. Jest nim konto "root", które domyślnie jest nieaktywne i zaleca się aby tak pozostało. My jednak na potrzeby nauki sobie to konto aktywujemy do zadań awaryjnych. Mimo to, w środowisku produkcyjnym ROOT MA BYĆ WYŁĄCZONY. To jest konto o wielkiej mocy i sile. W przypadku włamania na serwer, mogłoby się to źle skończyć. Linux nie wybacza. Zrobisz błąd w pliku, tutaj nie dasz kropki, tu przecinka, a tutaj coś źle wpiszesz - Linuxa to nie interesuje. Dopóki składnia się zgadza to zaakceptuje wszystko, a nawet wprowadzi to do innych plików. Dlatego przed zapisaniem i zatwierdzeniem czytamy dokładnie to co napisaliśmy. Bo potem… nie będzie odwrotu (no chyba, że robimy kopie zapasowe).

I. Właściwa instalacja Ubuntu Server 20.04.

Kiedy mamy już maszynę gotową, to możemy przystąpić do instalacji systemu. Do tego potrzebny będzie nam obraz ISO z instalatorem, który można pobrać ze strony Ubuntu. Obraz ISO musi być w wersji 64-bitowej. Jest ona oznaczana jako x64, 64-bit lub amd64.
Link do najnowszej wersji Ubuntu: https://ubuntu.com/download/server
Link do tej konkretnej wersji: https://releases.ubuntu.com/20.04.2/ubuntu-20.04.2-live-server-amd64.iso

Można po prostu uruchomić naszą maszynę i czekać aż dostaniemy zapytanie o dysk startowy, ale lepiej w sekcji "Storage" kliknąć "Optical Drive" i wskazać obraz (ISO) naszej instalki.

Uruchamianie maszyny

Gdy już mamy nasz obraz ustawiony w napędzie klikamy Uruchom.

Wybór języka

Wybieramy tutaj dowolny język. Ja wybrałem Polski i taki też zatwierdziłem klawiszem Enter.

Wybór układu klawiatury

Następnie instalator poprosi nas o wybór układu klawiatury. Najlepiej ją wybrać zgodnie z wybranym językiem. Należy strzałkami przejść do pozycji Układ, następnie kliknąć Enter. Wybrać odpowiedni układ, a następnie go zatwierdzić również klawiszem Enter. Kiedy upewniliśmy się, że wszystko dobrze jest wybrane to przechodzimy na pozycję Wykonane strzałkami i naciskamy Enter. Instalator przejdzie do następnego kroku.

Następnie instalator przejdzie do bardzo ważnej kwestii związanej z Ubuntu Server – konfiguracją sieciową. Jest to najważniejszy, najistotniejszy punkt naszej instalacji. Dlatego proszę dokładnie uważać.
Uwaga! Możesz pominąć ten etap instalacji, a następnie w ramach ćwiczeń, ręcznie skonfigurować karty sieciowe. Jednak jeżeli wolisz sobie wszystko wstępnie skonfigurować korzystając z "GUI", to możesz czytać dalej.
Jak można poniżej zauważyć, mamy dwie karty sieciowe – czyli VBox został poprawnie skonfigurowany. Te karty to enp0s3 oraz enp0s8. Jest to obecnie najnowszy standard nazewnictwa kart sieciowych, który wyparł stare nazewnictwo, czyli eth0, eth1 itd. Powodem tej zmiany jest chęć wyeliminowania błędów pokroju zmieniających się nazw kart. W przypadku VirtualBoxa, pierwsza karta nosi nazwę enp0s3, druga enp0s8, a następne idą już w normalnej kolejności, czyli trzecia miałaby enp0s9 itd.
Istnieje wiele systemów nazewnictwa kart. Warto się przyjrzeć kilku z nich:
Pierwszy polega na wykorzystywaniu numeru indeksu, który dostarcza BIOS, jeżeli chodzi o urządzenie, które znajduje się na płycie głównej. Wtedy nazwa brzmi enoX np. eno1, eno2 itd.
Drugi poleca na wykorzystywaniu indeksu slotu gniazda PCI Express. Nazwa brzmi wtedy ensX np. ens1, ens2 itd.
Trzeci – stosowany najszerzej – polega na wykorzystywaniu fizycznej lokalizacji złącza na płycie głównej. Wtedy wykorzystywane jest enpXsY np. enp0s3. Gdzie X to numer szyny, a Y to numer slotu.

Oznaczenia kart

Obrazowa lokalizacja złącz na płycie głównej.

Czwarty – system wykorzystuje adres MAC kart. I nazwa brzmi wtedy enx np. enx78e7d1ea46da.
Piąty – to właśnie wspomniany system klasyczny, czyli eth1, eth2, wlan0, wlan1.

Konfiguracja kart sieciowych

Dalej w instalatorze widać również typ karty – bez względu na to czy jest to Ethernet czy WLAN (Type), oraz status DHCP. Ja pozostawiłem włączony DHCP w sieci NAT, więc dla interfejsu enp0s3, został mi przydzielony adres IP, zaś do drugiej karty nie. Zmienimy sobie adresację obu kart. Najpierw skonfigurujemy kartę pierwszą, tę z dostępem do Internetu.

Konfiguracja kart sieciowych

W tym celu zaznaczamy ją za pomocą strzałek i klikamy Enter. Pojawi się okienko w którym możemy wybrać różne opcje:
- Info – wyświetla informacje na temat naszego interfejsu.
- Edit IPv4 – pozwala nam ustawić adresację IP w wersji 4.
- Edit IPv6 – pozwala nam ustawić adresację IP w wersji 6.
- Add a VLAN tag – pozwala nam ustawić tagowanie ramek na naszej karcie.
- Opcją (close) możemy zamknąć okno.
My sobie wybierzemy opcję do ustawienia adresacji IPv4, czyli Edit IPv4.

Konfiguracja kart sieciowych

Pojawi nam się okienko zatytułowane Edit enp0s3 IPv4 configuration, czyli "Edytuj konfigurację IPv4 dla interfejsu enp0s3". Domyślnie w opcji IPv4 Method wybrany jest mechanizm DHCP [Automatic (DHCP)]. Zmienimy tę opcję, naciskając Enter i z rozwijanego menu wybieramy opcję konfiguracji statycznej, czyli Ręczne.

Konfiguracja kart sieciowych

Od razu nasze okienko się powiększy i odsłoni więcej opcji, które będziemy musieli wypełnić. Robimy to poprzez przesunięcie zaznaczenia używając strzałek, a następnie wpisania danej wartości z klawiatury.
Maska – jak nietrudno się domyśleć, tutaj musimy wpisać maskę naszej sieci, ale już trudniej wpaść na to, że ta maska ma być podana w formie CIDR – czyli z adresem sieci w formie skróconej. U nas będzie to 10.15.0.0/24, bo taką sieć NAT utworzyliśmy.
Adres IP – podajemy już konkretnie adres IP naszej maszyny. Należy pamiętać, że pierwsze dwa adresy z podanej przez nas puli w sieci NAT, są rezerwowane na potrzeby VirtualBoxa.
Brama sieciowa – tutaj wpisujemy Gateway do Internetu. Jeżeli korzystamy z funkcji sieci NAT, to adresem bramy będzie pierwszy wolny adres z podanej przez nas puli. W tym przypadku to 10.15.0.1.
Adresy DNS – musimy podać adresy DNS pod którymi kryją się serwery usługi Domain Name System. Oddzielić je należy przecinkiem i tak. Możemy tutaj podać dowolną ilość DNSów. Ja jednak zalecam pozostawić tylko dwa. Podane na przykładzie 8.8.8.8 należy do Google, zaś 1.1.1.1 do Cloudflare.
Znajdź domeny – tutaj ewentualnie możemy wpisać domeny jeżeli takowe znajdują się w naszej sieci. Tak jednak nie jest więc pozostawiamy te pola puste.
Kiedy już wszystko wypełniliśmy, to przechodzimy na pozycję Zapisz i naciskamy Enter.

Konfiguracja kart sieciowych

Po zatwierdzeniu należy zwrócić uwagę przy naszym interfejsie, na pozycję opisaną jako NOTES. Jeżeli pojawi tam się znak minus, czyli "–" to oznacza, że maszyna połączyła się z Internetem.
Teraz została nam już tylko konfiguracja drugiej karty sieciowej.

Konfiguracja kart sieciowych

Ją również skonfigurujemy statycznie wykorzystując wybrane przez nas adresy IP. Ja zdecydowałem, że moja wewnętrzna sieć będzie adresowana w taki sposób: 192.168.10.0/24, zaś adresem IP mojego serwera będzie 192.168.10.10. Bramy, jak i serwerów DNS wpisywać nie musimy (ale możemy). Przechodzimy na pozycję Zapisz i naciskamy Enter.

Konfiguracja kart sieciowych

Ostatecznie menu konfiguracyjne połączeń sieciowych powinno tak wyglądać, że przy każdym interfejsie jest znak minus, a także każdy jest skonfigurowany jako static. W przypadku błędów należy dokładne sprawdzić naszą konfigurację kart sieciowych – a nawet sprawdzić ustawienia VirtualBoxa. Jeżeli jednak jesteśmy pewni, to możemy zatwierdzić naszą konfigurację, wybierając Wykonano i naciskając Enter.

Wybór serwera proxy

Dalej instalator poprosi nas o podanie serwera proxy. Proxy jest to serwer, przez który przechodzi cały ruch stron internetowych (protokół http). Często serwery tego typu wykorzystywane są do filtrowania stron internetowych np. w szkołach. Wykorzystuje się je również w bardziej specjalistycznych celach. Na przykład aby obciąć stronę internetową z certyfikatu ssl i https. Przydaje się to podczas korzystania ze starszych przeglądarek. Jeżeli u Was stosuje się serwer Proxy to należy go tutaj wpisać. W większości przypadków proxy nie ma, więc pozostawiamy to pole puste zaznaczamy Wykonano i naciskamy Enter.

Wybór serwera lustrzanego

Następnie Ubuntu spyta się czy chcemy ustawić alternatywny mirror z repozytoriami i aktualizacjami do systemu. Obecnie nie jest to konieczne, gdyż wersja 20.04 jest wspierana. Jednak za parę lat będzie można tutaj wpisać archiwalne mirrory, aby wszystko działało poprawnie. Tak więc pozostawiamy domyślną opcję zaznaczamy Wykonano i naciskamy Enter.

Partycjonowanie dysku

Dalej instalator chce abyśmy dokonali wyboru w sprawie partycjonowania dysków. Mamy kilka opcji:
User an entire disk spowoduje, że Ubuntu Server zostanie zainstalowany na całym dysku.
Custom storage layout spowoduje, że sami będziemy mogli zdecydować o partycjonowaniu dysku.
Grupa LVM, którą możemy utworzyć w ramach użycia całego dysku oraz ją zaszyfrować. LVM to skrót od Logical Volume Manager i mówiąc w skrócie, jest to mechanizm podobny w swoich skutkach do macierzy dyskowych RAID. Upraszczając mocno, pozwala na łączenie partycji z różnych dysków fizycznych w jeden dysk wirtualny. Jest to mechanizm działający na poziomie systemu operacyjnego i nie wymaga szczególnych kontrolerów na płycie głównej.
Domyślna proponowana przez instalator opcja jest wystarczająca. Wybieramy więc Wykonano. Jednak jeżeli chcemy to możemy ręcznie dokonać partycjonowania dysku.

Podsumowanie systemu plików

Dalej instalator wyświetli nam Podsumowanie systemu plików, który zawiera wszystkie zmiany, jakie wprowadzi on do naszego dysku. Zgodnie ze screenem poniżej zostaną utworzone dwie partycje "/boot", będzie zwykłą partycją, na której znajdować się będzie bootloader systemu. Druga partycja, czyli "/", będzie należała do grupy LVM o nazwie "ubuntu-vg". Taki podział jest wystarczający. Zaznaczamy więc Wykonano i naciskamy Enter.
Opcja Przywróć pozwala przywrócić nam poprzedni układ na dysku.

Podsumowanie partycjonowania dysku

Instalator jeszcze będzie wymagał od nas potwierdzenia partycjonowania dysku. Zaznaczamy Kontynuuj i "przestraszając" się czerwonego koloru, akceptujemy zmiany przyciskiem Enter.

Użytkownik i nazwa serwera

Dalej to już tylko formalność. Ubuntu prosi nas o podanie imienia, nazwy serwera, nazwy użytkownika oraz hasła. Warto zatrzymać się na nazwie serwera. Wprawdzie możemy wpisać tam cokolwiek to jednak warto zacząć ćwiczyć w sobie profesjonalne nazewnictwo – nawet jak "SysAdminowanie" nie będzie naszym konikiem. Ja nazwałem swoją maszynę ubuntusrv00. Etymologia tej nazwy jest następująca:
- System: Ubuntu
- Typ: Serwer
- Numer: 00
I nawet jeżeli w sieci nie będzie serwera Windowsowego, ani kolejnego serwera Ubuntu to nadal warto takie nazwy nadawać. Kiedy już wszystko uzupełniliśmy wybieramy Wykonano i naciskamy Enter.

Instalacja OpenSSH

Przedostatnią już rzeczą, będzie instalacja serwera SSH, a dokładniej jego otwartej implementacji, czyli OpenSSH. SSH to skrót od Secure Shell i mówiąc krótko jest to usługa, dzięki której możemy uzyskać zdalny dostęp do powłoki systemu w szyfrowany sposób. W przypadku Ubuntu Server będzie to dostęp do Basha. A w przypadku Windowsa może być to Powershell.
Na tym przykładzie omówię również, jak zaznaczać dane elementy. Wprawdzie jeżeli najedziemy na opcję Install OpenSSH server i damy Enter to ona nam się zaznaczy, jednak bardzo często w rysowanych instalatorach (nie mylić z graficznymi), naciśnięcie Entera potwierdza nam wybór. Dlatego też zaznaczamy wyżej wymienioną opcję i dajemy SPACJĘ. Tak, spacja jest to zwykle zaznaczenie. Kiedy już zaznaczyliśmy tę opcję to dajemy Wykonano i naciskamy Enter.

Wybór dodatkowych programów

Teraz instalator daje nam możliwość instalacji dodatkowych programów. Jak na razie żaden nas nie interesuje. Przechodzimy więc na pozycję Wykonano i dajemy Enter.

Pobieranie aktualizacji

W tym momencie rozpocznie się instalacja systemu. Wprawdzie Ubuntu się już instalował w tle od momentu rozpoczęcia partycjonowania, jednak teraz już zacznie kopiować potrzebne pliku i konfigurować potrzebne programy. Instalacja sama w sobie jest krótka, jednak po jej zakończeniu instalator zacznie pobierać aktualizacje z Internetu. Możemy anulować ich instalację, jednak ja zalecam aby się pobrały.

Kończenie instalacji

Kiedy instalacja się zakończy pojawi nam się opcja uruchomienia systemu ponownie. Wybieramy ją i dajemy Enter.

Kończenie instalacji

Podczas restartu mogą pojawić się różne błędy związane z odmontowywaniem płyty. Pojawi się również komunikat proszący o usunięcie media instalacyjnego. Zwykle VirtualBox sam wykryje polecenie wysunięcia tacy i "ją wysunie", czyli po prostu usunie plik ISO z naszego wirtualnego napędu. Na koniec naciskamy Enter i maszyna się zrestartuje.

II. Krótko po włączeniu.

Po raz pierwszy po włączeniu systemu możemy zostać zasypani komunikatami w których powtarza się zielone OK, słowa "Cloud-init" oraz "SSH". A także dużo znaków hash czyli #. Na początku tak będzie. Najważniejsze jest to, aby było więcej OK niż Error.
Czasem może się tak zdarzyć, że po uruchomieniu systemu długo nie będzie pojawiać się pole na wpisanie loginu. Dzieje się tak dlatego, że uruchamiają się jakieś usługi (szczególnie netplan) i zapycha nam nasz ekran.

Ekran logowania

Jeżeli długo wiszą takie napisy jak na screenie niżej to naciskamy Enter. Powinno pojawić się pole logowania (tak jak na screenie). Wpisujemy naszą wcześniej podaną nazwę użytkownika (nie imię). Zatwierdzamy Enterem, potem hasło, jednak warto mieć na uwadze, że jest ono podczas wpisywania niewidoczne – nie ma gwiazdek, niczego.

Pierwsze logowanie

Po poprawnym zalogowaniu wita nas domyślny komunikat od Ubuntu. Podaje nam wersję systemu, przydatne linki, obecne zużycie zasobów, adresy IP oraz inne informacje. Na samym końcu mamy nasz znak zachęty czyli $ lub # w przypadku konta roota. Od tego momentu możemy wpisywać nasze komendy.

Polecenie ping

Uwaga! Ten test przeprowadzamy, jeżeli wcześniej skonfigurowaliśmy karty sieciowe. Inaczej nie zadziała chyba, że mieliśmy aktywowane DHCP w sieci NAT i serwer pobrał adresy. Teraz możemy sprawdzić połączenie z Internetem. Wpisujemy więc:
$ ping 8.8.8.8
Oczywiście bez znaku dolara. W taki sposób będę pisał komendy. Czyli znak zachęty i komenda. Pisane w innej czcionce.
To polecenie rozpocznie nam pingowanie serwerów DNS Google. Jeżeli wszystko działa to pingi powinny lecieć. W przeciwieństwie do Windowsa tutaj pingi będą lecieć w nieskończoność. Aby je zatrzymać wciskamy kombinację Ctrl+C, która zatrzymuje wykonywanie większości programów. Dostaniemy też odpowiednie podsumowanie.

Wyłączenie serwera

Ostatnią najważniejszą czynnością będzie wyłączenie serwera. Można to zrobić za pomocą komendy shutdown. Jednak samo jej wpisanie wprawdzie wyłączy serwer ale za jakiś czas. Dlatego też wpisujemy shutdown z parametrem now, czyli:
$ shutdown now
Spowoduje natychmiastowe rozpoczęcie procedury wyłączenia serwera.