EXAM asennusohjeet v2.0.2

Samankaltaiset tiedostot
EXAM asennusohjeet v1.2

EXAM asennusohjeet v3.1.x

EXAM asennusohjeet v4.0.x

EXAM asennusohjeet v3.3.x

FinFamily PostgreSQL installation ( ) FinFamily PostgreSQL

Exam.csc.fi Exam-palvelun dokumentaatio

Haka-palveluiden valvonta ja tilastointi AAIEye -työkalun avulla. Mika Suvanto, CSC

FinFamily Installation and importing data ( ) FinFamily Asennus / Installation

Asennusohje. Sahara-ryhmä. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Valppaan asennus- ja käyttöohje

Asennusohje. Sahara-ryhmä. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

server "Ismo" $ uname -a Linux ismo #1 SMP Thu Sep 16 19:35:51 UTC 2010 i686 GNU/Linux $ cat /etc/issue Debian GNU/Linux 5.

Security server v6 installation requirements

Security server v6 installation requirements

Examin vaatimat integraatiot: ohjeet

Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä:

LINUX-HARJOITUS, MYSQL

Selvitysraportti. MySQL serverin asennus Windows ympäristöön

rikunsivut.dy.fi RaspberryPi asennus ohje Perus asennus

Asennusohje. Sahara-ryhmä. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.4.0

Kieliteknologian ATK-ympäristö Toinen luento

Outlookin konfigurointi. Huoltamosähköposti Sonerahosted

Asennusohjeet HIITed palvelun asentamiseen

Linux - käyttöoikeudet

Luento 5. Timo Savola. 28. huhtikuuta 2006

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

Lab SBS3.FARM_Hyper-V - Navigating a SharePoint site

Sähköpostitilin käyttöönotto

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

HAMINETTI WLAN LIITTYMÄN KÄYTTÖÖNOTTO-OHJE

MY STANDARD -OHJE. mystandard.hansaworld.com. Standard ERP Pilvipalvelu Sivu 1/6

Service Provider. Shibboleth-asennuskoulutus Timo Mustonen. CSC Tieteen tietotekniikan keskus Oy CSC IT Center for Science Ltd.

Tikon Ostolaskujenkäsittely versio SP1

Opettajan ohje kypsyysnäytteen toteuttamiseen ja arvioimiseen sähköisenä Exam-tenttinä

KYMENLAAKSON AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma / Tietoverkkotekniikka. Joni Korjala APACHE WWW-PALVELIN Seminaarityö 2012

2 Asennuksen poistaminen Uninstall.sh Esiasetukset Sivuston poisto Mush Mush.sh Komennot...

TEHTÄVÄ 4: Microsoft Windows Deployment Services asennus ja hallinta

Käytin tehtävän tekemiseen Xubuntu käyttöjärjestelmää aikaisemmin tekemältäni LiveUSB-tikulta.

Outlook Office 365. Tässä ohjeessa kuvataan miten sähköpostitili (IMAP) sekä Kotisivut.com Autentikoiva SMTPlisäpalvelu

Windows Server 2012 asentaminen ja käyttöönotto, Serverin pyörittämisen takia tarvitaan

SSH Secure Shell & SSH File Transfer

Tapahtumakalenteri & Jäsentietojärjestelmä Ylläpito

Päivitys käyttäen USB-tikkua

Ennen varmenteen asennusta varmista seuraavat asiat:

Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.3.0

JOVISION IP-KAMERA Käyttöohje

Pika-asennusohjeet Suomeksi

You can check above like this: Start->Control Panel->Programs->find if Microsoft Lync or Microsoft Lync Attendeed is listed

Käyttöohje. MAITO metadatan hallintatyökalu. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

CLOUDBACKUP TSM varmistusohjelmiston asennus

Network Video Recorder. Pika-asennusohje

NAVITA BUDJETTIJÄRJESTELMÄN ENSIASENNUS PALVELIMELLE

Febdok 6.0 paikallisversion asennus OHJEISTUS

Maventa Connector Käyttöohje

Asennusohje. Sahara-ryhmä. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

TIETOKONEYLIASENTAJAN ERIKOISAMMATTITUTKINTO

Olet tehnyt hyvän valinnan hankkiessasi kotimaisen StorageIT varmuuskopiointipalvelun.

Tikon Ostolaskujenkäsittely versio 6.2.0

UCOT-Sovellusprojekti. Asennusohje

erasmartcardkortinlukijaohjelmiston

Käyttöohje. Ipa. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteenlaitos

