Palvelinten Hallinta
Configuration Management Systems course - 2025 spring

Control 10, 100, 1000 many computers.

Or control 2071 computers, like Jussi did on a earlier course. Or handle 7 different operating systems and OS versions with a single master, like Matias.

Best instance got 5.0 / 5 feedback - all respondents gave the best grade 5.

Course, both instances
Course name and codePalvelinten hallinta ICI001AS3A-3012
Timing2025 period 2, late autumn, w43-w50
Credits5 cr
LanguageFinnish (+reading material in English)
FeedbackReached 5.0 / 5 * Excellent feedback Five star experience
ClassesTue 08:00 - 10:45, online video conference, mandatory participation
Max students50 (fully booked, queue started)
RemoteFully remote
First class2025-10-21 w43 Tue 08:00, Zoom link already delivered by email.
ServicesMoodle: Palvelinten hallinta 3012 online, Zoom, Laksu. Optional: Tero's list.

I've done some research on configuration management systems. I have written my doctoral dissertation on applying malware command and control techniques to benign configuration management systems. I've given an invited speech in IEEE ICIM Chengdu and a plenary speech in IEEE ICIM Oxford; I’ve also been teaching these modern methods to companies. Previous feedback for this course has been from very good 4.3 to excellent 4.9 5.0 out of 5.

As the course is in Finnish, the rest of this page will be in Finnish.

Opintojakson suoritettuaan opiskelija

  • Osaa hallita palvelimia kuvailemalla tavoitetilan (idempotenssi)
  • Osaa tehdä asetukset pelkkänä tekstinä ja versioitavasti (infrastruktuuri koodina)
  • Pystyy tekemään tavalliset ylläpitotoimet valitulla työkalulla Saltilla (yksi totuus)

Esitiedot

Esitiedot, kertaa nämä.

Opettele komennot ja hakemistot ulkoa. Harjoittele niitä kokeilemalla moneen kertaan Linuxissa.

Aikataulu

Kurssi kestää 8 viikkoa. Edellyttää aktiivista osallistumista etäopetukseen videokonfferensissa lukkariin merkittynä aikana. Läksyt palautetaan 24 h ennen seuraavan oppitunnin alkua ja ristiinarvioidaan kahden luokkakaverin työt. Tämä alustava aikataulu elää kurssin aikana.

Tunnit tiistaisin online 08:00 - 10:45 videokonfferenssina.

PäiväAihe
Perusteet
2025-10-21 w43 Tue1. Hello Salt. Järjestäytyminen: osallistujat, kurssin käytänteet. Keskitetyn hallinnan periaateet, infra koodina. Raportit, git web-käyttö, MarkDown kertaus. Salt asennus. Uusi apt-pakettivarasto. Esimerkkejä tiloista (file.managed).
2025-10-28 w44 Tue2. Infraa koodina. Konfiguraation kirjoittaminen koodiksi. Tietojen kerääminen orjista.
2025-11-04 w45 Tue3. Verkkon yli. Herra-orja -arkkitehtuuri yli. Orjan tavoittaminen tuntemattomasta osoitteesta, NAT ja tulimuurin takaa.
2025-11-11 w46 Tue4. Pkg-file-service eli demonien hallinta. Käsin tehdyn konfiguraation automatisointi.
2025-11-18 w47 Tue5. Versionhallinta. Git: init, clone, add, commit, pull, push, log. GitHub ja muut avustavat palvelut. Omien modulien aloitus., 2 hengen ryhmät.
Soveltaminen
2025-11-25 w48 Tue6. Vierailija Juho Syrjänen, Platform Engineer, Metacore Games: Building a Modern Platform for a Very Non-Cloud Native Workload.
2025-12-02 w49 Tue7. Omien modulien esittely I.
2025-12-09 w50 Tue8. Omien modulien esittely II.

Arviointi

Osien ohjeelliset painoarvot ovat: kotitehtävät 70% ja oma moduli 30%. Arvosana perustuu kokonaisarvioon suorituksista. Kaikki kotitehtävät pitää tehdä ajallaan. Etäopetukseen pitää osallistua aktiivisesti.

Vanhoja toteutuksia

Palvelinten hallinta ICI001AS3A-3008 - 2025p2 loppusyksy

Palvelinten hallinta ICI001AS3A-3010 - 2024 periodi 2, loppusyksy

Vanhoja toteutuksia vuoteen 2018 asti

Läksyt

