Domjudge

From A-Eskwiki
Revision as of 21:03, 23 January 2017 by Larsvdh (Talk | contribs)

Jump to: navigation, search

Domjudge wordt gebruikt voor programmeerwedstrijden, dus het UKP en BAPC. De ESCapade organiseert de wedstrijden, de sysop zorgt ervoor dat domjudge correct draait. Domdjudge heeft een webinterface waar de score van de teams wordt bijgehouden. Ook worden de oplossingen van problemen via de webinterface aan domjudjge doorgegeven. Bij A-Eskwadraat gebruiken we URL http://judge.a-eskwadraat.nl/ voor domjudge. We draaien een judgeserver en judgehost. Deze draaien op haskell, namelijk de VM's Judgehost en Judgeserver.


Judgeserver

De judgeserver verzorgt de front-end, oftewel de webinterface. Deze moet draaien, zodat iedereen bij de webpagina kan en daar dingen kan doen. Inzendingen kunnen ingestuurd worden, maar er moet ook een judgehost draaien om deze na te kunnen kijken.

Op de judgeserver moeten de mysql en apache services draaien.

Judgehost

Op de judgehost worden inzendingen gestuurd vanaf de judgeserver. De judgehost kijkt deze dan na. Op de judgehost moet dan wel judgedeamon actief draaien.


Judgeserver & Judgehost instaleren

De makkelijkste manier om een judgeserver & judgehost te maken is door de live image van domjudge te converteren naar qcow2, en vervolgens aan de hypervisor te hangen.

Download de image van:

https://www.domjudge.org/live/

Pak deze uit.

bzip2 -d {domjudgeimage.bz2}

We willen eerst het image vergroten. We maken een nieuwe img file aan van 8GB

truncate -s 8G {resized.img}

En dan resizen we het orginele file naar een groter file format

virt-resize --expand /dev/sda2 {original.img} {resized.img}

Converteer deze vervolgens naar qcow2 formaat:

qemu-img convert {input file} -c -O qcow2 {output file}

Voor gemak maak je er dan een snapshot layer omheen, zodat je makkelijk kunt reverten naar de originele image:

qemu-img create -o backing_file={output file} -f qcow2 judgeserver.qcow2

We vervangen nu de qcow image van de oude domdjudge server (of host) door deze nieuwe qcow op haskell. (bij /var/lib/vz/images/{virtual host nummer}). Het virtual host nummer is te zien in de webinterface van haskell.

Doe hierna een rescan, om de nieuwe image te vinden.

qm rescan -vmid {vm-id}

Om de live image te updaten dient de configuratie voor apt aangepast te worden. Hierbij moet de ingestelde proxy uitgezet worden in:

/etc/apt/apt.conf


Meer info is hier te vinden.

Stappen bij een programeerwedstrijd

  • Zorg voor een nieuwe domjudge installatie of gebruik een oude
    • Als je een oude gebruikt, ruim de oude judgings op, op de judgehost. Ga naar de judgehost en gebruik het "$du / -aS | sort -nr | head -25" commando om te zien waar de grote files zich bevinden. het "$df" commando laat zien hoeveel ruimte je nog hebt
    • In /var/lib/domjudge/judgings bevinden zich de judgings. Deze kunnen verwijderd worden om ruimte vrij te maken op de judgehost
  • Zorg dat de judgehost en de judgeserver allebei aanstaan. (login is standaard)
  • Op de judgehost, start de judgedeamon met $judgedeamon
  • De site werkt nu op judge.a-eskwadraat.nl
  • De ESCapade moet nu de teams en opdrachten in de website instellen
  • Op de wedstrijddag zelf, blijf beschikbaar voor het geval er dingen mis gaan. (Met voorkeur bij A-Eskwadraat zelf, zodat je direct bij de server kan)

Installeer een verse domjudge

Nog te doen

Links

[1]