Aditro Tikon ostolaskujen käsittely versio 6.2.0

SuomiCom-sähköpostiasetukset Microsoft Outlook 2016

Mainosankkuri.fi-palvelun käyttöohjeita

Ohje kehitysympäristöstä. Dokumentti: Ohje kehitysympäristöstä.doc Päiväys: Projekti : AgileElephant

TIETOKONEYLIASENTAJAN ERIKOISAMMATTITUTKINTO

NETTIKIOSKIN ASENNUSOHJE. Ubuntu LTS

TW-LTE 4G/3G. USB-modeemi (USB 2.0)

nginx sudo add-apt-repository ppa:nginx/stable Jos add-apt-repository -komentoa ei löydy: apt-get install software-properties-common

Käyttöohje Suomen Pankin DCS2-järjestelmään rekisteröityminen

Yleinen ohjeistus Windows tehtävään.

HP ProBook 430 G5 kannettavien käyttöönotto

Viestit-palvelun viranomaisliittymän ohjelmointiohje. Java-esimerkki

Kytkimet, reitittimet, palomuurit

1. NetBeans-ohjelman asennus ja käyttöönotto pva

KONEISTUSKOKOONPANON TEKEMINEN NX10-YMPÄRISTÖSSÄ

AXXION OY. Hosting-palvelut Asiakasohjeistus Versio 1.0

Tietokantojen hallinta

Ensimmäisessä vaiheessa ladataan KGU tietokanta Hallitse tietokantoja toiminnon avulla.

TEHTÄVÄ 3: * Tehtävä 1, ** Tehtävä 2

Luento 3. Timo Savola. 7. huhtikuuta 2006

Yksittäisasennus eli perusasennus

Luento 4. Timo Savola. 21. huhtikuuta 2006

Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.3.0

PAROC CALCULUS LASKENTAOHJELMA TIETOKONEELLE ASENNETTAVA VERSIO. Latausohjeet Asennusohjeet

Novapoint Lisensiointi. Copyright 2006, ViaNova IT AS. All rights reserved 1

Aloita oman blogisi luominen (järjestelmä lupaa sen tapahtuvan sekunneissa ;-))

Mathcad Flexnet lisenssipalvelimen asennus

HY:n alustava ehdotus käyttäjähallintotuotteesta

Kylänetti projektin sivustojen käyttöohjeita Dokumentin versio 2.10 Historia : 1.0, 1.2, 1.6 Tero Liljamo / Deserthouse, päivitetty 25.8.

Kirjasto Relaatiotietokannat Kevät Auvinen Annemari Niemi Anu Passoja Jonna Pulli Jari Tersa Tiina

FTP -AINEISTOSIIRRON OHJE PC / MAC Ympäristö

Kieliteknologian ATK-ympäristö Kuudes luento

Käyttäjienhallintatyökalu

Visma Document Center 8.01 Asennus ja päivitys (Visma Nova) Ohje

Suomi.fi-palveluväylä Liityntäpalvelimen asentaminen kehitysympäristöön liityttäessä (RHEL7)

1. Luo tunnus Autodeskin opiskelijasivustoon oppilaitoksen antamalla sähköpostiosoitteella -

Lync Online. Järjestelmänvalvojan perusopas

Transkriptio:

EXAM asennusohjeet v2.0.2 Järjestelmäriippuvuudet Tietokanta Apache & Shibboleth Exam-applikaatio Examin asetukset HTTP-proxyyn liittyvät asetukset Play-salasana Tietokantayhteys Käyttäjäroolien määritys Hostname Sähköpostiasetukset Järjestelmän sähköpostiosoite Opintohallintajärjestelmän URL Opintojaksohaun tiedot Järjestelmän alustusdata Liitetiedostojen hakemisto Tenttien oletuskestot Oletusaikavyöhyke Arvosana-asteikon muokattavuus Osallistumisoikeuden tarkistus Liitetiedoston maksimikoko Examin kännistys Käynnistys konsolissa Käynnistys palveluna Pääkäyttäjien lisääminen Logitiedot Järjestelmän päivittäminen Pääsy Examin lähdekoodirepositorioon avataan pyynnöstä. Pyynnöt vastaanottaa kristiina.uolia (at)csc.. Exam pyörii Typesafe Activator -työkalun avulla, Play-sovelluspalvelimen päällä ja ulkopuolisen HTTP-palvelimen takana. Autentikointi ja autorisointi on ulkoistettu shibbolethin SSO-toteutukselle, josta vastaavat eri HAKA-organisaatiot. Aiemmista ohjeista muuttuneet kohdat on merkattu symbolilla Järjestelmäriippuvuudet Riippuen käyttöjärjestelmästä, aseta aikavyöhykkeeksi UTC ja käytössä olevan lokaalin oletusenkoodaukseksi UTF-8. Jotta ne asetetaan palvelimen käynnistyessä, tulee ne asettaa proilitiedostossa, RHEL 6 -palvelimella esimerkiksi näin. $ sudo vi /etc/environment -> kirjoita TZ=UTC LC_ALL=en_US.UTF-8 Asenna Oraclen Java versio 1.7 tai 1.8, esim: $ wget --no-check-certicate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u40-b26/jdk-8u40-linux-x64.rpm $ sudo rpm -ivh jdk-8u40-linux-x64.rpm # Repositorysta $ sudo yum install java-1.8.0-openjdk-devel.x86_64