Palautus 24 h ennen seuraavaa lukujärjestykseen merkittyä aikaa. Weppisivulle (HTML), ja palauta linkki Laksuun. Halutessasi voit laittaa linkin myös kommentiksi tämän sivun perään, niin sivusi saa lisää kävijöitä ja nousee PageRankissa.

Nämä läksyt ovat alustavia. Läksyt ovat virallisia vasta, kun ne on annettu tunnilla. Tämä on edistynyt kurssi, joten pystymme tekemään muutoksia kurssin kuluessa ja sovittamaan läksyt aiheen mukaan. Jos et uskalla tai muuten halua julkaista, voit laittaa weppisivun salasanan taakse (sama salasana koko kurssille ja jokaiselle tehtävälle, ei kirjautumista eri tunnuksilla eri henkilöille) ja jakaa salasanan kurssilaisten kanssa - mutta suosittelen julkaisua. Kotisivutilaa saa esim wordpress.com, github.com, gitlab.com ja monista muista paikoista.

Suosittu ja helppo tapa on laittaa raportit Githubiin.

Kaikki käytetyt lähteet tulee merkitä raporttiin: kurssin tehtäväsivu, kurssikavereiden raportit, man-sivut, kirjat. Mikäli tekoälyltä kysyy neuvoa, se on merkittävä lähteeksi. Tekoälyt hallusinoivat, tiedot on suositeltavaa tarkistaa. Tiivistelmiä tai esseitä ei saa generoida tekoälyllä eikä muilla vastaavilla tekniikoilla, vaan ne on kirjoitettava itse.

Kaikkien ajan säästämiseksi poistan kurssilta ne, jotka eivät palauta tehtäviä ajallaan.

Tekoälyn käyttö: Tällä kurssilla on samat AI säännöt kuin YAMK:n kurssillani: "AI and large language models (LLM): You can ask AI or LLM a question and use the answer as facts for your own answer, written in your own words. AI must be marked as a reference, with details such as prompt (and for advanced users system prompts, temperature, jailbreaks...). LLMs tend to hallucinate, so you should check answers from more reliable sources. It's not allowed to generate text with AI or similar technologies. For example, it's not allowed to generate essay answers or summaries with AI, LLM or similar technologies."

h0 Hei weppi

a) Julkaise oma sivu weppiin. Palauta Laksuun ja ristiinarvioi vähintään kaksi.

Vinkit

h1 Viisikko

Läksyt ovat virallisia vasta, kun ne on annettu tunnilla. Ne voivat muuttua ennen sitä, joten niitä ei tule tehdä etukäteen.

  • x) Lue ja tiivistä. (Tässä x-alakohdassa ei tarvitse tehdä testejä tietokoneella, vain lukeminen tai kuunteleminen ja tiivistelmä riittää. Tiivistämiseen riittää muutama ranskalainen viiva. Ei siis vaadita pitkää eikä essee-muotoista tiivistelmää. Lisää kuhunkin jokin oma kysymys tai huomio.)
  • a) Asenna Debian 13-Trixie virtuaalikoneeseen. (Poikkeuksellisesti tätä alakohtaa ei tarvitse raportoida, jos siinä ei ole mitään ongelmia. Mutta jos on ongelmia, sitten täsmällinen raportti, jotta voidaan ratkoa niitä yhdessä.)
  • b) Asenna Salt (salt-minion) Linuxille (uuteen virtuaalikoneeseesi).
  • c) Viisi tärkeintä. Näytä Linuxissa esimerkit viidestä tärkeimmästä Saltin tilafunktiosta: pkg, file, service, user, cmd. Analysoi ja selitä tulokset.
  • d) Idempotentti. Anna esimerkki idempotenssista. Aja 'salt-call --local' komentoja, analysoi tulokset, selitä miten idempotenssi ilmenee.

