Docker Container Azure Setup
Im Folgenden wird erklärt, wie der der i-net HelpDesk in der Microsoft Azure Cloud aufgesetzt werden kann.
Azure Setup
Stand 2023-06
Dieses Setup geht davon aus, dass alle Ressourcen neu angelegt werden. Es wird ein i-net HelpDesk Server aufgesetzt, der seine Arbeitsdaten persistiert und mit einem MSSQL Server verbunden ist. Dazu werden benötigt:
-
Zugriff auf das Portal: https://portal.azure.com
-
SQL-Server mit Datenbank
-
Dateipersistenz
-
Container App
Hinweis: diese Anleitung hat nicht den Anspruch der Vollständigkeit und stellt nur einen Lösungsansatz für das Deployment vor. Alle Aktionen erfolgen auf eigene Gefahr.
Ressourcengruppe anlegen
Nach dem Login in das Azure Portal erstellen wir zunächst eine neue Ressourcengruppe.
-
Via Suche den Azure-Dienst "Ressourcengruppe" suchen und öffnen
-
+ Erstellen
wählen -
Abonnement wählen und Ressourcengruppenname angeben
-
Region wählen
-
Überprüfen + erstellen
Speicherkonto anlegen
Für die Persistenz der Daten benötigen wir ein Speicherkonto. Wir navigieren zurück in die Ressourcengruppe und erstellen dies:
-
+ Erstellen
→ Marktplatz öffnet sich -
Suche nach:
Speicherkonto
→Erstellen
Netzwerk
Wir verwenden ein privates Netzwerk für die Verbindungen der einzelnen Services untereinander. Das hat den Vorteil, dass nichts öffentlich geroutet werden sollte.
-
Netzwerkkonnektivität: Öffentlicher Zugriff über ausgewählte virtuelle Netzwerke und IP-Adressen aktivieren
-
Virtuelles Netzwerk: Erstellen und das Default Subnetz auswählen.
Netzwerk erstellen
Beim Erstellen des Netzwerk können im Grunde die Standardoptionen verwendet werden.
Überprüfen
Das Speicherkonto kann nun erstellt werden.
Freigabe einrichten
Mit Erstellten des Speicherkontos kann in diese Ressource gewechselt werden. Wir müssen jetzt noch eine Freigabe einrichten, die später an der Container App verwendet werden kann.
-
Im Baum links wird Dateifreigabe gewählt
-
+ Dateifreigabe
auswählen-
Name:
helpdesk-persistence
-
-
Erstellen
wählen
Hinweis: Durch auswählen der neuen Freigabe sieht man die Freigabe-URL. Diese wird später bei der Container App benötigt.
Hinweis: Die Zugangsdaten erhält man, indem man im Baum den Eintrag Zugriffsschlüssel wählt. Hier stehen sowohl Speicherkontoname
, wie auch Schlüssel
- diese werden ebenfalls später in der Container App benötigt.
SQL Server anlegen
Nach dem Erstellen der Ressourcengruppe kann direkt in diese gewechselt werden. Hier wird nun wieder mit Hilfe von + Erstellen
ein Dienst angelegt.
-
+ Erstellen
→ Marktplatz öffnet sich -
Suche nach:
Azure Server
-
SQL-Bereitstellungsoption: SQL-Datenbanken → Einzeldatenbank
-
Erstellen
-
Wir gehen davon aus, dass noch kein SQL Server existiert, daher muss ein neuer SQL Server angelegt werden. Dies erfolgt unter Datenbankdetails → Neu erstellen
-
Der Servername des Datenbankservers muss global eindeutig sein.
-
Der Standort sollte geografisch möglichst nah liegen
-
Für unsere Zwecke reicht die SQL-Authentifizierung
-
Ist alles eingestellt,
OK
klicken
Hinweis: Die Anmeldeinformationen hier sind wichtig für die Anmeldung des HelpDesk Servers später und sollten genauestens überlegt sein.
Grundkonfiguration
In der Grundkonfiguration seien einige Dinge erwähnt:
-
Die Ressourcengruppe muss der Erstellten entsprechen
-
Der Datenbankname wird später in der i-net HelpDesk Konfiguration benötigt und der Server sollte dem zuvor erstellten entsprechen
-
Compute+Speicher spiegeln sich direkt in den Kosten wieder. Hier wird ein Server mit der Dienstebene "Basic" und einer DTU Größe von 500MB verwendet. Das ist im Grunde sehr wenig.
Netzwerk
Wir wählen:
-
Netzwerkkonnektivität: Privater Endpunkt
-
Verbindungsrichtlinie: Umleitung: Clients stellen Verbindungen direkt mit dem Knoten her, auf dem die Datenbank gehostet wird.
-
Verschlüsselte Verbindungen: TLS 1.2
Es muss nun noch ein Privater Endpunkt angelegt werden, der später mit der Container App-Umgebung verbunden wird.
Überprüfen + erstellen
Wir belassen alle weiteren Einstellungen auf Standard. Nun kann der Server erstellt werden. Dies dauert etwas länger.
Container App anlegen
Wir navigieren zurück in die Ressourcengruppe und erstellen eine Container-App:
-
+ Erstellen
→ Marktplatz öffnet sich -
Suche nach:
Container App
→Erstellen
Auch hier gehen wir wieder davon aus, dass keine Container App Umgebung besteht, also muss diese neu erstellt werden (ganz am Ende der Seite)
-
Umgebungsdetails: hier wird ein aussagekräftiger Name gebraucht
-
Zonenredundanz: Deaktiviert
-
Überwachung: Protokolle nicht speichern (spart Ressourcen)
-
Virtuelles Netzwerk: Ja
Wir benötigen ein Subnetz für den Container, damit dieser auf die Datenbank und das Speicherkonto zugreifen kann.
Grundeinstellungen
Die Einstellungen sind hier relativ intuitiv zu erledigen.
Container
Beim Anlegen des Containers geht es nun schon darum, den i-net HelpDesk Server vorzubereiten.
-
Verwenden des Schnellstartimages: Deaktivieren
-
Containerdetails:
-
Imagequelle: Docker Hub
-
Image und Tag:
inetsoftware/i-net-helpdesk:latest
-
Hier kann auch eine bestimmte version, z.B.
inetsoftware/i-net-helpdesk:alpine-23
verwendet werden
-
-
-
Containerressourcenzuordnung: Je nach Verwendung, aber mindestens 0.5 Kerne und 1G Speicher
-
Umgebungsvariablen: es müssen die folgende Variable hinterlegt werden:
-
Listener Port
-
Name:
CONF_listener__port
-
Wert:
8002
-
-
Config beibehalten
-
Name:
FORCE_IMPORT_CONFIG
-
Wert:
0
-
-
Eingehend
Damit der Server aus dem Internet verfügbar wird, muss die Eingehende Schnittstelle aktiviert werden. Unsichere Verbindungen sollten nicht zugelassen werden.
Überprüfen + erstellen
Wir belassen alle weiteren Einstellungen auf Standard. Nun kann der Server erstellt werden. Dies dauert etwas länger.
Es werden nun diverse neue Ressourcen angelegt, Eine Container Apps-Umgebung, quasi der Server auf dem alles läuft, sowie die Container App selbst.
Container Apps-Umgebung
In der Container Apps-Umgebung muss nun das Speicherkonto angeschlossen werden. Erst damit ist eine Persistenz möglich.
-
In der Ressourcenübersicht wird die Container Apps-Umgebung gewählt
-
Im Baum wird Azure Files gewählt
-
+ Hinzufügen
-
Name:
helpdesk-persistence
(beliebig, dieser wird später im Container eingebunden) -
Speicherkontoname: Siehe Freigabe einrichten → Zugriffsschlüssel → Speicherkontoname
-
Speicherkontoschlüssel: Siehe Freigabe einrichten → Zugriffsschlüssel → key1
-
Dateifreigabe: Siehe Freigabe einrichten → Name der Freigabe
-
Zugriffsmodus: Lesen/Schreiben
-
Erstellen
klicken
-
-
Speichern
klicken
Container einrichten
Über den Baum kann nun via App → <App-Name> auf die eigentliche Container App gewechselt werden. In der Übersicht wird bereits die URL zu der App angezeigt. Ein Klick darauf öffnet bereits die Server-Oberfläche (dies dauert möglicherweise ein bisschen).
Für die folgenden Aufgaben benötigen wir im Baum der Ressource hauptsächlich die Einträge: Revisionsverwaltung, Container, Protokollstream und Konsole.
-
Revisionsverwaltung: Hier wird als erstes geprüft, dass der Revisionsmodus auf Einzeln steht.
-
Container: lässt Einstellungen am Container zu
-
Protokollstream: Zeigt die Container Logs sowie die System Logs an
-
Konsole: Erlaubt es uns mit dem Container zu verbinden und eine Shell darin auszuführen
Wir müssen jetzt jedoch erst die Datenbankverbindung und die Verbindung zur Persistenz herstellen.
Persistenz-Verbindung
Für das Speicherkonto muss nun eine Dienstconnector eingerichtet werden, damit der Container auf diese zugreifen kann.
-
Im Baum wird die Dienstconnector gewählt und
+ Erstellen
geklickt. -
Diensttyp: Speicher-Datei
-
Konto: Siehe oben
-
Clienttyp: Kein
In der Authentifizierung ist nur die Verbindungszeichenfolge möglich. Für das Netzwerk benötigen wir die folgenden Einstellungen:
Überprüfen + Erstellen
Die Konfiguration kann nun abgeschlossen werden.
Persistenz
Die Persistenz bezieht sich auf den Ort, an dem der Server seine Arbeitsdaten speichert. Dazu haben wir oben das Speicherkonto angelegt und müssen dies nun in den Container mounten.
-
Im Baum Revisionsverwaltung wählen
-
Neue Revision erstellen
klicken -
Den Container aus der Tabelle wählen
-
Einbinden von Volumes wählen
-
Die Dateifreigabe öffnen
-
Name derDateifreigabe: Siehe Container Apps-Umgebung → Name bei
+ Hinzufügen
-
Bereitstellungspfad:
/home/helpdesk
-
-
Speichern
-
Skalieren
Im selben Dialog wird auf dem Reiter noch die Skalierung verändert:
-
Wir setzen auf Min=1 und Max=1 - indem wir den Schieberegler verändern
Erstellen
Der Container kann jetzt neu erstellt werden. Das wird nun wieder etwas dauern, weil eine neue Revision erstellt wird. Im Protokollstream kann man beobachten, ob alles sauber läuft.
i-net HelpDesk einrichten
Wenn der Server nun komplett läuft und das Protokollstream-Log für as System keine Fehler ausgibt, kann man sich mit der Konsole im Baum links, Auswahl /bin/sh
mit dem Container verbinden.
Wir benötigen gleich die UUID für das Setup und führen in der Konsole aus:
-
cat /usr/share/helpdesk/Server/webconfig.txt | grep UUID | awk '{print $2}
' -
Den Ergebniswert kopieren wir uns.
Jetzt kann der Server, die URL steht in der Übersicht, aufgerufen und das Setup gestartet werden.
Datenbankverbindung
Die Datenbankverbindung wird nun nach den Zugangsdaten, siehe oben, eingerichtet:
-
Datenbank-Management-System: MS SQL Server
-
Host: Siehe SQL Server anlegen → Übersicht
-
Datenbank: Siehe SQL Server anlegen → Übersicht
-
Datenbank Benutzer: Existierender Datenbank Benutzer
-
Benutzer: Siehe SQL Server anlegen → Zugangsdaten
-
Passwort: Siehe SQL Server anlegen → Zugangsdaten
Webserver
Bei den Webserver Einstellungen ist wichtig, dass der Port auf 8002 stehen bleibt. Die Public URL kann angepasst werden, die benötigt keinen Port.
Wenn später noch eine Domäne verbunden wird, muss in der Konfiguration die Server URL angepasst werden.