Palvelinten Hallinta

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-3011 and -3013
Timing2026 period 4, late spring, w13-w20
Credits5 cr
LanguageFinnish (+reading material in English)
FeedbackReached 5.0 / 5 * Excellent feedback Five star experience
Classes-3011 online ke 17:40-20:30. -3013 pa5001 to 11:00-13:45. Both have mandatory participation.
Max students50 online, 40 Pasila. (Come to the first class if you're queuing for place)
RemoteOne course instance -3011 is fully remote. Other -3013 is face-to-face in Pasila pa5001.
First classOnline-3011 2026-03-25 w13 Wed 17:40 Zoom. Pasila-3013 2026-03-26 w13 Thu 11:00 pa5001, bring laptop.
ServicesMoodle: Palvelinten hallinta -3011 online Wednesday evening; -3013 Thursday, 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 (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
w131. Hei maailma. Järjestäytyminen: osallistujat, kurssin käytänteet. Keskitetyn hallinnan periaateet, infra koodina. Raportit, git web-käyttö, MarkDown kertaus. Hei maailma!
w142. Infraa koodina. Konfiguraation kirjoittaminen koodiksi.
w153. Pkg-file-service eli demonien hallinta. Käsin tehdyn konfiguraation automatisointi.
w164. Esimerkkipalvelin. Käytännön esimerkki palvelimen konfiguroinnista.
w175. Versionhallinta. Git: init, clone, add, commit, pull, push, log. GitHub ja muut avustavat palvelut. Omien modulien aloitus., 2 hengen ryhmät.
Soveltaminen
w186. Soveltaminen. Käytännön tekniikoita ja esimerkkejä. Ongelmanratkaisua. / Torstain ryhmällä omien modulien esittely alkaa.
w197. Omien modulien esittely I.
w208. Omien modulien esittely II. (2026-05-14 w20 Thu on Helatorstai, torstain ryhmällä ei tuntia. Keskiviikon ryhmän online-opetus normaalisti.)

Oheismateriaalia, lukemista ja asennuspaketteja

Debian stable 13-trixie levykuva debian-live-13.4.0-amd64-xfce.iso (3.6 GB) Kun uusia versioita tulee, linkki vanhenee. Uusi löytyy samasta kansiosta.

Karvinen 2021: Install Debian on Virtualbox

Karvinen 2023: Create a Web Page Using Github

VirtualBox.org

Karvinen 2020: Command Line Basics Revisited

Ansible Community Documentation

Salo ym 2026: BlueTeamLab. Käynnissä olevassa projektissa rakennetaan SOC-harjoitusympäristöä. Linux, Windows, AD. OpenTofu, Ansible. VirtualBoxia ohjataan OpenTofulla.

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."

h1 Hei Ansiblen maailma

Hei maailma! Yleensä kaikki ohjelmat alkavat siitä. Hei maailma testaa, että ympäristö toimii.

Tässä kotitehtävässä harjoitellaan itse tunnilla kurkattuja ja osin kokeiltuja juttuja, jotta tehtävistä ei tule liian vaikeita. Jos olet aiemmin tehnyt nämä, voit simuloida puhtaan tilanteen - näin tehdään myöhemmin myös IaC-koodeja testatessa. Voit esimerkiksi pysäyttää ja poistaa ssh-demonin, poistaa authorized_keys... Katso vinkit alla.

  • 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) Sshecrets. Asenna SSH-demoni ja testaa se kirjautumalla SSH:lla.
  • b) Pubkey. Automatisoi ssh-kirjautuminen julkisella avaimella.
  • c) Hei Ansible. Tee hei maailma ansiblella ja kokeile sitä SSH:n yli.
  • d) Vapaaehtoinen bonus, vaikea: kokeile Ansiblella jokin näista asetuksista: paketin asennus, asetustiedosto /etc/ alle, käynnistä jokin demoni, tee uusi käyttäjä. Tarvitset todennäköisesti sudoa, become: true.

Kuten aina, palauta linkki Laksuun, ristiinarvioi vähintään 2.

Vinkit

(Komennot alla ulkomuistista)

SSH-demonin poistaminen asennuskokeilua varten. Tämän voi tehdä localhost:lla. Älä tee etänä palvelimelle, tai yhteytesi katkeaa.

$ sudo systemctl stop ssh
$ sudo apt-get purge openssh-server

Julkisen avaimen poistaminen