Vinkit

  • Tehtävissä tulee tehdä testit tietokoneella ja raportoida tulokset. Pelkkä kuvittelu ei siis riitä. Raporttia tulee kirjoittaa koko ajan samalla kun työskentelee.
  • Artikkeleissa tärkeintä on niiden lukeminen ja ajattelu. Tiivistelmät saavat olla suppeita.
  • Linuxin asentaminen virtuaalikoneeseen: Karvinen 2024: Install Debian on Virtualbox - Updated 2024
  • Tarkista, että olet viitannut kaikkiin lähteisiin. Viitteet tulee löytyä jokaisesta raportista. Jokaiseen lähteeseen tulee viitata, esimerkiksi tehtäväsivuun, ohjeisiin, toisten raportteihin, man-sivuihin... Eli jokaiseen käytettyyn lähteeseen.
  • Tarkistaessa on hyvä katsoa, että vastauksessa on viite ainakin kurssiin ja tehtäväsivuun.
  • Kirjoita rinnakkaisarvioinnissa kurssikavereille palautetta, vinkkejä ja kommentteja
  • Vaikeita kohtia?
    • Ratko kaikki mitä osaat, raportoi ja palauta ajoissa.
    • Vaikeasta tai kesken jääneestä kohdasta erityisen tarkka raportti
      • mitä teit, mitä tapahtui.
      • Ota ruutukaappaukset ja sanatarkat virheilmoitukset talteen.
      • Mistä arvelet ongelman johtuvan?
      • Mitä ratkaisuvaihtoehtoja vielä voisi kokeilla?
      • Löydätkö (esim virheilmoituksella hakemalla) lähteitä, joissa ehdotetaan ratkaisuja?
      • Kaikkia alakohtia pitää yrittää ratkaista
      • Ja katsotaan yhdessä tunnilla ratkaisut.

h2 Infraa koodina

Tuotantoon menevät asetukset tehdään infrana koodina. Tässä opittua rakennetta käytetään siis jatkossa. Pääset myös lukemaan salt:n virallista dokumentaatiota.

  • x) Lue ja tiivistä. (Tässä x-alakohdassa ei tarvitse tehdä testejä tietokoneella, vain lukeminen tai kuunteleminen ja tiivistelmä riittää. Tiivistämiseen riittää muutama ranskalainen viiva.)
  • a) Hei infrakoodi! Kokeile paikallisesti (esim 'sudo salt-call --local') infraa koodina. Kirjota sls-tiedosto, joka tekee esimerkkitiedoston /tmp/ -kansioon.
  • b) Toppping. Tee top-file, niin että kaikki omat tilasi ajetaan kerralla komennolla 'sudo salt-call --local state.apply'.
  • c) Viisikko tiedostossa. Tee erilliset esimerkit kustakin viidestä tärkeimmästä tilafunktiosta pkg, file, service, user, cmd. Kirjoita esimerkit omiksi tiloikseen /srv/salt/ alle, esim /srv/salt/hellopkg/init.sls.
  • d) Tee sls-tiedosto, joka käyttää vähintään kahta eri tilafunktiota näistä: package, file, service, user. Tarkista eri ohjelmalla, että lopputulos on oikea. Osoita useammalla ajolla, että sls-tiedostosi on idempotentti.

Vinkit

  • Näissä vinkeissä komennot ja koodi ovat ulkomuistista, syntaksivirheitiä saattaa olla
  • Infra koodina, ne sls-tiedostot
    • Herran (master) /srv/salt/-kansion alle
    • Omiin kansioihinsa, esimerkiksi /srv/salt/hello/init.sls (ei hujan hajan eli ei /srv/salt/hups.sls)
  • Yhden tilan ajaminen, aja /srv/salt/hellotero/init.sls
    • $ sudo salt-call --local state.apply hellotero
  • Kaikkien tilojen ajaminen, ajaa /srv/salt/top.sls
    • $ sudo salt-call --local state.apply
  • Lisätietoa tiloista, esim. pkg, file, service, user. Sisältää myös esimerkkejä sls-tiedostoista.
    • $ sudo salt-call --local sys.state_doc pkg
  • Less haku /, seuraava n, edellinen N, alku g, loppu G, q quit.

Esimerkki top-filesta /srv/salt/top.sls:

base:
  '*':
    - hellotero
    - apache
    - hellopkg

Eli meillä environment on aina "base". Sen alla on lueteltu orjat, '*' on kaikki, 'web*' on kaikki joiden nimi alkaa "web"... Kunkin orjan nimen alla on lista tiloista, joita sille ajetaan. Top-filen avulla voi määritellä isossakin verkossa, mille koneille tulee mitäkin ohjelmia ja asetuksia. Tähtimerkkien ansiosta top-file voi ottaa kantaa rajattomaan määrään koneita - myös sellaisia, joita ei vielä ole edes olemassa.

