TL;DR: TOPdesk is geschreven in Java, en daardoor kun je TOPdesk prima op Linux draaien. In drie posts laat ik zien hoe je zelf een TOPdesk Virtual Appliance maakt en in een Linux-sandbox draait, gebruikmakend van gratis software.

In de vorige twee posts (de eerste en de tweede) zijn de grote lijnen en de eerste technische stappen uitgelegd. In deze derde post laat ik zien hoe je een TOPdesk-database aanmaakt in Oracle XE, en hoe je die correct in TOPdesk laadt. Wederom geldt: voldoende Linux-kennis is benodigd.

Database aanmaken

TOPdesk heeft een kleine applicatie waarmee je een database aanmaakt en vult. Zorg dat Oracle XE draait, en start dan het tooltje als root:
/opt/TOPdesk/databasetool start

Kies Oracle bij databasetype, en kies Een nieuw schema met tabellen aanmaken. In het volgende scherm kies je bij Systeembeheer-login het wachtwoord dat je hebt opgegeven bij het configureren van Oracle XE. Onder Nieuwe gebruiker/schema kun je zelf een nieuwe naam en wachtwoord opgeven. Deze combinatie heb je straks nodig, wanneer je in TOPdesk de database gaat koppelen. Hier gebruik ik virtualapptopdesk als naam voor de nieuwe database.

Kies in het volgende scherm Een basisdatabase gebruiken als uitgangspunt. De beschikbare basisdatabases zitten in het het mapje Databases in de installatiebestanden van TOPdesk die je downloadt van Extranet. Bij wijze van test kiezen we de Nederlandse basisdatabase voor TOPdesk enterprise.
In het volgende scherm kun je wel of niet zoekindexen laten aanmaken. Dit kun je overslaan. In het scherm daarna volgt een overzicht; kies Start en de database wordt aangemaakt! Dit kan enkele minuten duren.

Database in TOPdesk koppelen

Start TOPdesk met het volgende commando:
/opt/TOPdesk/topdesk start
Start een browser en ga naar http://127.0.0.1/tas/admin/index.jsp. Login met admin:admin, en hierbij ben je in de Administrator console. Waarschijnlijk is de database al goed gekoppeld en ingeladen. Klik op Test connection om dit te verifiëren.

Staat er The database is ready to use, dan is de configuratie gelukt. Moet je toch met de hand de koppeling maken? Dan heb je in de screenshot alle benodigde gegevens. Username en wachtwoord van de database voer je in met het gehighlighte sleutelknopje. De laatste stap is de licenties inladen. Dit doe je door je licentiebestanden te plaatsen in de map /opt/TOPdesk/license, TOPdesk herstarten, opnieuw inloggen in de Administrator console, licenties activeren, en voor de tweede maal TOPdesk herstarten. Is dat allemaal achter de rug? Dan kun je met admin:admin inloggen op het behandelaarsgedeelte http://127.0.0.1/tas/secure en je TOPdesk afconfigureren.

Automatisch opstarten met systemd

In de tweede post van dit drieluik hebben we TOPdesk geïnstalleerd. Dat deden we gewoon met de hand. Daardoor is er geen systemd-service waarmee we TOPdesk automatisch kunnen laten starten bij de start van de vm. Daarom bij deze:

/etc/systemd/system/topdesk.service

[Unit]
Description=TOPdesk service
Requires=oracle-xe.service
After=syslog.target network.target oracle-xe.service

[Service]
Type=forking
PIDFile=/opt/TOPdesk/TOPdesk.pid
ExecStartPre=/usr/bin/rvcustom-waitfororacle
ExecStart=/opt/TOPdesk/topdesk start
ExecStop=/opt/TOPdesk/topdesk stop
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

Die servicefile roept een script aan /usr/bin/rvcustom-waitfororacle dat ik heb gemaakt. De reden is dat TOPdesk soms te snel wil starten, voordat de listener van Oracle actief is. Hierdoor geeft TOPdesk een foutmelding. Het script zorgt ervoor dat TOPdesk pas kan starten wanneer poort 1521 open is.

/usr/bin/rvcustom-waitfororacle

#!/bin/bash
while netstat -lnt | awk '$4 ~ /:1521$/ {exit 1}'0
do
sleep 1
done

Dan als laatste: ik kwam tot de conclusie dat oracle-xe.service ook niet fatsoenlijk werkt. De install-sectie miste namelijk. Daarom heb ik daar ook een betere versie van gemaakt.

/etc/systemd/system/oracle-xe.service

[Unit]
Description=Oracle XE
After=network.target

[Service]
Type=oneshot
ExecStart=/etc/rc.d/oracle-xe start
ExecStop=/etc/rc.d/oracle-xe stop
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

Je kunt nu TOPdesk automatisch laten opstarten met het volgende commando. Hierdoor start ook Oracle XE automatisch.
systemctl enable topdesk.service

TOPdesk van buiten de VM benaderen

Als je er nog niet genoeg van hebt, dan kun je TOPdesk in je VM open te zetten naar buiten, naar je host. Zo kun je dus in je Windows-omgeving de TOPdesk benaderen die je draait in je Linux-VM. Dit is precies ook wat de TOPdesk Virtual Appliance van TOPdesk gaat kunnen. De te nemen stappen ga ik alleen in grote lijnen uit de doeken doen. Er zijn genoeg tutorials op internet te vinden (zoals hier en hier).

  • Start Oracle Virtualbox, en kies onder Bestand -> Host network manager.
  • Maak een nieuwe netwerkadapter aan. Kies onder DHCP het ip-adres van de DHCP-server die je hiermee activeert. Kies ook een subnetmaster.
  • Stop je VM, en kies rechtermuisknop -> Instellingen.
  • Onder Netwerk -> Adapter 2 -> Netwerkadapter inschakelen. Kies bij Gekoppeld aan: Host-only adapter, en kies de aangemaakte netwerkadapter.
  • Start je vm. Er is een nieuwe netwerkaansluiting gedetecteerd. Zet een statisch ip-adres op je VM, in de juiste range van het subnet.

Is alles goed geconfigureerd? Start dan een browser buiten je VM, en browse naar het statische ip-adres dat je hebt ingesteld in de VM. Als het goed is, verschijnt TOPdesk.

Is dat alles?

Ja dat is alles! Wat je nu hebt, is je eigen TOPdesk Virtual Appliance, waarin je eindeloos kan knutselen in TOPdesk. De database-server is er ook ingefietst, het ding start automagisch, en je hebt geen externe koppelingen meer nodig. Toch kun je veel verder knutselen. Je kunt bijvoorbeeld proberen om een Linux-VM op te tuigen met alleen de command line interface. Dat is nog veel ingewikkelder, maar je hebt maar 10GB diskspace nodig (ipv de 30GB hier). Of je kunt Jira installeren naast je TOPdesk en de handel koppelen. Jira is ook gebouwd in Java, en het is bijna gratis voor 1 losse gebruiker. Potentiële onderwerpen voor latere posts.


Rogier Visser

Rogier is zelfstandig TOPdesk-consultant en oprichter van Laansloot IT