remote$ mv -v $HOME/.ssh/authorized_keys $HOME/DISABLED_authorized_keys

Ansiblen asetukset voit vaan tehdä uuteen kansioon ja ajaa sieltä.

Testaamatta == tekemättä. Kun asennat tai säädät jotain, osoita testillä, että se toimii.

Eikö toimi? Raportoi erityisen tarkasti, jotta voimme pähkiä sitä tunnilla yhdessä. Myös tarkat virheilmoitukset talteen.

h2 Voileipä

  • 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.)
    • Karvinen 2026: Sudo without password
    • Munroe 2006: xkcd 149: Sandwitch
    • Karvinen 2026: Passwordless Sudo with Ansible
    • Ansiblen sisäänrakennettu dokumentaatio ansible-doc -kommennolla.
      • Kustakin vain
        • Johdantokappale (Usein MODULE alla, päättyy OPTIONS alkuun)
        • Nimetyt optiot selityksineen
        • Esimerkeistä (EXAMPLES) jokin helppo ja keskeinen esimerkki
      • 'ansible-doc copy': content, dest, src; owner, group, mode;
      • 'ansible-doc apt': name, state, update_cache.
      • 'ansible-doc file': path, recurse, src, state. owner, group, mode;
      • 'ansible-doc user': name; create_home, comment, groups, shell, state, system.
      • 'ansible-doc authorized_key': user, key.
  • a) Sudoless. Tee ansiblea varten tunnus, jolla voi käyttää sudoa ilman salasanaa. Sekä ssh-kirjautuminen että sudon käyttö tulee olla ansbilea varten automatisoitu.
  • b) Antero. Tee salasanaton, automaattisesti ssh:lla kirjautuva tunnus Ansiblella.
  • c) Package. Asenna kaksi pakettia ansiblella.
  • d) File. Kirjoita orjalle useamman rivin mittainen tiedosto Ansiblella. Määrittele sen omistaja, omistava ryhmä ja oikeudet. Käytä oikeuksille oktaalinumeroa, esim. "0600". Kerro, mitä oikeudet ovat symbolisessa muodossa, esim. "-rwxr--r--". Selitä, mitä kukin käyttäjä saa tehdä tuolle tiedostolle.
  • e) Jotain muuta. Näytä esimerkki ansiblen käskystä, jota ei ole vielä käsitelty kurssilla tai kotitehtävissä. Voit ottaa jonkun muun modulin kuin apt, file, copy, user tai authorized_key. Tai voit käyttää ominaisuutta, jota ei vielä ole demonstroitu. Jos tiivistystehtävässä x on mainittu ominaisuuksia, joita ei tunneilla tai läksyissä kokeiltu, nekin kelpaavat.

Vinkit

  • Rakenna tila paloittain. Tottakai se toimii kopioimalla malli ja muuttamalla muutama muuttuja. Mutta hetken päästä näitä pitäisi rakentaa myös ilman mallia.
  • 'ansible-doc user', 'ansible-doc --list'
  • Etkö jaksa odottaa?
    • 'ansible-doc --list > doc-list.txt'
    • helppolukuisempana 'ansible-doc --list|grep -oP '^\S+'>doc-list.txt'
  • Paketin asennus: apt
  • File:
    • copy: src: foo.txt -> roles/superd/files/foo.txt

h3 Demoni

Package, file, service

  • 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) Apassi. Asenna Apache 2 käsin. Weppisivun tulee näkyä palvelimen etusivulla. Sivun tulee olla tavallisen käyttäjän muokattavissa, ilman root- tai sudo-oikeuksia.
  • b) Moottorix. Asenna Nginx käsin. Weppisivun tulee näkyä palvelimen etusivulla. Sivun tulee olla tavallisen käyttäjän muokattavissa, ilman root- tai sudo-oikeuksia. (Muista sammuttaa Apache ensin.)
  • c) Automoottorix. Automatisoi Nginx asennus Ansiblella. Ylläpitäjän osuus Ansiblella riittää, itse HTML-weppisivut voi tehdä käsin.
  • d) Vapaaehtoinen bonus: Osiris-T. Osiris-T asentaa Wazuhin ja tarvittavat virtuaalikoneet. Voit lähettää vihamielistä verkkoliikennettä (tcpreplay), siepata sen (suricata) ja saat tulokset suoraan dashboardille (wazuh). Enemmän alpha kuin se kreikkalainen kirjain. Mutta Oskari, Nico ja Arttu ilahtuvat, jos kokeilet. Häkämies, Saario, Mukkula 2026: Osiris-T. Häkämies etal 2026: How to Install.