h3 Soitto kotiin

  • x) Lue ja tiivistä. (Tässä x-alakohdassa ei tarvitse tehdä testejä tietokoneella, vain lukeminen tai kuunteleminen ja tiivistelmä riittää. Tiivistämiseen riittää muutama ranskalainen viiva. Ei siis vaadita pitkää eikä essee-muotoista tiivistelmää.)
  • a) Hello Vagrant! Osoita jollain komennolla, että Vagrant on asennettu (esim tulostaa vagrantin versionumeron). Jos et ole vielä asentanut niitä, raportoi myös Vagrant ja VirtualBox asennukset. (Jos Vagrant ja VirtualBox on jo asennettu, niiden asennusta ei tarvitse tehdä eikä raportoida uudelleen.)
  • b) Linux Vagrant. Tee Vagrantilla uusi Linux-virtuaalikone.
  • c) Kaksin kaunihimpi. Tee kahden Linux-tietokoneen verkko Vagrantilla. Osoita, että koneet voivat pingata toisiaan.
  • d) Herra-orja verkossa. Demonstroi Salt herra-orja arkkitehtuurin toimintaa kahden Linux-koneen verkossa, jonka teit Vagrantilla. Asenna toiselle koneelle salt-master, toiselle salt-minion. Laita orjan /etc/salt/minion -tiedostoon masterin osoite. Hyväksy avain ja osoita, että herra voi komentaa orjakonetta.
  • e) Kokeile vähintään kahta tilaa verkon yli (viisikosta: pkg, file, service, user, cmd)

Vinkkejä

  • Vagrant ohjaa VirtualBoxia. Se kannattaa asentaa isäntäjärjestelmään, koska virtualisointi toimii heikosti sisäkkäin. Jos et ole vielä täysin Linux-käyttäjä, niin Vagrantin saa myös Windowsille.
    • Lähes kaikki koneet ovat amd64-arkkitehtuurilla. Koskee lähes kaikkia Windows- ja Linux-koneita sekä osaa Maciesta.
    • Harvoja poikkeuksia: Apple Mac M1, M2 ja M3 sekä Raspberry Pi ovat arm64.
  • Vanhoja raportteja Vagrantin ja VirtualBoxin käytöstä löytää Googlella ja Duckilla, esim Salminen 2020.
  • Vinkkejä myös Vagrantin virallisista asennusohjeista
  • Eikö toimi?
    • Tee tarkemmat muistiinpanot, kun kohtaat ongelmia
    • Katso masterin osoite ('hostname -I', 'ip a')
    • Onko orjilla sama osoite /etc/salt/minion, "master: 192.168.88.12"
    • Muistitko käynnistää demonit asetusten muutkosen jälkeen 'sudo systemctl restart salt-minion'
    • Pystytkö testeillä eristämään ongelman?
    • Kehittämään lisää lähestymistapoja?
    • Saatko virheilmoituksia, joilla tehdä hakuja?
    • Voitko ratkaista vastaavan, mutta helpomman ongelman?

Vianselvitystä (ulkomuistista):

$ nc -vz master.example.com 4505 # onko portti ylipäänsä auki
$ nc -vz master.example.com 4506
$ hostname -I

Yhden koneen vagrant-asennus (ulkomuistista):

$ vagrant init debian/bookworm64
$ vagrant up

$ vagrant ssh
vm$ exit

$ vagrant destroy # tuhoaa myös kaikki virtuaalikoneen tiedostot

h4 Pkg-file-service

Itsenäistä opiskelua: 2025-04-16 w16 keskiviikkona ei ole oppituntia.

Apache, MariaDB, PostgreSQL, Nginx, OpenSSHd - kaikki demoneja. Ja kaikki näistä asennetaan suunnilleen samalla tavalla.

Asennetaan itse ohjelma, tehdään asetukset tiedostoon ja lopuksi käynnistetään. Jos asetustiedosto muuttuu, se demoni käynnistetään uudelleen.

