4.5.3 Anleitung für EDOMI im Docker am TWS

Beschreibung: Schritt für Schritt Anleitung für die Einrichtung eines Docker mit EDOMI am Timberwolf Server

Kategorie: Docker

Link zu diesem Beitrag: Alles auswählen

[url=https://forum.timberwolf.io/app.php/kb/viewarticle?a=9&sid=c4616b03717a517e56e55e6ce43c582c]Knowledge Base - 4.5.3 Anleitung für EDOMI im Docker am TWS[/url]

Die Installationsanleitung gilt für den EDOMI Dockercontainer von starwarsfan aus dem KNX-UF Forum auf dem Timberwolf 2x00.
(Thanks to Yves (starwarsfan) für die Bereitstellung des Images!)

Schritt 1: Portainer starten
Starte portainer auf dem TWS: Menü Portainer, dann oben links auf „Aufruf der Docker-Verwaltung mit Portainer“ klicken.
Anmelden mit user „portainer“ und dem auf dem TWS aufgeklebten admin Passwort

Schritt 2: Heimnetzwerk einrichten
Um EDOMI unter einer eigenen IP aus dem Heimnetzwerk erreichbar zu machen müssen wir zuerst ein Netzwerk analog dem eigenen Heimnetzwerk in portainer anlegen:
  • Networks => “ +Add Network“ klicken
    Einen Namen vergeben, z.B. „Heimnetz“
  • Driver: macvlan auswählen
  • Subnet: den Netzbereich des Heimnetzwerks angeben, z.B. 10.10.10.0/24, wäre dann 10.10.10.1 bis 10.10.10.254
  • Gateway: wichtig hier die IP des Routers (z.B. der FritzBox) aus o.g. Subnet verwenden (zB. 10.10.10.1)
  • „Enable acces control“ auf enabled lassen. Im Forum gab es vom User fechter65 eine Meldung daß es ohne access control nicht funktioniert. THX to Fechter65.
  • Unter „driver options“ einen neuen Eintrag mit „parent“ und Wert „eth0“ anlegen
  • Unter „driver options“ einen neuen Eintrag mit „macvlan_mode“ und Wert „bridge“ anlegen.
  • Dann auf „Create the network“ klicken. Das Netzwerk ist damit angelegt und kann später mit dem EDOMI Container verknüpft werden.
Schritt 3: Volumes erstellen
Dazu geht man in der Portaineroberfläche links auf „volumes“ klicken und dann „add new volume“, dann kommt man in folgende Oberfläche:
Bild

Dort drei separate Volumes mit den Namen
• edomi-db
• edomi-installation
• edomi-backups
anlegen indem man die o.g. Namen jeweils einträgt und jeweils auf „create the volume“ klickt.
Wenn alles richtig gemacht wurde sind die drei volumes dann in der „volume“ Übersicht zu sehen.

Schritt 4: EDOMI Image aus dem Repository holen
Als nächstes holen wir uns das Image von starwarsfan aus dem Docker Repository.

Am besten vorab unter https://hub.docker.com/r/starwarsfan/edomi-docker/tags nachsehen, was die aktuelle Version ist. 1.63 ggf. durch die neuere Versionsnummer ersetzen.
  1. In Portainer links auf Menü „Images“ gehen.
  2. Links im Menü dann unter Pull Image im Eingabefeld Name folgendes eintippen: „starwarsfan/edomi-docker:1.63“.
  3. Den Button „Pull the Image“ drücken. Damit sollte das Image von Dockerhub geladen werden (dauert eine Weile…).
  4. Unten sollte jetzt ein neuer Eintrag „starwarsfan/edomi-docker:1.63“ bei den Images erscheinen..
Bild

Schritt 5: Neuen Container anlegen
  1. Im Menü „Container“ den Button „+ Add Container“ anklicken.
  2. Im neuen Menü einen beliebigen Namen eingeben (z.B. „EDOMI“).
  3. In der Imagekonfiguration unter Namen eintragen „starwarsfan/edomi-docker:1.63“. Es sollte dann das vorher installierte Image angezeigt/gefunden werden.
  4. Publish all exposed ports habe ich so gelassen (da unten direktes mapping kommt).
  5. Unter portmapping auf „+ map additional ports“ klicken und ports im folgenden mappen:
    • 80:80/tcp (http port für z.B. admin Oberflächenzugriff)
    • 443:443/tcp (https port für z.B. admin Oberflächenzugriff)
    • 8080:8080/tcp (für Visu Websocket)
    • 22:22/tcp (damit ist später per port 22 ein ssh Zugriff auf den Container möglich)
    • 3671:3671/udp (für KNX Tunnel, z.B. bei mir per wiregate mit eibd, ggf. muss dieser port auch bei Verwendung eines internen TW KNX Tunnels auf z.B. 3700 angepasst werden!)
    • 50000:50000/udp (port für KNX control endpoint, siehe EDOMI Basiskonfiguration)
    • 50001:50001/udp (port für KNX data endpoint, siehe EDOMI Basiskonfiguration)
    Optional noch je nachdem was man in EDOMI alles noch an Modulen nutzt:
    • 587:587/tcp (für email smtp Zugang)
    • 21000:21000/tcp (Telnet port für IRtrans Kommunikation, siehe EDOMI Basiskonfiguration)
    • 49000:49000/tcp (falls Fritzbox Plugin aktiv, siehe EDOMI Basiskonfiguration)
    • 1012:1012/tcp (falls Fritzbox Plugin aktiv und Anrufmonitor benötigt wird, siehe EDOMI Basiskonfiguration)
    • 23:23/tcp (für Telnet Zugang z.B. für vcontrold)
    • 3306:3306/tcp für EDOMI Datenbankzugriff z.B. via SQLyog
    Enable access control aktiviert lassen.

    bei mir sieht das dann so aus:
    Bild

    _
  6. Unter „advanced settings“ dann noch folgendes tun:
    • Unter Reiter „COMMAND“:Haken setzen bei „Console interaktiv &TTY“, alles andere so lassen
    • Unter Reiter „VOLUMES“:
      Hier müssen die weiter vorne angelegten volumes zugewiesen werden. Dazu folgendes Eingeben:
      Bild
    • Unter „NETWORK“ : „Heimnetzwerk“ (das wir gleich am Anfang angelegt haben) auswählen und unter dem Eintrag IPV4 die gewünschte IP (zB. 10.10.10.6) unter der EDOMI später erreichbar sein soll, eintragen.
      Achtung: Diese IP sollte nicht in dem DHCP Vergabebereich des Heimnetzes (z.B. der FritzBox) liegen, sonst kommt es ggf. zu Kollisionen!
      sieht dann ungefähr so aus:
      Bild
    • Unter „ENV“ noch Variablen für den Container Build anlegen:
      „HOSTIP“: die IP des EDOMI Rechners (die IP die oben per Netzwerk definiert haben z.B. wieder die 10.10.10.6 wie im obigen Beispiel). Zwingend angeben, sonst läuft gar nichts!
      „KNXGATEWAY“: IP des KNX IP Gateways. Dies ist entweder die IP der KNX Schnittstelle oder zB. die IP des alten Wiregates mit eibd. In Zukunft wird das auch über die Timberwolf IP gehen sobald mehrere Tunnel möglich sind. Achtung: der TW interne Zugriff geht aktuell nicht! (s.o. beim Hinweis zu macvlan Konfig)
      „KNXACTIVE“: „TRUE“ ermöglicht den KNX Traffic über das KNX Gateway. Zum Testen kann die KNX Kommunikation per “false“ deaktiviert werden.
    • Unter „Restart Policy“ bitte „on failure“ anklicken (WICHTIG für korrektes Neustarten des Containers bei EDOMI Neustarts!)
    • Unter „Runtime & Ressources“:
      Hier kann man optional devices (z.B. USB Geräte wie einen Optolink, DMX Controller,…) dem Container verfügbar machen die man am Timberwolf direkt angesteckt hat und per EDOMI ansteuern/auslesen möchte.
      Bei mir war das z.B. eine Nano USB DMX Controller von DMX4all. Diesen steckt man an den TW an und kopiert den link aus der Portainer Seite:

      Bild

      Dazu den kopieren Button drücken und dann in Portainer den kopierten String einfügen und den Namen unter dem im Container das Device angemeldet werden soll (bei mir habe ich /dev/ttyACM1 gewählt) eintragen:

      Bild
    • Zu guter Letzt dann den Container erzeugen über „Deploy the container“
Bei erfolgreichem Anlegen des Containers wird dieser gleich gestartet und EDOMI sollte gebootet werden. Dazu kann man sich im Menü „Containers“ beim EDOMI Container unter den „quick actions“ das Logfile ansehen. In diesem sieht man den Hochlauf von EDOMI detailiert und sieht auch falls dort Fehler/Abbrüche passieren.

Bild

Schritt 6: EDOMI über den Browser aufrufen
Wenn die obigen Schritte erfolgreich ohne Fehler erfolgt sind, kann über den Browser (z.B. Chrome) die Adminseite aufgerufen werden:
http://IP-EDOMI/admin/ , im obigen Beispiel dann entsprechend: http://10.10.10.6/admin/

Anmeldung erfolgt mit Standarduser „admin“ und passwort „admin“.

Schritt 7: EDOMI Backup einspielen
Als nächstes wird das letzte Backup in den Container kopiert.
Dazu kann man sich per SFTP (z.B. mit Tool WinSCP) auf dem Container einloggen:
  • Protokoll SFTP, IP des Timberwolf und port 22 eintragen.
  • User: „root“ und Passwort: „123456“
Dann einfach das letzte Backupfile vom Vorgängerserver in das Verzeichnis /var/Edomi-backups hineinkopieren.

Auffälligkeiten nach Übertrag meines Projektes:
LBS die noch weitere manuelle Installationspakete benötigen funktionieren nicht ohne weiteres und führen ggf. zum Crash von EDOMI:
Dazu müssen ggf. einige Pakete noch manuell nachinstalliert werden (abhängig von den jeweiligen LBS). Dies kann über die Console die man per Container aufrufen kann erledigen. Dazu im Menü Container auf den „EDOMI“ Container klicken, dort dann unter „Container Status“ auf „>_ Console“ klicken. Dann auf „CONNECT“ und schon hat man eine normale Kommandozeile als root User im Container und kann manuell Pakete nachinstallieren (so wie man es auf dem bisherigen Rechner ja auch getan hat, wenn man sich noch daran erinnert). Und wenn was schief geht kann man wieder aus dem Image einen neuen Container aufbauen und hat nichts zerstört.

Und zu guter letzt noch ein Hinweis wie ich bei einem Update des Containers vorgehe:
1) Zuerst Backup erstellen!
2) Packete nachinstallieren / updaten per Console: z.B. yum install -y php-mbstring php-xml wget php-process
3) dann auf Oberfläche mit admin/admin anmelden und backup rückspielen
4) fertig!