Praktikum 14 - Azure VM ja WSL
Juhendi tekstiline osa on uuendatud 2024 aastale. Siiski palun arvestada, et pildid on enamasti varasemate aastate näidised, seega ei pruugi olla 100% vastavuses 2024 aasta tarkvara versioonidega.
Tänase praktikumi teemaks on Azure keskkonna näitel pilvetehnoloogiate katsetamine. Täpsemalt Windows 10 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 veebilehekülge: https://azure.microsoft.com/en-us/free/students/ ja otsige rohelist nuppu Start free
.
Sammud üldiselt
- Vajutage "Start free" (vaata pilti tekstilise juhendi järel).
- Logige sisse oma olemasoleva Microsoti kontoga. Ei pea ilmtingimata olema teie Tartu Ülikooli konto.
- Kinnitage oma isik telefoninumbriga.
- Kinnitage oma õpilase staatus enda ülikooli kontoga. Teie ülikooli konto on
kasutajanimi@ut.ee
kujul. - Pärast enda õpilase staatuse kinnitamist juhatatakse teid edasi teie Azure keskvaatesse (inglise k. "Azure Console","Azure Graphical User Interface").
- Palju õnne! Nüüdseks on teil olemas oma Azure konto koos aastase $100 krediidiga. Lisaks saate kasutada ka mitmeid erinevaid teenuseid tasuta.
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.
- Mis on
Azure Subscription
? - Mis on
Azure Resource
? - Mis on
Azure Resource Group
?
2. Azure pilveteenuses Virtuaalmasina loomine
- Minge aadressile https://portal.azure.com/.
- Avanenud vaates otsige üles sinine
Pluss
ikoon kirjagaCreate a resource
ja vajutage sellele. - Avanenud vaates otsige üles kirje
Virtual machine
ja vajutage sellele. - 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).
- Virtuaalmasina loomiseks täitke ära avanenud vaade nii nagu pildil näidatud väikeste parandustega:
- Asendage nimi "peets"
enda perekonnanimega
ilma täpitähtedeta. - Kasutage operatsioonisüsteemi versiooniks
Windows 10 Pro 22H2 - x64 Gen2
- Väga oluline on, et jätate ka oma lisatud
parooli
jakasutajanime
meelde. Teil läheb seda vaja VMi sisselogimisel.
- Asendage nimi "peets"
- Edasi vajutage nupule:
Next: Disks
.
- Edasi vajutage nupule:
Next: Networking
.
- Edasi vajutage nupule:
Next: Management
.
- Edasi vajutage nupule:
Next: Monitoring
.- Võite tutvuda valikutega, kuid muudatused pole vajalikud ja jätke
vaikeseaded
.
- Võite tutvuda valikutega, kuid muudatused pole vajalikud ja jätke
- Edasi vajutage nupule:
Next: Advanced
.- Võite tutvuda valikutega, kuid muudatused pole vajalikud ja jätke
vaikeseaded
.
- Võite tutvuda valikutega, kuid muudatused pole vajalikud ja jätke
- Edasi vajutage nupule:
Next: Tags
.- Võite tutvuda valikutega, kuid muudatused pole vajalikud ja jätke
vaikeseaded
.
- Võite tutvuda valikutega, kuid muudatused pole vajalikud ja jätke
- Edasi vajutage nupule:
Next: Review + Create
.- Teile tekkima akna üles roheline tekst
Validation passed
. Kontrollige veelkord seadistust ja vajutage sinisele nupuleCreate
.
- Teile tekkima akna üles roheline tekst
- 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.
- Minge lingile https://portal.azure.com/#home
- Vajutage nupule
Resource Groups
. - Avanenud vaates vajutage endanimelise ressurside grupi peale.
- Vajutage oma VM-i peale. Peaks avanema teie loodud VM-i üldinfot tutvustav vaade.
- Ülesanne 1: Tehke Azure virtuaalmasina ülevaateaknast
Essentials
ekraanivaade - Ü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
- Vasakul Azure pilvemasina seadistuse menüüs valige
Properties
ning vajutage hiirega sinisel IP-aadressil kirjePublic IP-aadress/DNS name label
all. - Seadistage enda Azure pilvemasina DNS-nimeks
perenimi2024.northeurope.cloudapp.azure.com
- Loomulikult asendage
perenimi2024
enda nimega...
- Loomulikult asendage
- Kontrollige enda arvutist nimelahenduse toimimist
nslookup teienimi2024.northeurope.cloudapp.azure.com
(peaks tagastama teie Azure pilvearvuti IP-aadressi) - Proovige, kas masin vastab
ping perenimi2024.northeurope.cloudapp.azure.com
(turvakaalutlustel ei peaks ping õnnestuma (ping-päringule ei vastata), saades tulemuseksRequest timed out
). See on ka hea näide, miksping
ei ole alati hea kontrollimaks kas arvuti on ligipääsetav võrgu teel (või DNSi kontrollimiseks).
3.2 RDP ühenduse loomine
- Valige enda Azure pilvemasina ülevaateakna vasakul menüüst
Home
-perenimi-vm
-Overview
ja siisConnect
- Avanenud vaates otsige rida
Port
ja seal pordinumbrit3389
. Numbri järel vajutage nuppuCheck access
-> peaks andma umbes minuti pärast vastuseksAccessible
. - Otsige alamblokki
Native RDP
ja seal nuppuSelect
->Prerequisites ...
peaks olema 3 rohelist ringi tähistamaks edukat testide läbimist. - 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).
- Võite ignoreerida hoiatust
Unkown publisher
ja vajutadaConnect
- Sisestage eelpool seadistatud
kasutajatunnus
japarool
- Soovitavalt ärge pange linnukest
Remember me
juurde.OK
- Ignoreerige veelkord hoiatust. Seekord sertifikaadi kohta.
The certificate is not from trusted certifying authority
. VajutageYes
- Peaks avanema teie Azure Windows 10 virtuaalmasina vaade
- Soovitavalt ärge pange linnukest
- Katkestage ühendus viisakalt valides Azure pilvemasinas
Sign Out
/Logi välja
Teie ühendus peaks nüüd katkema. - Proovige uuesti ühenduda, kuid seekord kasutades DNS nimelahendust.
- Avage RDP-klient enda arvutis
- Computer reale kirjutage
teienimi2024.northeurope.cloudapp.azure.com
- Sisestage enda Azure pilvemasina kasutaja
perenimi-admin
ja enda seadistatud parool. Selleks valige esmaltMore choices
ja sealtUse a different account
.
- Ülesanne 3: Minge
Settings
->System
->About
ning tehke ekraanivaade kogu RDP aknast nii et:- RDP akna üleval oleks näha aadress
perenimi2024.northeurope.cloudapp.azure.com
About
aknasDevice-name
Installed on
paigalduse kuupäev
- RDP akna üleval oleks näha aadress
2.2 Azure pilvemasinaga ühendumine üle Powershell Remote tehnoloogia
- Läheme Azure pilvemasina seadistuse vaates vasakult vahelehele
Operations
->Run Command
- Seal valime alustuseks
RunPowerShellScript
ja kasutame käskudekshostname
jaGet-Date
- Seal valime alustuseks
- Nüüd valime
EnableRemotePS
eelseadistatud käskude skripti nimekirjast - 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/2024/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.
- 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.
- 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 porti5986
kõigilt arvutiteltTCP
ühenduse. - Oota umbes 1 minut, mille jooksul muudatus rakendub ...
- Nüüd ava enda isiklikus arvutis
powershell
ja seal sisesta käskEnter-PSSession -ComputerName "perenimi2024.northeurope.cloudapp.azure.com" -port "5986" -Credential (Get-Credential) -useSSL -SessionOption (New-PSSessionOption -SkipCACheck -SkipCNCheck)
perenimi
asenda enda seadistatud DNS nimega
- Teilt küsitakse pilvearvuti
kasutajatunnust
japarooli
- Juhul kui saate veateate, proovige PowerShell käivitada administraatorina
- Tulemus võiks välja näha nagu allpool oleval pildil:
- Ülesanne 4: Avage
powershell
abil ühendus enda Azure pilvearvuti ja tehke ekraanivaade kogu powershelli aknast nii et:- Powershelli aknas
perenimi2024.northeurope.cloudapp.azure.com
kuhu ühendate. hostname
käsu väljund Azure pilvemasinast üle powershell remote seansiipconfig
käsu väljund Azure pilvemasinast üle powershell remote seansi
- Powershelli aknas
- Powershell seansi saab sulgeda käsuga
exit
- Automatiseerimise eesmärgil on efektiivsem kasutada
Invoke-Command
käsku, millele saab soovi korral ka ette anda ühendusekskasutajatunnuse
japarooli
ning siis täielikult automatiseerida skriptide käivitamise Azure pilvearvutites.Invoke-Command -ComputerName "perenimi2024.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/
- Ava Azure arvutis
powershell
ja sisesta käskwsl --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 teereboot
- 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
- Eelnev käsk paigaldab meile
- Ühendage RDP abil ennast uuesti Azure pilvemasinaga
- WSL-i saab avada mitut moodi:
- Azure pilvemasinas avage stardimenüü ja sealt leidke
Debian
- Azure pilvemasinas avage stardimenüü ja sealt leidke
- 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.
- 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.
- Minge
Settings
jaUpdate
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
jakeeruline parool
. - Kindlasti oodake millal uuendused lõpetavad, sest vastasel korral ei tööta järgmised käsud korralikult.
- Kuna teie Azure arvuti on avalikust võrgust ligipääsetav, on ülimalt oluline, et see oleks turvatud:
- Pärast uuenduste paigaldamist tehke Azure arvutile taaskäivitus (restart).
- Otsige https://portal.azure.com lehelt üles
Cloud Shell
, seal valige tüübiksbash
ja vajadusel looge täiendavad ressursid selle kasutamiseks. - 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 10 virtuaalmasinasse OpenSSH serveri jaoks pilve tulemüüris pordi 22.
- Tulemust saate uurida Azure
Network settings
vaatesInbound port rules
all. - Viide Microsofti juhendile: https://learn.microsoft.com/en-us/azure/virtual-machines/windows/connect-ssh
- 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 2.0
- Varuge kannatust, käsu täitmine võtab kuni 15 minutit.
- Käesolev käsk paigaldab Azure Cloud Shell abil Windows 10 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.
- 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).
- Kontrolli, kas Azure Cloud Shell on oma töö lõpetanud?
- Kui ei, siis oota veidi...
- Kui Azure shell käsk annab veateateid (punast teksti), siis võib abiks olla ka Azure
Windows 10
pilvemasina taaskäivitamine (restart) - Kui siiski Azure shellist ei õnnestu tegevust sooritad võib SSH paigalduse käsud läbi teha käsitsi...
- SSH Azure windows 10 virtuaalmasinas tööle saamiseks eemaldame need Administaatori õigustes Powershellis paketid käsitsi ja installerime uuesti.
- Remove-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
- Remove-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
- Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
- Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
- Lõpuks paneme teenuse käima ja seadistame automaatse käivitamise:
- Start-Service sshd
- Set-Service -Name sshd -StartupType Automatic
- SSH Azure windows 10 virtuaalmasinas tööle saamiseks eemaldame need Administaatori õigustes Powershellis paketid käsitsi ja installerime uuesti.
- Nüüd ava enda isiklikust arvutist terminal ja kirjuta sinna käsk:
ssh perenimi-admin@teienimi2024.northeurope.cloudapp.azure.com
- Nõustuge tundmatu uue
fingerprint
ehk serveriga identifikaatoriga. - Sisestage enda Azure masina parool
- Edukat ühendust saate kontrollida käskudega
hostname
jaipconfig
- Nõustuge tundmatu uue
- Nüüd proovige sealt Azure arvuti käsurealt ühenduda omakorda WSL Debiani käsureale
ssh eesnimi@WSL-IP-Address
asendageeesnimi
WSL kasutajaga mis seadistasite eelnevalt ja sisestage WSL käsurea IP-aadress (saate teada minnes WSL käsureale ja sisestades käsuip a
).- Peaksite jõudma WSL käsureale edukalt. Kontrollige
ip a
käsuga. - Väljuge kummastki arvutist (WSL, Azure)
exit
jaexit
käsuga.
- Peaksite jõudma WSL käsureale edukalt. Kontrollige
- 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: - Ülesanne 5: Esitage ekraanivaade, kus te enda isikliku arvuti käsurealt sisestate käsu:
ssh -J perenimi-admin@perenimi2024.northeurope.cloudapp.azure.com eesnimi@WSL-IP-Address
ja loote edukalt kõigepealt ühenduseAzure arvutiga
ja seejärel automaatselt hüppate sealt edasiWSL Debiani
käsureale. Illustreerimaks, et olete õiges kohas, sisestage samas aknas käsudip a
jauname -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:
- Ülesanne 1: Tehke Azure virtuaalmasina ülevaateaknast
Essentials
ekraanivaade - Ülesanne 2: Tehke Azure virtuaalmasina ülevaateaknast
Properties
ekraanivaade - Ülesanne 3: Minge
Settings
->System
->About
ning tehke ekraanivaade kogu RDP aknast nii et:- RDP akna üleval oleks näha aadress
perenimi2024.northeurope.cloudapp.azure.com
About
aknasDevice-name
Installed on
paigalduse kuupäev- Vasakul üleval kasutaja
perenimi-admin
- RDP akna üleval oleks näha aadress
- Ülesanne 4: Avage
powershell
abil ühendus enda Azure pilvearvuti ja tehke ekraanivaade kogu powershelli aknast nii et:- Powershelli aknas
perenimi2024.northeurope.cloudapp.azure.com
kuhu ühendate. hostname
käsu väljund Azure pilvemasinast üle powershell remote seansiipconfig
käsu väljund Azure pilvemasinast üle powershell remote seansi
- Powershelli aknas
- Ülesanne 5: Esitage ekraanivaade, kus te enda isikliku arvuti käsurealt sisestate käsu:
ssh -J perenimi-admin@perenimi2024.northeurope.cloudapp.azure.com eesnimi@WSL-IP-Address
ja loote edukalt kõigepealt ühenduseAzure arvutiga
ja seejärel automaatselt hüppate sealt edasiWSL Debiani
käsureale. Illustreerimaks et olete õiges kohas sisestage samas aknas käsudip a
jauname -a
. - Ü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)