Institute of Computer Science
  1. Courses
  2. 2023/24 fall
  3. Operating Systems (LTAT.06.001)
ET
Log in

Operating Systems 2023/24 fall

  • Pealeht
  • Loengud
  • Praktikumid
  • Viited

Praktikum 14 - Azure VM ja WSL

Tänase praktikumi teemaks on Azure keskkonna näitel pilvetehnoloogiate katsetamine. Täpsemalt Windows 11 virtuaalmasina loomine, sellega ühendumine ja sinna peale WSL-i (Windows SubSystem for Linux) installimine.

Siiamaani kasutasime VM kohalikus masinas. Nüüd tekitame olukorra, kus see on üles seatud pilveteenuses - see tähendab, et teie virtuaalmasin on üles seatud kusagil serveripargis, mille asupaik võib olla teist tuhandete kilomeetrite kaugusel. See ongi enamasti virtuaalmasinate põhiline kasutusjuht ning ka väärtus, kuna võimaldab efektiivsemat ressursside haldamist ning lisaks ka stabiilsemat keskkonda.

NB! Kuna tänases praktikumis kasutate tasulisi ressursse piiratud Azure krediidiga, siis väga oluline on, et te lülitate oma pilveteenuses asuva virtuaalmasina välja iga kord pärast selle kasutamist. Vastasel juhul lõppeb teil tasuta kasutatav ressurss ning ei ole võimalik praktikumi lõpuni teha.

1. Azure pilveteenuses Ülikooli kasutajaga konto loomine

Azure on Microsofti pilveteenuse platvorm, kuhu TÜ üliõpilased saavad endale proovikonto teha (ilma krediitkaardita) ja 100 USD krediiti harjutamiseks (katsetamiseks).

Selleks külastage veebilhekülge: https://azure.microsoft.com/en-us/free/students/ ja otsige rohelist nuppu Start free.

Sammud üldiselt

  1. Vajutage "Start free".
  2. Logige sisse oma olemasoleva Microsoti kontoga. Ei pea ilmtingimata olema teie Tartu Ülikooli konto.
  3. Kinnitage oma isik telefoninumbriga.
  4. Kinnitage oma õpilase staatus enda ülikooli kontoga. Teie ülikooli konto on <ut_kasutajanimi>@ut.ee.
  5. Pärast enda õpilase staatuse kinnitamist juhatatakse teid edasi teie Azure keskvaatesse (inglise k. "Azure Console","Azure Graphical User Interface").
  6. Palju õnne! Nüüdseks on teil olemas oma Azure konto koos aastase $100 krediidiga. Lisaks saate kasutada ka mitmeid erinevaid teenuseid tasuta. Lugege lähemalt siit.

PS! Kui teil mingil põhjusel ei lubata tasuta kontot luua peaksite sellest kurtma TÜ IT osakonda https://wiki.ut.ee/display/SIH või konto loomisel kasutama krediitkaarti (saate esimesed 100 USD tasuta, kuid selleks on vaja krediitkaarti numbrit).

Kasutades Internetti (AI), vastake allolevatele küsimustele, et mõistaksite järgmisi tegevusi juhendis. PS, tehke endale vastused korralikult selgeks, sest neid läheb teil ka ülejäänud praktikumi jooksul vaja.

  1. Mis on Azure Subscription?
  2. Mis on Azure Resource?
  3. Mis on Azure Resource Group?