Vinkit

  • Ensin käsin, sitten automaattisesti
  • Pienen testattava kokonaisuus kerrallaan
  • Lue lokeja. Weppipalvelimen virheilmoitukset ovat lokeissa, käyttäjälle näkyvä weppisivu ei kerro juuri mitään.
  • Kaksi demonia ei voi kuunnella samaa porttia. Sulje siis nginx ennen apachen asennusta ja päinvastoin.
  • 'ansible-doc apt': name, state, update_cache. EXAMPLES.
  • 'ansible-doc copy': dest, src; owner, group, mode. EXAMPLES.
  • 'ansible-doc file': src, dest, state. owner, group. EXAMPLES.
  • nginx asennus on samantapainen kuin Apachen
    • sites-available/default - tiedoston lopussa on esimerkki yksinkertaisesta konfiguraatiosta
    • 'sudo nginx -t' on samantapainen kuin 'sudo apache2ctl configtest'
  • Kotisivut käyttäjänä
    • Weppipalvelin pyörinee käyttäjänä www-data, ryhmä www-data. Jos tiedoston omistaa tero:tero, niin www-data on others eli viimeiset kolme kirjainta.
    • Jotta se näkee sivut, kansioihin pitää olla x-oikeus ja tiedostoihin r.
    • /home/tero/publicsite/index.html
      • chmod ugo+x /home/tero/
      • chmod ugo+x /home/tero/publicsite/
      • chmod ugo+r /home/tero/publicsite/index.html
    • Tarkista oikeudet 'ls -t' ja 'stat'

h4 Pizza Fantasia

  • 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) Räpylä. Asenna itse valitsemasi demoni käsin. Jokin muu kuin tunnilla tai kotitehtävissä aiemmin asennettu, eli ei apache, ngninx eikä openssh-server. Kuten aina, testaa lopputulos.
  • b) Automaatti. Automatisoi valitsemasi demonin asennus Ansiblella.
  • c) Asetus. Muuta asetustiedostoa herralla (master, "control node") ja aja ansible uudestaan. Osoita, että asetukset tulivat käyttöön.
  • d) Paikka remonttiin. Riko jotain asetuksia. Voit esimerkiksi poistaa demonin 'sudo apt-get purge foobar' (purge poistaa myös asetustiedostoja), poistaa asennuksen yhteydessä tulevan kansion (sudo rm -r /etc/foobar/ # vaarallista) tms. Ja sitten ajaa ansible-roolisi uudestaan ja todeta, että se korjaa tilanteen.
  • e) Idempotentti. Osoita, että tilasi on idempotentti.

Vinkit

  • CM: configuration management
  • DSL: domain specific language. Yhteen käyttötarkoitukseen tehty kieli. Esim Ansiblen oma kieli, jolla määrittelemme konfiguraatiota.
  • Kannattaa valita demoni, joka löytyy suoraan Debian 13 varastoista apt-get:lla.
  • Esimerkkejä: postgresql, caddy, mariadb, haproxy, varnish
  • Nämä voivat olla mutkikkaampia: samba, nfs, jokin ftp-palvelin, jokin vaihtoehtoinen ssh, jokin dhcpd, jokin tftpd

h5 Gitar Hero

