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. 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
- 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 kontalinux00
: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!