2. Azure pilveteenuses Virtuaalmasina loomine

  1. Minge aadressile https://portal.azure.com/.
  2. Avanenud vaates otsige üles sinine Pluss ikoon kirjaga Create a resource ja vajutage sellele.
  3. Avanenud vaates otsige üles kirje Virtual machine ja vajutage sellele.
  4. Avaneb virtuaalmasina loomise vaade.
    • Oluline on, et selle ja järgmiste virtuaalmasina loomise sammudel mitte praktikumi katkestada, sest vastasel juhul loob Azure VMi valmis ja paneb selle ka käima, see omakorda põhjustab aga lisakulu (ehk sööb ära antud krediidi).
  5. Virtuaalmasina loomiseks täitke ära avanenud vaade nii nagu pildil näidatud. Asendage nimi "peets" enda perekonnanimega ilma täpitähtedeta.
    • Väga oluline on, et jätate ka oma lisatud parooli ja kasutajanime meelde. Teil läheb seda vaja VMi sisselogimisel.
  1. Edasi vajutage nupule: Next: Disks.
  1. Edasi vajutage nupule: Next: Networking.
  1. Edasi vajutage nupule: Next: Management.
  1. Edasi vajutage nupule: Next: Monitoring.
    • Võite tutvuda valikutega, kuid muudatused pole vajalikud ja jätke vaikeseaded.
  2. Edasi vajutage nupule: Next: Advanced.
    • Võite tutvuda valikutega, kuid muudatused pole vajalikud ja jätke vaikeseaded.
  3. Edasi vajutage nupule: Next: Tags.
    • Võite tutvuda valikutega, kuid muudatused pole vajalikud ja jätke vaikeseaded.
  4. Edasi vajutage nupule: Next: Review + Create.
    • Teile tekkima akna üles roheline tekst Validation passed. Kontrollige veelkord seadistust ja vajutage sinisele nupule Create.
  1. Virtuaalmasina loomine võtab aega kuskil 5-15 minutit. Võite nii kaua lugeda WSL-i kohta https://en.wikipedia.org/wiki/Windows_Subsystem_for_Linux.
  2. Minge lingile https://portal.azure.com/#home
  3. Vajutage nupule Resource Groups.
  4. Avanenud vaates vajutage endanimelise ressurside grupi peale.
  5. Vajutage oma VM-i peale. Peaks avanema teie loodud VM-i üldinfot tutvustav vaade.
  6. Ülesanne 1: Tehke Azure virtuaalmasina ülevaateaknast Essentials ekraanivaade
  7. Ülesanne 2: Tehke Azure virtuaalmasina ülevaateaknast Properties ekraanivaade
    • Vajadusel esitage mitu ekraanivaadet, kui ühele ära ei mahu.

3. Pilvemasinaga ühendumine

3.1 DNS nimelahenduse seadistamine

  1. Vasakul Azure pilvemasina seadistuse menüüs valige Properties ning vajutage hiirega sinisel IP-aadressil kirje Public IP-aadress/DNS name label all.
  2. Seadistage enda Azure pilvemasina DNS-nimeks perenimi2023.northeurope.cloudapp.azure.com
    • Loomulikult asendage perenimi2023 enda nimega...
  3. Kontrollige enda arvutist nimelahenduse toimimist nslookup teienimi2023.northeurope.cloudapp.azure.com (peaks tagastama teie Azure pilvearvuti IP-aadressi)
  4. Proovige, kas masin vastab ping perenimi2023.northeurope.cloudapp.azure.com (turvakaalutlustel ei peaks ping õnnestuma (ping-päringule ei vastata), saades tulemuseks Request timed out). See on ka hea näide, miks ping ei ole alati hea kontrollimaks kas arvuti on ligipääsetav võrgu teel (või DNSi kontrollimiseks).

3.2 RDP ühenduse loomine

  1. Valige enda Azure pilvemasina ülevaateakna vasakul menüüst Home - perenimi-vm - Overview ja siis Connect
  2. Avanenud vaates otsige rida Port ja seal pordinumbrit 3389. Numbri järel vajutage nuppu Check access -> peaks andma umbes minuti pärast vastuseks Accessible.
  3. Otsige alamblokki Native RDP ja seal nuppu Select -> Prerequisites ... peaks olema 3 rohelist ringi tähistamaks edukat testide läbimist.
  4. Valige Download RDP File ja avage fail.
    • Faili on mugav avada Windows operatsioonisüsteemis. Muu operatsioonisüsteemi kasutajad, otsige endale sobiv lahendus sellelt lehelt https://learn.microsoft.com/en-us/windows-server/remote/remote-desktop-services/clients/remote-desktop-clients (või üritage kasutada oma virtuaalmasinat, kuhu paigaldasite Windows operatsioonisüsteemi).
  5. Võite ignoreerida hoiatust Unkown publisher ja vajutada Connect
  6. Sisestage eelpool seadistatud kasutajatunnus ja parool
    • Soovitavalt ärge pange linnukest Remember me juurde. OK
    • Ignoreerige veelkord hoiatust. Seekord sertifikaadi kohta. The certificate is not from trusted certifying authority. Vajutage Yes
    • Peaks avanema teie Azure Windows 11 virtuaalmasina vaade
  7. Minge Settings ja Update ning paigaldage kõik uuendused.
    • Kuna teie Azure arvuti on avalikust võrgust ligipääsetav, on ülimalt oluline, et see oleks turvatud: Uuendused paigaldatud, mitte standartne kasutajatunnus ja keeruline parool.
  8. Pärast uuenduste paigaldamist tehke Azure arvutile taaskäivitus (restart).
    • Teie ühendus peaks nüüd katkema.
  9. Proovige uuesti ühenduda, kuid seekord kasutades DNS nimelahendust.
    • Avage RDP-klient enda arvutis
    • Computer reale kirjutage teienimi2023.northeurope.cloudapp.azure.com
  10. Ülesanne 3: Minge Settings -> System -> About ning tehke ekraanivaade kogu RDP aknast nii et:
    • RDP akna üleval oleks näha aadress perenimi2023.northeurope.cloudapp.azure.com
    • About aknas Device-name
    • Installed on paigalduse kuupäev
    • Vasakul üleval kasutaja perenimi-admin

