This shows you the differences between two versions of the page.
|
rl:info:resurse:vm-laborator [2018/11/27 22:51] florin.stancu update VM link, add warnings |
rl:info:resurse:vm-laborator [2025/11/10 09:10] (current) florin.stancu [Local VM] |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ===== Mașina virtuală ===== | + | ====== Mașină Virtuală ====== |
| - | ===== Download ===== | + | |
| - | <note warning> | + | ===== OpenStack ===== |
| - | Din păcate, [[http://cloud.curs.pub.ro | cloud-ul facultății]] este momentan în stadiul de mentenanță. | + | |
| - | Vă rugăm folosiți mașina virtuală locală (instrucțiuni mai jos)! | + | |
| - | </note> | + | |
| - | <hidden> | + | Aveți opțiunea de a folosi [[http://cloud.grid.pub.ro | cloud-ul facultății (OpenStack)]] pentru a rezolva temele / laboratoarele la RL. |
| - | OLD: Vom rula o masină virtuală în [[http://cloud.curs.pub.ro | cloud-ul facultății]]. Pentru a porni o astfel de masină urmăriți tutorialul de la [[https://cloud.curs.pub.ro/about/tutorial-for-students/ | această adresă]]. | + | |
| - | </hidden> | + | |
| - | <note> | + | Pentru a porni o astfel de masină pentru prima dată, urmăriți tutorialul de la [[https://ocw.cs.pub.ro/courses/isc/info/virtualmachine | această adresă]], cu următoarele puncte cheie / precizări: |
| - | Mașina virtuală locală VMware folosită în laboratorul de RL și **Tema2 (2018)** o puteți descărca [[http://elf.cs.pub.ro/rl/vm/Tema2_2018.zip|de la această adresă]]. | + | |
| - | Deși în format VMware, mașina virtuală ar trebui să fie compatibilă și cu alte hipervizoare (VirtualBox, KVM), însă va trebui să importați manual imaginea din fișierul ''.vmdk''. | + | * Adăugați o pereche de chei privată-publică pe ''fep.grid.pub.ro'' (prin ssh) si copiați cheia publică pe OpenStack (folosind interfața web). |
| + | * **Notabil:** Acest pas trebuie să-l faceți o singură dată, cheia rămânând activă tot anul școlar (sau până la prima greșeală de ștergere accidentală a acesteia pe fep :D). | ||
| + | |||
| + | * Când creați instanța de mașină virtuală (în fereastra "Launch instance") pe OpenStack, folosiți setările: | ||
| + | * Dați un nume specific instantei, folositi numele vostru si numarul laboratorului (e.g., "Iulia Florea Lab 8"); | ||
| + | * În meniul din stânga, la **Sources**, căutați ''RL 2025 rev 0'' și apăsați pe săgeată sus pentru a o selecta; | ||
| + | * La **Flavor**, este suficient ''m1.small'', nu aveți nevoie de mai multe procesoare sau memorie mare; | ||
| + | * La **Networks**, selectați ''vlan9'' și apăsați pe săgeata sus pentru a o seta; | ||
| + | * La **Key Pair** Alegeți cheia publică adaugată anterior; | ||
| + | * Acum puteti porni masina prin butonul **Launch Instance**! | ||
| + | |||
| + | * Odată pornit VM-ul, vă puteți conecta la el folosind pașii următori: | ||
| + | - Conectați-vă prin ssh la ''fep.grid.pub.ro'', apoi pe mașina virtuală proaspăt pornită prin IP-ul privat (''10.9.x.x''). Urmati pasii de mai jos: | ||
| + | - De pe sistemul fizic, deschideti un terminal si realizati o sesiune SSH catre ''fep.grid.pub.ro'':<code bash> | ||
| + | student@mjolnir:~$ ssh <user moodle>@fep.grid.pub.ro | ||
| + | </code> | ||
| + | * **Atentie!!** ''<user moodle>'' va fi înlocuit cu utilizatorul vostru! | ||
| + | - Din terminalul ''fep'', vă conectați mai departe la mașina voastră virtuală pe OpenStack:<code bash> | ||
| + | [iulia.florea@fep7-1 ~]$ ssh -i ~/.ssh/openstack.key student@10.9.x.y | ||
| + | </code> | ||
| + | * **Atentie!!** IP-ul masinii virtuale se obtine din interfata grafică a [[https://cloud.grid.pub.ro|OpenStack]]. | ||
| + | |||
| + | ===== Local VM ===== | ||
| + | |||
| + | Ca alternativă la OpenStack, puteți descărca o mașină virtuală locală pe care s-o rulați pe propriul PC. Pentru aceasta, trebuie să aveți un program hypervizor instalat (e.g., [[https://archive.org/download/vmwareworkstationarchive/17.x/|VMware]], [[https://www.virtualbox.org/|VirtualBox]], [[https://documentation.suse.com/sles/11-SP4/html/SLES-all/cha-qemu-running.html|qemu+kvm]]. | ||
| + | |||
| + | Imaginea mașinii virtuale pentru laboratorul de RL **(2025)** o puteți descărca [[https://github.com/cs-pub-ro/RL-lab-vm/releases|de la această adresă (GitHub Releases)]]. Vedeți mai jos considerente de rulare în funcție de hypervizorul ales. | ||
| + | |||
| + | * Proiectele de VMware (.vmx) și VirtualBox (.vbox) ar trebui să se deschidă fără probleme, folosind un disk .vmdk partajat. Dacă există probleme, păstrați doar disk file-ul și refaceți-le cu wizardul de creat mașini noi al programului preferat. | ||
| + | * Se recomandă utilizarea VMWare pentru o pregătire de cât mai ușoară a infrastructurii (VirtualBox are o ciudățenie la rețeaua NAT și nu e ușor să vă conectați prin SSH); | ||
| + | * Dacă, totuși, optați pentru VirtualBox, trebuie să aveți în vedere pașii suplimentari de mai jos pentru a o putea accesa prin ssh. | ||
| + | |||
| + | <spoiler Detalii rulare masină virtuală prin VMware> | ||
| + | * Dacă doriți să re-faceți proiectul .vmx de la zero, [[https://kb.vmware.com/s/article/2010196|Urmați pașii de aici]]. | ||
| + | * După deschidere: se recomandă folosirea unui terminal pe sistemul fizic și lucrul peste SSH în mașina virtuală (denumită și ''host''). În acest fel vom putea folosi copy-paste în terminal sau alte facilități. Pentru aceasta urmați pașii de mai jos: | ||
| + | * Autentificați-vă în consola mașinii virtuale (ecranul negru) folosind contul ''root'' cu parola ''student''. | ||
| + | * Aflați adresa IP a mașinii virtuale de pe interfața ''eth0'':<code bash> | ||
| + | root@host:~# ip a sh eth0 | ||
| + | </code> | ||
| + | * De pe sistemul fizic, deschideți un terminal și realizați o sesiune SSH folosind:<code bash> | ||
| + | student@PC:~$ ssh student@<ADRESA_IP_MASINA> | ||
| + | </code>unde ''<ADRESA_IP_MASINA>'' este adresa IP a mașinii virtuale așa cum ați obținut-o mai sus. | ||
| + | * Aaand that's it! | ||
| + | </spoiler> | ||
| + | |||
| + | <spoiler Detalii rulare masină virtuală prin VirtualBox> | ||
| + | * Deschideți proiectul .vbox. | ||
| + | * //Încă nu o porniți, mai avem de făcut niște setări!// | ||
| + | * Dorim să folosim terminalul sistemului fizic și să lucrăm peste SSH cu mașina virtuală (denumită și ''host''). În acest fel vom putea folosi copy-paste în terminal sau alte facilități. Pentru aceasta urmați pașii: | ||
| + | * Vom adauga o regula de port forwarding pentru a putea accesa masina prin SSH de pe statia Host (daca nu intelegeti ce reprezinta port forwarding, va fi explicat mai jos :-D) | ||
| + | * Cu masina virtuala oprita deschidem **Settings -> Network -> Advanced -> Port Forwarding** si adaugam urmatoarea regula: | ||
| + | {{ :rl:labs:port_forward_virtual_box.png?600 | Port forwarding pentru acces SSH de pe Host }} | ||
| + | |||
| + | * De pe sistemul fizic, deschideți un terminal și realizați o sesiune SSH folosind:<code bash> | ||
| + | student@PC:~$ ssh -p 10022 student@localhost | ||
| + | </code> | ||
| + | </spoiler> | ||
| + | |||
| + | <note> | ||
| + | Conturile de acces la mașina virtuală locală (stația ''host'') sunt (''username:parola''): | ||
| + | * ''student:student'' | ||
| + | * ''root:student'' | ||
| + | În mod implicit vă puteți conecta prin SSH doar folosind utilizatorul ''student'', urmând să treceți la ''root'' folosind comanda ''sudo su''. | ||
| </note> | </note> | ||
| - | <hidden> | ||
| - | OLD: Puteți găsi mașina virtuală VMware folosită în laboratorul de RL la [[http://repository.grid.pub.ro/cs/rl/vm/|această adresă]]. Pentru a accesa link-ul folosiți contul de pe cs.curs.pub.ro. | ||
| - | </hidden> | ||
| ===== Topologie ===== | ===== Topologie ===== | ||
| Line 29: | Line 81: | ||
| * Există 3 containere cu numele: ''red'', ''green'' și ''blue''. | * Există 3 containere cu numele: ''red'', ''green'' și ''blue''. | ||
| - | * Puteți sa va logați folosind conturile (''username:parola'') | + | * Puteți sa va logați folosind utilizatorul ''student'', parola ''student''. |
| - | * ''root:student'' | + | * Nu uitați să actualizați + rulați scriptul de pregătire a activității curente! |
| - | * ''student:student'' | + | |
| - | * Toate containerele LXC vor fi pornite automat. | + | |
| * Pentru repornirea containerelor:<code> | * Pentru repornirea containerelor:<code> | ||
| - | rr [red|green|blue|all] | + | docker restart [mn.red|mn.green|mn.blue] |
| </code> | </code> | ||
| * Pentru vizualizarea stării containerelor:<code> | * Pentru vizualizarea stării containerelor:<code> | ||
| - | lxc-list | + | docker ps |
| </code> | </code> | ||
| * Din contul ''root'' de pe stația ''host'', accesați containerele folosind comanda:<code> | * Din contul ''root'' de pe stația ''host'', accesați containerele folosind comanda:<code> | ||
| go [red|green|blue] | go [red|green|blue] | ||
| </code> | </code> | ||
| - | * Pentru a ieși din consola containerelor utilizați combinația de taste ''Ctrl+a'', eliberați tastele și apoi apăsați ''q''. | + | * Pentru a ieși din consola containerelor utilizați comanda "exit". |
| + | |||