Oman miniprojektin aihetta kannattaa jo haudutella. Ensimmäiset julkaissevat jo parin kanssa tehdyn ensimmäisen version.

  • 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. Kannattaa lisätä mukaan myös jokin oma havainto, idea tai kysymys.)
    • Chacon and Straub 2014: Pro Git, 2ed: 1.3 Getting Started - What is Git?
    • Gitin käyttö on lähinnä 'git add --all && git commit; git pull && git push'. Selitä tuon komennon jokainen osa. Käytä apuna itse valitsemiasi lähteitä ja viittaa niihin.
  • a) Online. Tee uusi varasto GitHubiin (tai Gitlabiin tai mihin vain vastaavaan palveluun). Varaston nimessä ja lyhyessä kuvauksessa tulee olla sana "sunshine". Aiemmin tehty varasto ei kelpaa. (Muista tehdä varastoon tiedostoja luomisvaiheessa, esim README.md ja GNU General Public License 3) Edistyneemmille voi olla hauskaa etsiä ja kokeilla jokin muu palvelu kuin Github.
  • b) Dolly. Kloonaa edellisessä kohdassa tehty uusi varasto itsellesi, tee muutoksia omalla koneella, puske ne palvelimelle, ja näytä, että ne ilmestyvät weppiliittymään.
  • c) Doh! Tee tyhmä muutos gittiin, älä tee commit:tia. Tuhoa huonot muutokset ‘git reset --hard’. Huomaa, että tässä toiminnossa ei ole peruutusnappia.
  • d) Tukki. Tarkastele ja selitä varastosi lokia. Näytä myös, mitä muutoksia tiedostoihin on tehty. Tarkista, että nimesi ja sähköpostiosoitteesi näkyy haluamallasi tavalla ja korjaa tarvittaessa.
  • e) Gitanbile. Laita Ansible-kansio versionhallintaan. Tee jokin muutos, aja ansiblella, tallenna versio (commit).
  • f) Hae pari projektiin Moodlen keskustelusta. (Tästä alakohdasta f ei tarvitse tehdä vaiheittaista teknistä raporttia, riittää kun toteat, että pari on hankittu.)
  • g) Vapaaehtoinen: Se toinen järjestelmä: kokeile Gittiä eri käyttöjärjestelmällä kuin sillä, millä teit muut harjoitukset. Selitä niin, että kyseistä järjestelmää osaamatonkin onnistuu. Mahdollisuuksia on runsaasti: Debian, Fedora, Windows, OSX...
  • h) Vapaaehtoinen: yhteistyötä: anna kaverillesi (tai alter egollesi) oikeus kirjoittaa varastoosi (commit access). Tehkää molemmat muutoksia varastoon gitillä.

Vinkkejä

  • Kannattaa käyttää SSH-osoitetta varastoa kloonatessa, kirjautuminen julkisella ssh-avaimella
  • ssh-keygen (enter, enter, enter), cat $HOME/.ssh/id*.pub, Github: Settings: SSH keys... Vain julkisen avaimen - sen mikä päättyy .pub - saa julkaista ja tallettaa Githubiin.
  • Github-varaston sivulta Code: SSH. git clone https://github.com/hattupuu/earplotter.git ; cd earplotter
  • git pull
  • git add --all && git commit; git pull && git push
  • git log --patch
  • git config --global user.email "tonystudent@example.com"
  • git config --global user.name "Tony Student"
  • Commit message
    • Miksi? Miksi tämä commit on tehty? (Ne tiedostot ja muutokset näkyvät joka tapauksessa 'git log --patch', joten commit messagen kannattaa kertoa se syy: miksi, why?
    • Yksi englanninkielinen virke määräysmuodossa ja nykyajassa: "Add reverse thurst estimation to main view"
  • GitHub-varastoon kannattaa tehdä tiedostoja luomisvaiheessa, suosittelen tekemään README.md ja vapaista lisensseistä itse tykkään GPLv3 eli GNU General Public License, version 3. Oman työsi lisenssin saat itse valita.
  • Karvinen 2021: Install Debian on VirtualBox
  • Microsoft 2023: Get a Windows 11 development environment: Download a virtual machine: VirtualBox
  • Jos menet olemassaolevaan projektiin (työpaikalla, open source)... opiskele projektin käytännöt ja käytä niitä
  • https://github.com/terokarvinen/suolax Salt-tiloja, jotka voi ajaa suoraan salt-varastosta
  • Git asennuspaketit Windowsille ja Macille https://git-scm.com/downloads
  • Macilla 'brew' saattaa olla myös kätevä työkalu Gitin asentamiseen
  • Linuxille Git asentuu helpoimmin paketinhallinnasta: 'sudo apt-get update; sudo apt-get -y install git'

h6 Miniprojekti

Loppuhuipennus: projektit esitellään kurssin lopussa. 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 2026-05-05 w19 tiistaina (ja torstain ryhmällä päivää myöhemmin ke).

  • 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!

Huomaa myös vapaaehtoinen h8.

h8 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 h8 määräaika on kurssin 24 h ennen viimeisen oppitunnin alkuao. Tämä bonustehtävä on kokonaan vapaaehtoinen.

Adminstrivia

Sudo logo my Mark Stillman 2019, received under CC-BY-4.0.

Apache httpd logo is a trademark of The Apache Software Foundation.