Seuraavassa "lonkaX" viittaa johonkin lonka-alkuiseen koneeseen, opettaja kertoo mitä X on sinulle, ja tunnus on aina oma käyttäjätunnuksesi.
Avaa kolme pääteikkunaa, tee kahdessa
ssh -X lonkaX.it.jyu.fi
Yhdessä ikkunassa luodaan virtuaalikone, toisessa kirjataan lokiin mitä tuli tehtyä, kolmatta käytetään muuhun. Ole huolellinen sen kanssa mitä teet missäkin!
Avaa yhdessä ikkunassa lonkaX:ssa editori (nano, vim, emacs) tiedostonimenä tunnus1.log. Kirjoita alkuun (2 riviä) koneen nimi (tunnuksesi ja numero 1), oma nimesi ja lyhyt kuvaus koneesta ("kurssin TIES478 harjoitustyökone" tms) ja päiväys ja kellonaika.
Katso koneellesi varattu IP-osoite komennolla host tunnus1, katso verkon peite (netmask) ja oletusyhdyskäytävä lonkaX:sta (default gateway tiedostosta /etc/network/interfaces) ja nimipalvelin tiedostosta /etc/resolv.conf.
mkdir -p /ramdisk/tunnus qemu-img create -f qcow2 /ramdisk/tunnus/tunnus1.img 4G
Käynnistä sitten virtuaalikoneesi asennus komennolla (tunnus = oma käyttäjätunnuksesi!)
virt-install -n tunnus1 --memory 512 \ --disk /ramdisk/tunnus/tunnus1.img,bus=virtio \ --arch i386 --cdrom /srv/kvm/images/ubuntu-16.04-server-i386.iso -w bridge=br0
Kirjaa lokiin em. komento ja asennusohjelmalle antamasi vastaukset (ainakin oletusarvosta poikkeavat) ja jatkossa kaikki mitä roottina (sudolla) teet.
virt-viewer kone
Jos homma menee täysin tilttiin ja haluat aloittaa alusta, hävitä keskeneräinen kone ensin näin:
virsh destroy kone virsh undefine kone rm -f /ramdisk/tunnus/tunnus1.imgKun asennus on lähtenyt käyntiin:
Asennuksen aikana kokeile hiiren irrottamista virtuaalikonsolista (Alt-Ctrl) ja kytkemistä siihen takaisin (klikkaamalla), katso loki-ikkunaa (Alt-F4), kokeile konsoli-ikkunoita Alt-F2 ja Alt-F3 ja kokeile siellä ainakin komentoja df ja ls, palaa asennukseen Alt-F1:llä.
Asennuksen valmistuttua kirjaudu sisään em. nollatunnuksella ja tarkista paljonko levytilaa ja muistia on vapaana (df, top). Katso mitä hakemistossa /boot on. Katso mitä /proc/cpuinfo ja /proc/meminfo sisältävät. Kokeile komentoja ls /dev/?d*, fdisk -l /dev/vda ja route (ilman argumentteja).
Päivitä asennetut ohjelmat:
sudo apt-get update; sudo apt-get dist-upgrade
Asenna Kerberos-autentikointi:
sudo apt-get update sudo apt-get install libpam-krb5ja kysyttäessaä realm anna AD.JYU.FI. Älä anna mitään salasanaa jos se sitä kysyy, älä välitä virheilmoituksesta.
Kokeile toimiiko man man ja jos ei, asenna man.
Katso adduser-komennon man-sivua ja tiedostoa /etc/adduser.conf. Lisää normaalitunnuksesi (ilman nollaa) komennolla adduser. Laita uid samaksi kuin lonkaX:ssä (tarkista komennolla id) ja kommenttikenttään (--gecos) nimesi. Kokeile että pääset sillä sisään lonkaX:stä ssh:lla.
Lisää samaan tapaan käyttäjät 'tt' ja 'kailnurm'. UID:t ja nimet voi tarkistaa lonkaX-koneessa tyyliin
grep '^kailnurm:' /etc/passwd
Avaa uusi ikkuna ja mene sieltä ssh:lla suoraan (ei lonkaX:n kautta) virtuaalikoneeseesi sen julkisella nimellä (sNNN.vm.it.jyu.fi, missä NNN on IP-osoitteen viimeinen osa 3-numeroisena). Kokeile samaa sen julkisella IP-osoitteella (130.234.x.x).
Asenna locate.
Luo itsellesi ssh-avain lonkaX:ssä:
ssh-keygen -t rsaLaita salasanaksi (passphrase) jotain mitä ei ole muualla käytössä. Kopioi (esim. scp:llä) lonkaX:stä tiedosto $HOME/.ssh/id_rsa.pub virtuaalikoneeseesi tiedostoksi ~/.ssh/authorized_keys (luo ensin hakemisto .ssh) sekä nollatunnukselle että normaalitunnuksellesi.
Kokeile miten ssh tunnus1 nyt toimii lonkaX:ssä.
Käynnistä lonkaX:ssä ssh-agent näin:
exec ssh-agent bash ssh-addja kokeile miten ssh sen jälkeen käyttäytyy.
Lisää em. opettajatunnukset tt ja kailnurm sudo-ryhmään tyyliin
usermod -a -G sudo ttja lisää hakemistosta /usr/local/sshkeys löytyvä avain asianomaisen .ssh-hakemistoon tiedostoon authorized_keys ja laita oikeudet kohdalleen:
sudo mkdir /home/kailnurm/.ssh sudo scp tunnus@lonkaX:/usr/local/sshkeys/id_kailnurm.pub /home/kailnurm/.ssh/authorized_keys sudo chown -R kailnurm:kailnurm /home/kailnurm/.sshSama säätö myös tt-tunnukselle.
Katso mitä editoreita koneessasi on:
dpkg -l | grep editorAsenna emacs. Katso uudestaan mitä editoreita dpkg -l tuntee. Valitse jokin editori jota osaat käyttää (nano on helpoin) ja lisää sillä tiedoston .bashrc loppuun tämänkaltainen rivi
export EDITOR=nano(vaihda nanon paikalle haluamasi editori).
Käynnistä script.
Asenna nullmailer. Mailname = jyu.fi, smarthosts = smtp.jyu.fi.
Asenna ntp ja rsync.
Lopeta script (exit), katso tiedostoa typescript.
Katso auth-lokista tekemäsi sudo-komennot:
sudo grep sudo /var/log/auth.log
Sammuta virtuaalikoneesi sen sisältä (sudo shutdown -h now) ja käynnistä se uudelleen (virsh start). Käynnistä virtuaalikonsoli uudelleen (virt-viewer).
Sammuta virtuaalikoneesi lonkaX:sta (virsh shutdown) ja käynnistä se ja virtuaalikonsoli uudelleen.
Tee sama komennolla (virsh destroy), vertaa miten se eroaa edellisestä virtuaalikonsolilta katsoen.
Pysäytä virtuaalikoneesi lonkaX:stä (virsh suspend). Mitä virtuaalikonsolissa tapahtuu? Herätä kone taas henkiin (virsh resume).
Ota koneesi määrittelytiedosto talteen (virsh dumpxml tunnus1 > tunnus1.xml). Sammuta se (shutdown) ja poista sen määritys järjestelmästä (virsh undefine tunnus1).
Yritä käynnistää se uudelleen (virsh start) - millaisen virheilmoituksen saat?
Palauta koneesi määrittely järjestelmään: virsh define tunnus1.xml ja käynnistä se uudelleen.
Katso mitä määrittelytiedosto sisältää. Etsi sieltä muistin koon määritys (kahdessa paikassa!) ja muuta sen arvoksi 262144 (= 256MB). Mieti mitä pitää tehdä että määritys tulee voimaan; kokeile.
Siirrä virtuaalikoneesi levynkuva /ramdisk:stä kotihakemistoosi:
Kokeile mitä host www sanoo.
Katso tiedostoa /etc/resolv.conf. Avaa se editorilla (esim. nano) ja lisää search-rivin loppuun jyu.fi. Kokeile host www taas. Entä mitä ping www sanoo? Lisää sinne vielä it.jyu.fi ennen jyu.fi:tä ja kokeile uudestaan.
Katso tiedostoa /etc/hosts. Lisää sinne rivi
172.20.208.17 wwwKokeile taas komentoja host www ja ping www. Poista sitten lisäämäsi rivi.
Kotitehtävä: (1) Jos edellisistä jotain jäi kesken, tee loppuun!
(2) Asenna samaan tapaan itsellesi toinen virtuaalikone nimellä tunnus2. Hävitä se kokonaan (virsh destroy tunnus2; virsh undefine tunnus2; rm -f tunnus2.img) ja asenna uudestaan hieman eri asetuksilla. Voit kokeilla eri arkkitehtuureja (x86_64, i386), levytilamääriä (älä käytä enempää kuin 5G, kokeile miten vähällä asennus onnistuu ja mitä tapahtuu kun levytila loppuu), muistia (max 512MB), cpu-määrää (max 2), Ubuntu-versioita, asennusta verkosta cd-imagen asemesta (tyyliin --location http://archive.ubuntu.com/ubuntu/dists/trusty/main/installer-amd64/) jne. Kokeile päivittää Ubuntu-versio uudempaan: sudo do-release-upgrade. Harjoittele kaikkea mikä tuntuu vaikealta ja asenna se uudestaan niin usein kuin haluat. Älä asenna sinne mitään "oikeaa": ensi viikolla se hävitetään kuitenkin.