Tältä se näyttäisi käsin tehtynä (vastaava salt-funktio # kommenttina):

$ sudo apt-get install ssh	# pkg
$ sudoedit /etc/ssh/sshd_config	# file
$ sudo systemctl start ssh	# service
$ sudo systemctl restart ssh	# service - watch

pkg-file-service on vain automaatio samasta. Service vahtii (watch) tiedostoa, jotta demoni käynnistetään uudelleen asetustiedoston muuttuessa.

  • x) Lue ja tiivistä. (Tässä x-alakohdassa ei tarvitse tehdä testejä tietokoneella, vain lukeminen tai kuunteleminen ja tiivistelmä riittää. Tiivistämiseen riittää muutama ranskalainen viiva.)
    • Karvinen 2018: Pkg-File-Service – Control Daemons with Salt – Change SSH Server Port
      • Artikkelissa on esimerkkinä jonkun toisen Linux-version sshd_config tiedosto. Jos tekisit samanlaisen, niin käyttäisit tietysti oman järjestelmäsi asetustiedostoa pohjana.
      • Nykyisin suosittelen asentamaan jokaisen modulin omaan kansioonsa, eli /srv/salt/ssh/init.sls (eikä hujan hajan /srv/salt/ssh.sls)
  • a) Apache easy mode. Asenna Apache, korvaa sen testisivu ja varmista, että demoni käynnistyy.
    • Ensin käsin, vasta sitten automaattisesti.
    • Kirjoita tila sls-tiedostoon.
    • pkg-file-service
    • Tässä ei tarvita service:ssä watch, koska index.html ei ole asetustiedosto
  • b) SSHouto. Lisää uusi portti, jossa SSHd kuuntelee.
    • Jos käytät Vagrantia, muista jättää portti 22/tcp auki - se on oma yhteytesi koneeseen. SSHd:n asetustiedostoon voi tehdä yksinkertaisesti kaksi "Port" riviä, molemmat portit avataan.
    • Löydät oikean asetuksen katsomalla SSH:n asetustiedostoa
    • Nyt tarvitaan service-watch, jotta demoni käynnistetään uudelleen, jos asetustiedosto muuttuu masterilla
  • c) Vapaaehtoinen, haastavahko tässä vaiheessa: Asenna ja konfiguroi Apache ja Name Based Virtual Host. Sen tulee näyttää palvelimen etusivulla weppisivua. Weppisivun tulee olla muokattavissa käyttäjän oikeuksin, ilman sudoa.
  • d) Vapaaehtoinen, haastava: Caddy. Asenna Caddy tarjoilemaan weppisivua. Weppisivun tulee näkyä palvelimen etusivulla (localhost). HTML:n tulee olla jonkun käyttäjän kotihakemistossa, ja olla muokattavissa normaalin käyttäjän oikeuksin, ilman sudoa.
  • e) Vapaaehtoinen, haastava: Nginx. Asenna Nginx (lausutaan engine-X) tarjoilemaan weppisivua. Weppisivun tulee näkyä palvelimen etusivulla (localhost). HTML:n tulee olla jonkun käyttäjän kotihakemistossa, ja olla muokattavissa normaalin käyttäjän oikeuksin, ilman sudoa.
  • f) Vapaaehtoinen, haastava: PostgreSQL. Asenna PostgreSQL-tietokannanhallintajärjestelmä. Anna jollekin käyttäjälle oma tietokanta. Osoita testillä, että se toimii.

Vinkit

  • Ensin käsin, sitten automaattisesti
  • Testaa
    • Alkutilanne (taikurin hihat tyhjät)
    • Käsin tehty ja toimii
    • Poistettu käsin tehty ennen automaatiota
    • Yksi tilafunktio (esim. file) sls-tiedostossa
    • Lopputilanne, osat
    • Lopputesti - mitä käyttäjä tekisi
  • /etc/ssh/sshd_config
  • Port: 1234
  • nc -vz localhost 1234
  • ssh -p 1234 foo@localhost
  • echo "Hei"|sudo tee /var/www/html/index.html # ainoa tilanne sudotella html-sivua
  • Omat asetustiedostot
    • Kun teet käsin, saat siitä mallin asetustiedostolle (masterin /srv/salt/foo/bar.cfg)
    • Esimerkkidokumenteissa olevat demonien asetustiedostot tuskin toimivat juuri omassa järjestelmässä

h5 Miniprojekti

Loppuhuipennus: projektit esitellään w19 ja w20. Saat soveltaa uusia taitojasi!

Pääset harjoittelemaan teknistä esittämistä huolettomassa ympäristössä omien luokkakavereiden kanssa. Saat myös esittää kysymyksiä, ideoita ja kommentteja kavereiden töihin. Ja samalla näet, mitä muut ovat rakentaneet.

Arvon esitysjärjestyksen ja ilmoitan sen esitysten alussa. Kaikkien projektien tulee olla esitysvalmiina 2025-05-06 w19 Tue 17:40.