Asenna koneelle ruby ja siihen sass gem, esimerkiksi: $ sudo yum install ruby rubygems $ sudo gem install sass Lataa, pura ja halutessasi lisää myös PATH:iin Typesafe Activator osoitteesta http://downloads.typesafe.com/typesafe-activat or/1.3.2/typesafe-activator-1.3.2.zip, esimerkiksi: $ wget http://downloads.typesafe.com/typesafe-activator/1.3.2/typesafe-activator-1.3.2.zip $ sudo unzip typesafe-activator-1.3.2.zip -d /opt $ export PATH=$PATH:/opt/activator-1.3.2 Asenna Apache HTTP-palvelin, versio 2.2.15 tai uudempi, esim: $ sudo yum install httpd $ sudo chkcong --add httpd $ sudo chkcong httpd on... Asenna postgresql, versio 8.4.20 tai uudempi (ks. esim https://wiki.postgresql.org/wiki/yum_installation). $ sudo vi etc/yum/pluginconf.d/rhnplugin.conf -> lisää osion 'main' alle: exclude=postgresql* # Suora lataus - käytä mieluummin repoasennusta $ sudo yum localinstall http://yum.postgresql.org/9.4/redhat/rhel-6-x86_64/pgdg-redhat94-9.4-1.noarch.rpm # HUOM! Reposta asennusta varten, tulee postgresql94-kanava olla asetettuna palvelimelle. # Reposta $ sudo yum install postgresql94-server $ sudo chkcong postgresql-9.4 on $ sudo service postgresql-9.4 initdb # Huom, mikäli asennus epäonnistuu sertikaattivirheeseen, tulee se laittaa käsin. Muokkaa postgresql-serverin autentikointiasetuksia. Ilmeisesti Play ei saa yhteyttä tietokantaan oletuksena olevaa ident-tunnistautumismetodia käytettäessä, joten on suositeltavaa vaihtaa IP:n yli tapahtuvien yhteyksien autentikointimetodiksi md5. Lokaalisti voi luottaa yhteyden olevan autentikoitu, jos haluaa.

$ sudo -u postgres vi /var/lib/pgsql/9.4/data/pg_hba.conf -> muokkaa tiedoston lopussa olevia asetuksia vaikka näin # TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only local all all trust # IPv4 local connections: host all all 127.0.0.1/32 md5 # IPv6 local connections: host all all ::1/128 md5 Varmista, että tietokantapalvelimen aikavyöhyke on UTC: $ sudo -u postgres vi /var/lib/pgsql/9.4/data/postgresql.conf -> muokkaa kohdat timezone ja log_timezone tämän näköisiksi timezone = 'UTC' log_timezone = 'UTC' Käynnistä tietokantapalvelin: $ sudo service postgresql-9.4 start Asenna Git, esim: $ sudo yum install git UUSI! Asenna NodeJS ja grunt, esim: $ sudo -i $ curl -sl https://rpm.nodesource.com/setup bash - $ yum install -y nodejs $ npm install -g grunt-cli $ exit Tietokanta Luo palvelimelle tietokanta sitnet ja käyttäjä haluamillasi tunnuksilla, esimerkiksi: $ createuser -Upostgres -SPRD sitnet $ createdb -Upostgres --owner=sitnet sitnet Jos kaikki on mennyt oikein, seuraavan kirjautumisen pitäisi onnistua: $ psql -Usitnet sitnet psql (9.4.1) Type "help" for help. sitnet=>