2.2 Azure pilvemasinaga ühendumine üle Powershell Remote tehnoloogia

  1. Läheme Azure pilvemasina seadistuse vaates vasakult vahelehele Run Command
    • Seal valime alustuseks RunPowerShellScript ja kasutame käskudeks hostname ja Get-Date
  2. Nüüd valime EnableRemotePS eelseadistatud käskude skripti nimekirjast
    • Peaksite saame umbes 1 minuti pärast vastuseks hunniku punast teksti:
  3. Võtke hetk ja lugege veateadet. Proovige aru saada mida peate tegema, et seda veateadet parandada.
    • Vihje: Change the network type to either Domain or Private
    • Vihje: Praktikumis 4 muutsime võrgutüüpi https://courses.cs.ut.ee/2023/os/fall/Main/Praktikum4
    • Kui siiski hätta jääte Googeldage (AI'ge) veateadet ja leiate arvatavasti mitmeid lehekülgi, mis õpetavad, kuidas seda lahendada.
    • Need üksikud tublid, kes praktikumis kohapeal osalevad, võite küsida abi ka õppejõult.
  4. Pärast muudatuse tegemist proovige sama skripti EnableRemotePS uuesti.
    • Nüüd peaks õnnestuma (ei tule punast teksti vastuseks), vaid umbes lehekülg valget postitiivse alatooniga kirjeldust.
  5. Järgnevalt on meil vaja Azure võrguseadistuse tulemüüris lisaks Windowsi tulemüürile avada vajalik port. Selleks minge Network Settings -> Create port rule ja lisage reegel, mis lubab porti 5986 kõigilt arvutitelt TCP ühenduse.
  6. Oota umbes 1 minut, mille jooksul muudatus rakendub ...
  7. Nüüd ava enda isiklikus arvutis powershell ja seal sisesta käsk
    • Enter-PSSession -ComputerName "perenimi2023.northeurope.cloudapp.azure.com" -port "5986" -Credential (Get-Credential) -useSSL -SessionOption (New-PSSessionOption -SkipCACheck -SkipCNCheck)
    • perenimi asenda enda seadistatud DNS nimega
  8. Teilt küsitakse pilvearvuti kasutajatunnust ja parooli
  9. Juhul kui saate veateate puuduvate kredentsiaalide kohta, proovige PowerShell käivitada administraatorina
  10. Tulemus võiks välja näha nagu allpool oleval pildil:
  11. Ülesanne 4: Avage powershell abil ühendus enda Azure pilvearvuti ja tehke ekraanivaade kogu powershelli aknast nii et:
    • Powershelli aknas perenimi2023.northeurope.cloudapp.azure.com kuhu ühendate.
    • hostname käsu väljund Azure pilvemasinast üle powershell remote seansi
    • ipconfig käsu väljund Azure pilvemasinast üle powershell remote seansi
  12. Powershell seansi saab sulgeda käsuga exit
  13. Automatiseerimise eesmärgil on efektiivsem kasutada Invoke-Command käsku, millele saab soovi korral ka ette anda ühenduseks kasutajatunnuse ja parooli ning siis täielikult automatiseerida skriptide käivitamise Azure pilvearvutites.
    • Invoke-Command -ComputerName "perenimi2023.northeurope.cloudapp.azure.com" -ScriptBlock {Get-Host} -Credential (Get-Credential) -useSSL -SessionOption (New-PSSessionOption -SkipCACheck -SkipCNCheck)

4. WSL ehk Windows Subsystem for Linux

Tänase praktikumi üheks teemaks on ka WSL-i (Windows Subsystem For Linux) installimine Azure pilve loodud virtuaalmasinasse. WSL pakub teile võimalust Windowsi keskkonnas seada üles täisfunktsionaalsusega Linuxi terminal vastavalt teie soovile kas Ubuntu, Debiani või mingi muu distroga. Pika seletuse WSL-i kohta leiad siit: https://blogs.windows.com/windowsdeveloper/2016/07/22/fun-with-the-windows-subsystem-for-linux/

  1. Ava Azure arvutis powershell ja sisesta käsk wsl --install -d Debian
    • Eelnev käsk paigaldab meile Debian linuxi käsurea (ja kerneli) Windows operatsioonisüsteemi
    • Kui terminali tuleb tekst The requested operation is successful. ... Usalda järgmist lauset ja tee reboot
    • Oota umbes 1 minut millal pilvemasin on võrgust uuesti saadaval.
    • Pikk ja täiendvate seletustega WSL paigaldusjuhend on siin: https://learn.microsoft.com/en-us/windows/wsl/install
  2. Ühendage RDP abil ennast uuesti Azure pilvemasinaga
  3. WSL-i saab avada mitut moodi:
    • Azure pilvemasinas avage stardimenüü ja sealt leidke Debian
  4. Esimesel käivitamisel küsitakse teie käest
    • Enter new UNIX username: - eesnimi (sama mis varasemates praktikumides Ubuntu kasutaja)
    • New password: - võite kasutada sama, mis enda Ubuntu virtuaalmasinas. Ärge kasutage sama, mis Azure arvutil.
  5. Käivitage WSL ja proovige selles sisestada mõned Linuxi käsud:
 
ls -la
ls /mnt
pwd
uname -a

  • uname -a väljundist näeme, et meil on tõesti tegu Linuxiga.
  1. Otsige https://portal.azure.com lehelt üles Cloud Shell, seal valige tüübiks bash ja vajadusel looge täiendavad ressursid selle kasutamiseks.
  2. Sisestage Azure Cloud Shell käsureale käsk az network nsg rule create -g 'perenimi-rg' --nsg-name 'perenimi-vm-nsg' -n allow-SSH --priority 1001 --destination-port-ranges 22 --protocol TCP
    • Käesolev käsk avab Azure Cloud Shell (täiendav võimalus Azure ja selle ressurse/VMe seadistada) abil Windows 11 virtuaalmasinasse OpenSSH serveri jaoks pilve tulemüüris pordi 22.
    • Tulemust saate uurida Azure Network settings vaates Inbound port rules all.
    • Viide Microsofti juhendile: https://learn.microsoft.com/en-us/azure/virtual-machines/windows/connect-ssh
  3. Sisestage Azure Cloud Shell käsureale käsk az vm extension set --resource-group 'perenimi-rg' --vm-name 'perenimi-vm' --name WindowsOpenSSH --publisher Microsoft.Azure.OpenSSH --version 3.0
    • Varuge kannatust, käsu täitmine võtab kuni 15 minutit.
    • Käesolev käsk paigaldab Azure Cloud Shell abil Windows 11 virtuaalmasinasse OpenSSH serveri, mis võimaldab meil ühenduda hetkepärast Azure pilvearvutisse üle SSH liidese.
    • Jätke vastav veebileht avatuks ja võite nüüd liikuda RDP abil Azure arvuti ja seal sees oleva WSL juurde tagasi.
  4. WSL käsureal sisestage järgmised käsud: sudo apt update ; sudo apt install openssh-server ; sudo service ssh start; sudo service ssh status; ip a
    • Oluline on mõista, et väidetavalt ei käivitu WSL automaatselt Windows arvuti käivitamisel, seega peaksite igapäevatöös juurde seadistama ka WSL automaatse käivitumise. Hetkel me seda ei tee, kuid peate seega iga kord WSL SSH ühenduse loomiseks kõigepealt WSL käsurea eelnevalt käivitama (pärast seda käivitub SSH server juba automaatselt ise).
  5. Kontrolli, kas Azure Cloud Shell on oma töö lõpetanud?
    • Kui ei, siis oota veidi...
  6. Nüüd ava enda isiklikust arvutist terminal ja kirjuta sinna käsk: ssh perenimi-admin@teienimi2023.northeurope.cloudapp.azure.com
    • Nõustuge tundmatu uue fingerprint ehk serveriga identifikaatoriga.
    • Sisestage enda Azure masina parool
    • Edukat ühendust saate kontrollida käskudega hostname ja ipconfig
  7. Nüüd proovige sealt Azure arvuti käsurealt ühenduda omakorda WSL Debiani käsureale ssh eesnimi@WSL-IP-Address asendage eesnimi WSL kasutajaga mis seadistasite eelnevalt ja sisestage WSL käsurea IP-aadress (saate teada minnes WSL käsureale ja sisestades käsu ip a).
    • Peaksite jõudma WSL käsureale edukalt. Kontrollige ip a käsuga.
    • Väljuge kummastki arvutist (WSL, Azure) exit ja exit käsuga.
  8. Olles eelnevalt veendunud, et saame kõigepealt SSH abil ühenduda meie Azure VMi ja sealt omakorda selle sees olevasse WSL käsureale, saame nüüd Proxy Jumping tehnoloogia abil ühenduda otse Azure pilves oleva arvuti WSL Debiani käsureale käsuga:
    • ssh -J perenimi-admin@perenimi2023.northeurope.cloudapp.azure.com eesnimi@WSL-IP-Address
    • Näidispilt:
  9. Ülesanne 5: Esitage ekraanivaade, kus te enda isikliku arvuti käsurealt sisestate käsu: ssh -J perenimi-admin@perenimi2023.northeurope.cloudapp.azure.com eesnimi@WSL-IP-Address ja loote edukalt kõigepealt ühenduse Azure arvutiga ja seejärel automaatselt hüppate sealt edasi WSL Debiani käsureale. Illustreerimaks, et olete õiges kohas, sisestage samas aknas käsud ip a ja uname -a.

4.2 WSL harjutusülesanne

Läksin puhkusele ja talletasin enda paroolid failidesse siin Giti repos https://github.com/AndresNamm/accident . Mõtlesin, et kui ma teen palju faile, siis keegi ei leia minu parooli üles. Nii juhtuski, sest ma ei mäleta, millistesse failidesse ma oma paroolid panin. Palun teilt abi.

Kloonige https://github.com/AndresNamm/accident repo endale WSL-ga kodukausta.

Ülesanne 6: Koostage skript (või leidke käsk), mis suudab WSL (linuxi käsurea) võimekust kasutades leida https://github.com/AndresNamm/accident repositooriumist paljude failide seast parooliga faili. Esitage lahenduseks ekraanivaade leitud peidetud paroolist ja tõestus kuidas lahenduseni jõudsite.

Esitada:

  1. Ülesanne 1: Tehke Azure virtuaalmasina ülevaateaknast Essentials ekraanivaade
  2. Ülesanne 2: Tehke Azure virtuaalmasina ülevaateaknast Properties ekraanivaade
  3. Ülesanne 3: Minge Settings -> System -> About ning tehke ekraanivaade kogu RDP aknast nii et:
    • RDP akna üleval oleks näha aadress perenimi2023.northeurope.cloudapp.azure.com
    • About aknas Device-name
    • Installed on paigalduse kuupäev
    • Vasakul üleval kasutaja perenimi-admin
  4. Ülesanne 4: Avage powershell abil ühendus enda Azure pilvearvuti ja tehke ekraanivaade kogu powershelli aknast nii et:
    • Powershelli aknas perenimi2023.northeurope.cloudapp.azure.com kuhu ühendate.
    • hostname käsu väljund Azure pilvemasinast üle powershell remote seansi
    • ipconfig käsu väljund Azure pilvemasinast üle powershell remote seansi
  5. Ülesanne 5: Esitage ekraanivaade, kus te enda isikliku arvuti käsurealt sisestate käsu: ssh -J perenimi-admin@perenimi2023.northeurope.cloudapp.azure.com eesnimi@WSL-IP-Address ja loote edukalt kõigepealt ühenduse Azure arvutiga ja seejärel automaatselt hüppate sealt edasi WSL Debiani käsureale. Illustreerimaks et olete õiges kohas sisestage samas aknas käsud ip a ja uname -a.
  6. Ülesanne 6: Koostage skript (või leidke käsk), mis suudab WSL (linuxi käsurea) võimekust kasutades leida https://github.com/AndresNamm/accident repositooriumist paljude failide seast parooliga faili. Esitage lahenduseks ekraanivaade leitud peidetud paroolist ja tõestus kuidas lahenduseni jõudsite.

Kui teil on Github/Gitlab valmis, siis lisage link esitusele moodle keskkonda, kust me teie lahenduse leiame. Moodle esitamise otselink: https://moodle.ut.ee/mod/assign/view.php?id=1226994

(Tähtaeg 2 nädalat)

  • Institute of Computer Science
  • Faculty of Science and Technology
  • University of Tartu
In case of technical problems or questions write to:

Contact the course organizers with the organizational and course content questions.
The proprietary copyrights of educational materials belong to the University of Tartu. The use of educational materials is permitted for the purposes and under the conditions provided for in the copyright law for the free use of a work. When using educational materials, the user is obligated to give credit to the author of the educational materials.
The use of educational materials for other purposes is allowed only with the prior written consent of the University of Tartu.
Terms of use for the Courses environment