===== Maszyny wirtualne do zajęć z administracji ===== ==== Motywacja ==== W czasie zajęć z administracji ([[lab_admin1]] i [[lab_admin2]]) będziemy psuć system (czasem specjalnie, czasem przypadkiem ;-) ) dlatego: * **NIE chcemy** korzystać z Linuxa zainstalowanego normalnie na dysku -- jak zepsujemy to przywrócenie będzie długotrwałe (a dodatkowo części rzeczy możemy nie być w stanie przywrócić) * **NIE chcemy** korzystać z serwera SPK -- nie mamy tam dostępu root (więc nie mamy możliwości psucia) * **CHCEMY** korzystać z __maszyn wirtualnych__ -- jest to "system wewnątrz systemu", który w razie potrzeby w kilka minut będzie można przywrócić do stanu początkowego jeżeli zepsujemy tak, że naprawić się nie będzie dało ;-) ==== Wymagania ==== Potrzebujemy maszynę wirtualną, która spełnia kilka wymagań: * Zainstalowany system Linux z GNU Coreutils, bash, jakimś edytorem tekstowym: nano/vim/mcedit/... (albo dostęp do repozytorium pakietów i możliwość szybkiego doinstalowania brakujących rzeczy) * System zarządzany przez systemd (por. [[wp>Systemd#Adoption|lista systemów z systemd na wikipedii]] * Dostęp do konta root (albo hasło root, albo możliwość zrobienia ''sudo su -'', co pozwala się zalogować na konto roota) * Możliwość przywrócenia systemu do stanu początkowego w max. kilka minut (gdy np. sformatujemy "przypadkiem" partycję systemową w trakcie działania systemu ;-) ) Wiele systemów spełnia te wymagania, w szczególności najbardziej popularnych jak Ubuntu, Debian, Manjaro, czy Arch Linux, więc jeżeli ktoś **już korzysta** z maszyny wirtualnej z takim systemem to oczywiście można z niej skorzystać do zajęć. UWAGA: w czasie zajęć możemy zepsuć maszynę (prawdopodobieństwo wynosi 99%) dlatego pracuj na kopii maszyny, jeżeli służy Ci jeszcze do czegoś innego. Jeżeli ktoś **nie posiada** maszyny wirtualnej i nie wie jak uzyskać do niej dostęp / stworzyć ją, należy skorzystać z poniższej instrukcji opisującej jak uzyskać dostęp do systemu Ubuntu Server w oprogramowaniu VirtualBox. ==== Ubuntu Server w VirtualBox ==== === 1. Przygotowanie === - Na początek należy uzyskać dostęp do oprogramowania VirtualBox i do obrazu systemu. Istnieją dwie drogi: * [[#1.1 VirtualBox w sieci SPK|VirtualBox w sieci SPK]] * [[#1.2 Własny VirtualBox|Własny VirtualBox]] == 1.1 VirtualBox w sieci SPK == - W sieci SPK jest pięć hostów z zainstalowanym VirtualBoxem dostępnych do realizacji zajęć z administracji (''cnode01''-''cnode05''). Aby dostać się na taką maszynę należy połączyć się z odpowiednim hostem (**wyznaczonym przez prowadzącego zajęcia**) używając konta ''linux00'': ssh -X linux00@cnode00 Hasło zostanie podane przez prowadzącego zajęcia. - Na każdej z maszyn, w folderze ''clean_system_image'' znajduje się czysty obraz **Ubuntu Server** (pobrany z [[https://www.osboxes.org/ubuntu-server/]]), czyli plik ''*.vdi'', który zawiera **dysk** z zainstalowanym systemem. Na początek należy zrobić **własną kopię** tego pliku -- **nie usuwaj** i **nie używaj** oryginalnego pliku: w razie zepsucia systemu, można będzie ponownie wykorzystać ten domyślny stan dysku, aby przywrócić system do stanu początkowego: # upewnij się, że znajdujesz się w folderze domowym cd ~ # utwórz folder dla swojej grupy (używając nazw identyfikujących Twoją grupę) mkdir kkutt_sbobek # utwórz własną kopię obrazu z maszyną cp clean_system_image/*.vdi kkutt_sbobek/ # zmień UUID dysku maszyny (VirtualBox pozwala na tylko jeden dysk o danym UUID, żeby móc korzystać z jego kopii, musimy mu zmienić UUID) VBoxManage internalcommands sethduuid kkutt_sbobek/*.vdi - Uruchom GUI VirtualBoxa: virtualbox * Uwaga: Poniższy błąd oznacza, że nie została użyta opcja ''-X'' przy łączeniu się przez SSH z hostem. Połącz się ponownie, tym razem poprawnie. Qt WARNING: QXcbConnection: Could not connect to display Qt CRITICAL: Could not connect to any X display. == 1.2 Własny VirtualBox == - Zainstaluj VirtualBox z [[https://www.virtualbox.org/wiki/Downloads]] - Ściągnij obraz **Ubuntu Server** z [[https://www.osboxes.org/ubuntu-server/]] (nie jest konieczna najnowsza wersja; można ściągnąć np. wersję 22.04 Jammy Jellyfish, która ma mniejszy rozmiar niż najnowsza) - Info: możesz też ściągnąć inną wersję Ubuntu, np. Ubuntu Desktop. Tutaj korzystamy z Ubuntu Server, ponieważ nie ma środowiska graficznego (które nam nie jest potrzebne), dzięki czemu zajmuje dużo mniej miejsca na dysku. - Rozpakuj pobrane archiwum z obrazem. W środku znajduje się plik ''*.vdi'', który zawiera **dysk** z zainstalowanym systemem. Zapamiętaj gdzie został rozpakowany ten plik (może być gdziekolwiek) - UWAGA: **nie** usuwaj pobranego archiwum - w razie zepsucia systemu, można będzie ponownie wykorzystać ten domyślny stan dysku, aby przywrócić system do stanu początkowego - Uruchom VirtualBox === 2. Stworzenie i uruchomienie maszyny === - W GUI VirtualBox stwórz nową maszynę klikając **Nowa**. Uzupełnij odpowiednio formatkę, która się pojawia: * Nazwa powinna jednoznacznie identyfikować Twoją grupę, np. "Kutt i Bobek" * Typ: Linux, Wersja: Ubuntu (64-bit) * Rozmiar pamięci: pozostaw domyślne 1024 MB (taka wartość powinna się ustawić po wybraniu Linux Ubuntu 64-bit) * Dysk twardy -> Użyj istniejącego -> wybierz plik ''*.vdi'' zawierający Twoją kopię dysku systemu Ubuntu Server (pobraną na własny komputer albo skopiowaną do własnego folderu na hoście w sieci SPK) * Kliknij **Utwórz** - Wybierz nowoutworzoną maszynę z listy i kliknij Uruchom - Po chwili maszyna uruchomi się. * Można się zalogować domyślnymi danymi: \\ Username: ''osboxes'' \\ Password: ''osboxes.org'' * Hasło do konta root jest nieznane, ale można je łatwo zmienić. Wystarczy po zalogowaniu na konto ''osboxes'' zrobić następujące dwie rzeczy: sudo su - passwd Po tym można będzie logować się na konto root bezpośrednio z ekranu logowania maszyny - Podczas kolejnych uruchomień maszyny, wystarczy wybrać ją z listy po lewej w GUI VirtualBox i kliknąć przycisk Uruchom === 3. Obsługa maszyny: wskazówki i naprawianie === * System udostępnia sześć pseudoterminali (tty1-tty6) pomiędzy którymi można się przełączać za pomocą Alt+F1 / Alt+F2 / ... / Alt+F6 * Warto to wykorzystać w czasie zajęć. Np. w jednym terminalu pracujemy jako root i tworzymy konta użytkowników, a w drugim terminalu próbujemy zalogować się jako nowo-utworzony użytkownik i sprawdzamy co się stanie. * Domyślnie dostępne są edytory **nano** i **vim**. * Do wykonania instrukcji do zajęć nie potrzeba instalować żadnych dodatkowych pakietów, ale gdyby ktoś czuł taką potrzebę (np. zainstalować edytor **mcedit** to można to zrobić za pomocą narzędzia apt/apt-get z poziomu roota: apt-get update -y # aktualizuje stan pakietów możliwych do pobrania apt-get install -y mcedit # instalacja pakietu mcedit * W przypadku zepsucia maszyny w sposób, którego nie da się naprawić: - Zatrzymujemy maszynę w GUI VirtualBox - Usuwamy plik dysku, z którego korzystaliśmy - W jego miejsce wstawiamy wzorcowy obraz dysku: * pracując na hoście w sieci SPK wystarczy wykonać ponownie polecenie cp clean_system_image/*.vdi kkutt_sbobek/ * pracując na własnej maszynie, bierzemy dysk rozpakowany z pobranego archiwum z obrazem - Uruchamiamy ponownie naszą maszynę w GUI VirtualBox - UWAGA: przywróci to maszynę do stanu z początku zajęć (dysk nie będzie zawierał żadnych modyfikacji), więc stracimy wszystko co zrobiliśmy (np. założone konta czy partycje). **Nie ma konieczności powtarzania wszystkich punktów instrukcji! Po prostu idziemy dalej, nauczeni o doświadczenie zepsucia systemu!**