Poistu psql-konsolista komennolla \q Jos haluat importata tietokannan dumpista: $ psql -Upostgres sitnet < /tmp/sitnet-dump.psql Jos haluat ajaa integraatiotestejä tarvitset lisäksi testitietokannan: $ createdb -Upostgres --owner=sitnet sitnet_test Apache & Shibboleth Lisää reverse proxy Exam-järjestelmälle. Apachen tai valitun http-proxyn konguraatioon tulee myös organisaatiokohtaiset shibboleth-asetukset. Portti 9000 on Playn oletusportti. Esimerkki: <VirtualHost 193.166.44.29:443> ProxyPreserveHost On ServerName https://sitnet01.csc. # no proxy for Shibboleth ProxyPass /Shibboleth.sso/! ProxyPass / http://127.0.0.1:9000/ ProxyPassReverse / http://127.0.0.1:9000/ # Shibboleth-kirjautumista varten koko asennus Shibboleth-suojauksen taakse <Location "/"> AuthType shibboleth ShibRequestSetting requiresession 1 # http headereita ei saisi käyttää, mutta tämä on nyt ainoa vaihtoehto ShibUseHeaders On # tämä olisi suositusten mukainen tapa välittää käyttäjäattribuutit, mutta Play Framework ei tue AJP-protokollaa, joka edellytyksenä # ShibUseEnvironment On require valid-user </Location> </VirtualHost> Examiin on toteutettu rajapinta opintosuoritusten hakua varten. Exam ei rajoita pääsyä tähän polkuun mitenkään, joten se tehdään apachen conguraatioissa: <Location /integration/record*/*> Satisfy Any Allow from 156.34.232.3 </Location> Kun konguroit shibbolethia seuraavat attribuutit (attribute-map.xml) pitäisi headerien mukana saada Exam-järjestelmään asti: Nimi Käyttö Pakollinen Muuta unscoped-afliation käyttäjärooli eppn käyttäjätunnus

mail sähköpostiosoite sn sukunimi displayname etunimi Shib-Session-ID Shibboleth-istunnon tunniste preferredlanguage kieli oletus on englanti schacpersonaluniquecode opiskelijanumero tieto vaaditaan, jos opiskeluoikeuden tarkistus kolmannen osapuolen järjestelmästä on käytössä employeenumber työntekijän numero kirjataan suoritukselle opettajan osalta logouturl Shibboleth IdP -uloskirjautumisen URL URL, jonne käyttäjä ohjataan exam-uloskirjautumisen jälkeen IdP-uloskirjautumista varten Attribuutit tulee olla URL-enkoodattuna: shibboleth2.xml <!-- To customize behavior for specic resources on Apache, and to link vhosts or resources to ApplicationOverride settings below, use web server options/commands. See https://wiki.shibboleth.net/confluence/display/shib2/nativespcongurationelements for help. For examples with the RequestMap XML syntax instead, see the example-shibboleth2.xml le, and the https://wiki.shibboleth.net/confluence/display/shib2/nativesprequestmaphowto topic. --> <RequestMapper type="native"> <RequestMap applicationid="default" encoding="url">... Exam-applikaatio Lisää järjestelmään haluamallasi tavalla rajoitettu käyttäjä/rooli (tässä: sitnet/sitnet) $ sudo groupadd sitnet $ sudo useradd -s /bin/bash -g sitnet -d /home/sitnet sitnet $ sudo passwd sitnet $ sudo chown -R sitnet.sitnet /opt/exam $ sudo chmod 755 /opt/exam Ota gitiä apuna käyttäen examin-lähdekoodi repositoriosta haluamaasi hakemistoon (tässä käytetään /opt/exam -hakemistoa) $ cd /opt/exam; sudo -u sitnet git clone https://username@source.csc./scm/git/sitnet/sitnet Luo examin tarvitsemat hakemistot ja anna niille tarvittavat oikeudet, esimerkiksi:

$ sudo -u sitnet mkdir -p /opt/exam/sitnet/data/reports $ sudo -u sitnet mkdir -p /opt/exam/sitnet/data/attachments/question $ sudo -u sitnet mkdir -p /opt/exam/sitnet/data/attachments/exam Anna lisäksi exam-käyttäjälle oikeudet ajaa activatoria: $ sudo chown -R sitnet.sitnet /opt/activator-1.3.2 UUTTA! Lopuksi optimoi käyttöliittymän koodit grunt-työkalulla. Tämä pitää tehdä ennen Examin käynnistystä. $ sudo -u sitnet npm install $ sudo -u sitnet grunt Tämä pakkaa examin käyttöliittymäkoodin tiedostoon public/app/exam.min.js josta se on applikaation käytettävissä. Examin asetukset Asetuksia muokataan asetustiedostojen kautta. Tiedostot sijaitsevat hakemistossa conf. Oletuksena Play käyttää tiedostoa conf/application.conf, mutta tämän voi ohittaa määrittelemällä vaihtoehtoisen asennustiedoston antamalla käynnistysskriptille argumentin -Dcong.le=conf/mycong.conf. HTTP-proxyyn liittyvät asetukset Jos reverse proxy on eri palvelimella (eri IP-osoitteessa) kuin EXAM, täytyy Play eksplisiittisesti konguroida luottamaan X-Forwarded-For-headerin sisältämään osoitetietoon. Käyttäjän IP:tä käytetään tarkistettaessa onko käyttäjä varaamallansa tenttikoneella tentin alkaessa. Oletusarvoisesti Play ei luota X-Forwared-For-headeriin, jos proxy on eri IP:ssä kuin Play-applikaatio. trustxforwarded=true Play-salasana Play käyttää applikaatiokohtaista salasanaa mm. sessioavainten allekirjoitukseen ja enkryptaustoimintoihin. Salasana on vapaavalintainen ja sen voi määrittää asetustiedostossa # Secret key # ~~~~~ # The secret key is used to secure cryptographics functions. # If you deploy your application to several instances be sure to use the same key! application.secret="changeme" mutta suositeltavampaa on antaa salasana EXAMIn käynnistysskriptissä parametrina: $ exam -Dapplication.secret="]R[rkByZ0y=v[I1y7R[@4/SjJKcUNdj[J/vuhIKDTRvrmxj?RP;8=tfqjQgZS9>F " Salasanan voi generoida mm. näin