Hauskaa vappua: Vappuviikolla ei ole läksyn palautusta, 24h ennen seuraavia oppitunteja riittää. Mutta aloittaa ajoissa!

  • a) Oma miniprojekti.
    • Modernia keskitettyä hallintaa: idempotentti, infra koodina, yksi totuus
    • Idempotentti
      • Pelkkä skritpi (shell script) ei kelpaa, ei myöskään skripti jaettuna kymmeneen peräkkäiseen cmd.run-tilaan
    • Kannattaa testata lopputulos tyhjällä koneella
      • Vapaaehtoista: Jos videoit ruudulta samalla, sinulla on räjähtävien demojen tai tulevien kurssin ulkopuolisten esitysten varalta aina toimiva esitys. Jos laitat videon Youtubeen tai kotisivullesi, sinulla on valmis esitys käytettäväksi myös kurssin jälkeen. Vaikka live-demo on parempi kuin video, parasta on live-demo ja varalla video.
    • Ensin valmista, sitten hienoa.
      • Tee ensin pieni, toimiva kokonaisuus, jonka voisit hätätilassa esittää.
      • Tallenna pieni kokonaisuutesi toimivana esim. kopioimalla kansio
      • Tee sitten tämän toimivan päälle hienot jutut, seuraavat vaiheet ja kurottelumaalit.
      • Kannattaa aloittaa ajoissa ja tehdä joka päivä
      • Kaikki tai ei mitään jotain
  • b) Etusivu. Laita projektisi etusivulle tärkeimmät tiedot
    • Etusivu voi olla esimerkiksi Github-varasto ja tiedot README.md:ssä
    • Yritä laittaa keskeisimmät kohdat "taitoksen yläpuolelle", eli näkymään jo ennen skrollausta
    • Tavoitteena on, että lukija ymmärtää välittömästi ja yhdellä silmäyksellä projektin tarkoituksen (ruutukaappaus + kuvaus)
    • Tiedot
      • Projektin tarkoitus, mieluiten yhdellä lyhyellä virkkeellä. Eli mitä tämä tekee / mihin tätä käytetään / mitä hyötyä tästä on / business purpose.
      • Lisenssi. Saat valita, suosittelen GNU General Public License, version 3.
      • Ruutukaappaus lopputuloksesta
      • Oma nimesi ja mahdollinen kotisivun osoite (Saa toki käyttää myös nimimerkkiä)
      • Latauslinkki (Githubissa asennusohje voi toki olla myös 'git clone ...')
      • Käyttöönotto. Miten kuka tahansa sivulle tulija voi ilman muita ohjeita ajaa projektisi.
      • Voit kirjoittaa suomeksi tai englanniksi; usein ohjelmat dokumentoidaan englanniksi
  • c) Showtime! Valmistaudu pitämään max 7 min esitys projektistasi.
    • Yleisö: kurssin muut opiskelijat
      • Kuulija yleensä miettii aluksi, mitä hyötyä tähän esitykseen keskittymisestä on minulle.
      • Ymmärtääkö kuulija, mitä lopputulos tekee?
      • Kun hyöty on selvillä, kuulija halunnee oppia tekemään saman
    • Tarkoitus ja lopputulos ensin
      • Hovimestari on syyllinen.
      • Yleisö kuuntelee, kun tietää, mitä hyötyä tästä on
    • Esittele itsesi
      • Monissa esityksessi oman nimen ja organisaation esittely on tärkein oma hyöty
    • Demo ois kiva
      • Kannattaa laittaa demo pyörimään heti, kun projektin tarkoitus ja oma nimi on selvillä
      • Salt-ajot vievät usein aikaa, jota ei kannata käyttää odotteluun vaan puhumiseen
      • Kerro kaikki kerrottava sillä aikaa kun salt raksuttaa
    • Kokeile välineet
      • Jitsi-kanavalle pääsee milloin vain
      • Ruudunjako, kamera, mikki
      • Jos haluat kaksi asiakasta, niin 2 tietokonetta tai tietokone ja kännykkä
    • Tästä c-alakohdasta ei tarvitse tehdä raporttia.

Vinkit

  • Katso vanhoja projekteja
    • Kurssisivujen kommenteista
    • Hakukoneista

Tervetuloa esiintymään!

h6 Bonus

Vapaaehtoinen bonus: luettele ja linkitä tähän tekemäsi

  • a) Vapaaehtoiset tehtävät
  • b) Ristiinarvioinnin jälkeen olennaisesti parannetut tehtävät

Tehtävän määräaika on kurssin viimeisen oppitunnin alku. Tämä bonustehtävä on kokonaan vapaaehtoinen.