$ activator [info] Loading project denition from /opt/exam/sitnet/project [info] Set current project to exam (in build le:/opt/exam/sitnet/) [exam] $ play-generate-secret [info] Generated new secret: z/ea_ec=qal0hxzt`fy4]@e[9woba/o2qlog[lyvlrutvl?=nem50xg7@qfm=g=c [success] Total time: 0 s, completed Apr 8, 2015 9:53:56 AM Lisätietoa: https://www.playframework.com/documentation/2.3.8/applicationsecret Tietokantayhteys Yhteysparametrit examin tietokantaan täytyy määrittää asetustiedostossa. Jos tietokanta on luotu tässä dokumentissa kuvatulla tavalla, näyttävät parametrit tältä: db.default.driver=org.postgresql.driver db.default.url="jdbc:postgresql://localhost/sitnet" db.default.user=sitnet db.default.password=sitnet Käyttäjäroolien määritys Exam tukee kolmea käyttäjäroolia: opettaja opiskelija pääkäyttäjä Käyttäjärooli asetetaan käyttäjälle kun hän kirjautuu järjestelmään ensimmäisen kerran HAKA:n kautta unscoped-afliation attribuutin mukaan. Koska unscoped-afliation attribuutin käyttö ei ole yhdenmukaista eri organisatioissa, Examin konguraatiossa voidaan määrätä mitä Examin roolia unscoped-afliation arvot vastaavat. esimerkiksi: sitnet.roles.student="student" sitnet.roles.teacher="faculty,afliate,alum" sitnet.roles.admin="staff" Unscoped-afliation attribuutti voi sisältää myös useamman roolin puolipisteillä erotettuna. Tässä tapauksessa exam vertailee kutakin roolia omiin määrityksiinsä ja ensimmäisen osuman kohdalla asettaa käyttäjälle kyseisen roolin (eli jos vaikka unscoped-afliation on "x;y;z" ja examin määrityksessä olisi vaikkapa sitnet.roles.teacher="a;b;z;", tulisi käyttäjärooliksi teacher eli opettaja. Hostname Järjestelmän hostname asetetaan sitnet.application.hostname muuttujaan. Muuttujaa käytetään mm. erilaisten linkkien generoinnissa. sitnet.application.hostname="https://exam.oulu." Sähköpostiasetukset Exam lähettää erilaisia muistutusviestejä ja raportteja sähköpostilla. Sähköpostiasetukset konguroidaan asetustiedostossa

smtp.host=smtp.yliopisto. smtp.port=587 smtp.ssl=true smtp.tls=true smtp.user="exam@yliopisto." smtp.password="111111111" Järjestelmän sähköpostiosoite Osoite, jolla järjestelmän lähettämät sähköpostit lähtevät vastaanottajalle. # mail address for the system, appears in From-header of emails sent by the app. sitnet.email.system.account="no-reply@exam.edu" Opintohallintajärjestelmän URL Opintohallintajärjestelmän osoite asetetaan muuttujaan. Muuttujaa käytetään mm. sähköpostiviesteissä linkkien generointiin, esimerkiksi: sitnet.basesystemurl="https://weboodi.oulu./oodi/" Opintojaksohaun tiedot Opintojaksoja voi hakea ulkopuolisesta järjestelmästä. Haun saa päälle asettamalla käytettävä URL määritetään erikseen: sitnet.integration.courseunitinfo.active=true. Haussa # external course interface in use: true=on, false=off sitnet.integration.courseunitinfo.active=true sitnet.integration.courseunitinfo.url="http://winoodi.csc.:8180/kshj/resources/v1/ex am/courseinfo" Järjestelmän alustusdata Exam vaatii toimiakseen joitain pakollisia tietoja, joilla tietokanta alustetaan ensimmäisen käynnistyksen yhteydessä. Tuotantoasennuksen alustusdata löytyy conf/production-initial-data.yml -tiedostosta. production-initial-data.yml ladataan, jos asetuksissa on määritelty sitnet.productio n.initial.data="true", muussa tapauksessa tietokanta alustetaan initial-data.yml tiedostolla (kehitysvaiheen testidata). sitnet.production.initial.data="true" Liitetiedostojen hakemisto Exam tallentaa tenttiin ja kysymyksiin liittyvät tiedostot levylle. Tiedostojen juurihakemiston polku voidaan asettaa koguraatiotiedostossa olevaan muuttujaan. Jos polku ei ole absoluuttinen, luodaan hakemisto suhteessa examin juurihakemistoon (/opt/exam/sitnet/target/universal/stage). Huomioithan että examin käyttäjällä on kirjoitusoikeudet kyseiseen hakemistoon. # Attachment directory sitnet.attachments.path=/var/lib/exam/attachments

Tenttien oletuskestot Tenttien mahdolliset kestot minuuteissa määritellään asetuksissa: # exam durations available for choosing, in minutes sitnet.exam.durations="45,90,110,180" Oletusaikavyöhyke Käyttäjien oletusaikavyöhyke, jota käytetään mm. tenttitilojen kulloisenkin kellonajan määritykseen ja ajan esittämiseen sähköposteissa. Jos oletuksena on, että tenttitilat ja järjestelmän käyttäjät ovat pääasiassa Suomessa, kannattaa käyttää oletusarvoa: # application timezone, used for: # - formatting timestamps in emails to users # - setting default timezone for exam rooms, this affects how and when they are eligible for reservations # - deciding the moment when user should be having an exam, system needs to take possible DST into consideration # For allowed values see: http://joda-time.sourceforge.net/timezones.html sitnet.application.timezone="europe/helsinki" Arvosana-asteikon muokattavuus Tällä asetuksella voidaan estää opettajaa muuttamasta arvosana-asteikkoa tekemilleen tenteille. Asetus on järkevää ottaa pois käytöstä silloin, kun halutaan että opintojaksolle määritelty arvosana-asteikko määrittää aina myös kaikkien siihen kuuluvien tenttien asteikot. # Enable / disable possibility of users to override course grade scale for individual exams associated with the course. sitnet.course.gradescale.overridable=true Osallistumisoikeuden tarkistus Opiskelijoiden oikeus ilmoittautua tentteihin voidaan rajoittaa koskemaan tiettyjä opintojaksoja. Exam ei itse ylläpidä tietoa oikeuksista, vaan kyseinen tieto haetaan perusjärjestelmästä. Perusjärjestelmän rajapinnan tulee pystyä ottamaan parametrina opiskelijan yksilöivä tunniste, jonka perusteella sen tulee palauttaa lista opintojaksojen yksilöivistä tunnisteista. # enable / disable checking of permission to enroll for exams sitnet.integration.enrolmentpermissioncheck.active=true # URL for the API implementing this check. The URL should have the employee number either as path parameter or query # parameter. Use ${employee_number} for marking that part of the path. # examples: https://x.y.z/enrolmentpermissions?id=${employee_number} # https://x.y.z/enrolment/${employee_number}/permissions # Response should provide EXAM with the identiers for the courses that the person is allowed to enroll for. sitnet.integration.enrolmentpermissioncheck.url="https://x.y.z/enrolment/${employee_nu mber}/permissions" Liitetiedoston maksimikoko

Oletuksena on 50MB. Tätä suurempien tiedostojen tallennus on estetty. # maximum allowed attachment le size in bytes sitnet.attachment.maxsize=50000000 Examin kännistys Examin voi käynnistää sekä manuaalisesti konsolissa että palveluna, jolloin se voidaan laittaa käynnistymään automaattisesti käyttöjärjestelmän käynnistyksen yhteydessä. On huomioitava, että postgresql, apache ja shibd ovat käynnistetty ennen examin käynnistystä. Lisätietoa Play-applikaatioiden ajamisesta tuotantoympäristössä: https://www.playframework.com/documentation/2.3.x/production Käynnistys konsolissa Suositellumpi tapa on käynnistää exam palveluna (ks. alla). Konsolissa ajaminen on hyödyllinen lähinnä kehitys- tai testauskäytössä, mutta mikään ei varsinaisesti estä ajamasta tuotantoasennustakin siinä. Käynnistääksesi exam tuotantoasetuksilla siirry Examin juurihakemistoon (/opt/exam/sitnet) ja käynnistä Exam seuraavalla komennolla $ sudo -u sitnet activator [-Dcong.le=conf/mycong.conf] [-Dapplication.secret=abcdefghijk] [-DapplyEvolutions.default=true] ja kirjoita konsolissa start, jolloin play, kääntää ja alkaa suorittaa koodia, ctrl+d jättäää prosessin tausta-ajoon, ctrl+c tappaa prosessin. Exam-järje stelmää voi testailla ilman shibbolethia, jos asetustiedostossa oleva sitnet.login="haka" on muutettu sitnet.login="debug". Tällöin käyttäjät ja käyttäjäroolit tulee olla lisättynä käsin examin-tietokantaan. Esimerkissä on vaihtoehtoisina argumentteina asetustiedoston määrittely (-Dcong.le, ks. yllä), applikaation salasanan määrittely (-Dapplication.secret, ks. yllä) ja automaattinen tietokantaevoluutioiden suoritus (-DapplyEvolutions.default). Viimeinen tarkoittaa sitä, että tietokantamuutokset ajetaan sisään ilman vahvistusta käyttäjältä. Lisätietoa: https://www.playframework.com/documentation/2.3.8/evolutions Oletuksena Exam käynnistetään application.conf-tiedoston asetuksilla. Integraatiotestit voidaan ajaa play-konsolissa kommennolla test. Tällöin testitietokannan pitää olla luotuna (katso Tie tokanta). Käynnistys palveluna Examin voi käynnistää myös palveluna. Tätä varten täytyy ensin luoda Playn kännistysskripti: $ cd /opt/exam/sitnet $ sudo -u sitnet activator clean stage... [info] Done packaging. [success] Total time: 34 s, completed Apr 8, 2015 10:27:16 AM Tämä luo tarvittavat tiedostot hakemistoon target/universal/stage. Examin start-stop-skripti löytyy lähdekoodeissa paikasta /scripts/exam. Se toimii yksinkertaisena wrapperina playn käynnistysskriptille. exam #!/bin/sh #

# /etc/init.d/exam # # chkcong: - 90 10 # description: EXAM service daemon # processname: exam # pidle: /var/run/exam/exam.pid ### BEGIN INIT INFO # Provides: exam # Required-Start: $local_fs $remote_fs $network # Should-Start: $time # Should-Stop: $time # Required-Stop: $local_fs $remote_fs $network # Default-Start: 3 5 # Default-Stop: 0 1 2 6 # Short-Description: EXAM Service Provider Daemon # Description: Starts the EXAM Service Provider Daemon. ### END INIT INFO # Source function library. /etc/init.d/functions RETVAL=0 prog="exam" APP_ROOT_PATH=/opt/exam/sitnet APP_STAGING_PATH="${APP_ROOT_PATH}/target/universal/stage" APP_PATH="${APP_STAGING_PATH}/bin/exam" APP_USER=sitnet PID_DIR=/var/run/$prog LOG_DIR=/var/log/$prog PID_FILE="${PID_DIR}/${prog}.pid" LOCK_FILE=/var/lock/subsys/${prog} APP_SECRET="J9va1P\\\`crEz<n1fzB5mq_Ru[X;fQS2u6YxO[^::DF=;yAQWxX8wJf/7R0gPsIQhB" APP_OPTS="-Dapplication.secret=\"${APP_SECRET}\" -DapplyEvolutions.default=true -Dpidle.path=${PID_FILE}" [ -e /etc/syscong/${prog} ] &&. /etc/syscong/${prog} start() { echo -n "Starting ${prog}:" if [ -f ${LOCK_FILE} ]; then if [ -f ${PID_FILE} ]; then read PID < ${PID_FILE} if checkpid ${PID} 2>&1; then echo "process already running" return 1; else echo "lock le found but no process running for pid ${PID}, continuing"

mkdir -p ${PID_DIR} ${LOG_DIR} chown ${APP_USER}:${APP_USER} ${PID_DIR} ${LOG_DIR} su -l ${APP_USER} -c "nohup ${APP_PATH} ${APP_OPTS} > ${LOG_DIR}/${prog}.log 2>&1 < /dev/null" & i="0" while [ ${i} -lt 20 ]; do if [ -f ${PID_FILE} ]; then break sleep 1 i=$[$i+1] done if [ -f ${PID_FILE} ]; then touch ${LOCK_FILE} success else failure RETVAL=1 echo } stop() { echo -n "Stopping exam:" if [ -f ${PID_FILE} ]; then su -l ${APP_USER} -c "kill `cat ${PID_FILE}`" rm -f ${LOCK_FILE} ${PID_FILE} success echo } status() { if [ -f ${LOCK_FILE} ] && [ -f ${PID_FILE} ]; then read PID < ${PID_FILE} if checkpid ${PID} 2>&1; then echo "${prog} (PID: ${PID}) is running" else echo "${prog} not running but subsystem is locked" elif [! -f ${PID_FILE} ] && [ -f ${LOCK_FILE} ]; then echo "${prog} not running but subsystem is locked" elif [! -f ${LOCK_FILE} ] && [ -f ${PID_FILE} ]; then read PID < ${PID_FILE} if checkpid ${PID} 2>&1; then echo "${prog} (PID: ${PID}) running but subsystem is not locked" else echo "${prog} is stopped" else echo "${prog} is stopped" }

case "$1" in start) start ;; stop) stop ;; restart) stop sleep 5 start ;; status) status RETVAL=$? ;; *) echo $"Usage: $0 {start stop restart status}" RETVAL=1 esac

exit ${RETVAL} Skriptin muuttujat (lähinnä APP_ROOT_PATH, APP_SECRET ja APP_USER) tulee asettaa sen mukaan miten asennus on tehty. Riippuen käyttöjärjestelmästä käynnistyskriptin käyttö tapahtuu jotenkin näin: $ sudo -i $ cp scripts/exam /etc/init.d $ chmod 755 /etc/init.d/exam $ chkcong --add /etc/init.d/exam $ chkcong exam on $ service exam start (/stop/restart/status) Pääkäyttäjien lisääminen Jos ja kun pääkäyttäjän roolin omaavia käyttäjiä ei voda suoraan tuoda HAKA:sta, täytyy käyttäjäroolin korotus tehdä käsin. Käyttäjän, josta halutaan pääkäyttäjä, täytyy ensin kirjautua EXAMiin HAKA-roolissansa. Tämän jälkeen tietokannassa korotetaan roolia vaikkapa näin: $ psql -Usitnet sitnet sitnet=> update app_user_role set role_id = (select id from role where name = 'ADMIN') where app_user_id = (select id from app_user where eppn = 'USER_EPPN'); UPDATE 1 sitnet=> \q Korvaa ylläoleva USER_EPPN kyseisen käyttäjän eppn-tunnisteella. Kun käyttäjä seuraavan kerran kirjautuu EXAMiin, kirjautuu hän pääkäyttäjän roolissa. Logitiedot EXAM kirjoittaa logeja hakemistoon logs. Lisäksi jos EXAM on käynnistetty palveluna, kirjautuvat logit lisäksi (oletuksena) tiedostoon /var/log/exa m/exam.log. Logia voi kätevästi seurata reaaliajassa komennolla $ tail -f -n 100 /var/log/exam/exam.log Logituksen asetuksia voi muokata asetustiedostosta. Ohjeet tähän löytyvät Playn sivuilta: https://www.playframework.com/documentation/2.3.8/s ettingslogger Järjestelmän päivittäminen Kun järjestelmää päivitetään, on syytä ottaa huomioon ainakin seuraavat asiat. Ota varmuuskopiot ainakin seuraavista: hakemisto, joka sisältää kysymyksiin ja tentteihin liittyvät liitetiedostot käytettävä konguraatiotiedosto production.conf tietokantadumppi ennen päivitystä Varmuuden vuoksi ennen uudelleenkäynnistystä on hyvä poistaa asennushakemistosta kansiot /bin ja /target, jonne saattaa olla jäänyt tiedostoja, jotka aiheuttavat ongelmia päivitetyssä ympäristössä:

$ sudo -u sitnet rm -rf bin target $ sudo service exam start