NEWS
[HowTo] ioBroker unter Docker auf Synology DiskStation
-
@Stuebi sagte in IoBroker unter Docker auf der Synology DiskStation?:
# Virtuelles Netzwerk Device mac1 anlegen ip link add mac1 link eth0 type macvlan mode bridge ip addr add 192.168.20.80/32 dev mac1 ip link set mac1 up ip route add 192.168.20.80/28 dev mac1
Somit ist der Docker ioBroker Container nun auch von der NAS aus ansprechbar. Aus dem Docker Container ist die NAS über die zusätzliche IP Adresse 192.168.20.80 zu erreichen. Leider sind die Einstellungen nach jedem reboot der NAS weg und müssen neu angelegt werden. Ich habe mir ein kleines sh Skript erstellt, welches bei jedem Start der NAS über den Synology Aufgabenplaner ausgeführt wird.
Nun noch das Problem mit dem DNS Server bereinigen. Dafür im ioBroker Docker Container ein Terminal öffnen. Nun als erstes einmal folgenden Befehl durchführen:
echo "nameserver 8.8.8.8 "> /etc/resolv.conf
Damit wurde der DNS Server mit der IP-Adresse 8.8.8.8 eingerichtet. Leider wird der Eintrag beim jedem reboot des ioBroker Docker Containers überschrieben. Nun schnell noch folgende Befehle ausführen um das System auf den neusten Stand zu bringen und den Editor vi zu installieren.
apt-get update apt-get upgrade # Editor VI installieren apt-get install vim apt-get install net-tools apt-get install dnsutils # Für Webcam Einbindung bei iobroker.yahka apt-get install ffmpeg # Zeitzone geradeziehen cp /usr/share/zoneinfo/Europe/Berlin /etc/localtime
So jetzt nun noch das Startskript anpassen, damit der Nameserver bei jedem Neustart des Container überschrieben wird. Dafür im Docker Container mit dem Editor vi das Skript /opt/scripts/iobroker_startup.sh um folgende Einträge am Anfang ergänzen:
#!/bin/sh # Ergänzung - Anfang echo "nameserver 8.8.8.8" > /etc/resolv.conf echo "192.168.20.80 nas nas.mydomain.local" >> /etc/hosts # Ergänzung - Ende cd /opt/iobroker # ...
Hi Stübi!
Da ich schon über Portainer auf MACVLAN umgestellt habe, sehe ich das richtig, dass ich nur noch das oben zitirte machen muss?
Geht root über SSH noch auf der DS? Dachte die haben mal was geändert?
-
@Negalein , genau das musst Du über SSH durchführen und die Befehle in ein Script hinterlegen welches beim Start der NAS ausgeführt wird. Sonst sind die Einstellungen nach jedem Neustart der NAS weg.
Dann muss Dein MACVLAN mindestens aus 2 Rechnern bestehen (Range) mit Netmask 31 statt 32. In dem Beispiel hier musst bei Range 192.168.0.100/31 statt 192.168.0.100/32 eingeben. ioBroker musst Du nachher im Docker Container umbedingt fest 192.168.0.101 und nicht 192.168.0.100 zuweisen! Eigentlich müsste man noch --aux-address 'host=192.168.0.100' im Portainer mitgeben. Aber da weiß ich nicht wie das dort funktioniert. Vielleicht geht es auch ohne wenn ioBroker immer die IP Adresse 192.168.0.101 hat. Musst Du probieren.
So nun mit SSH anmelden und folgendes eingeben:# Virtuelles Netzwerk Device mac1 anlegen ip link add mac1 link eth0 type macvlan mode bridge ip addr add 192.168.0.100/32 dev mac1 ip link set mac1 up ip route add 192.168.0.100/31 dev mac1
Wenn das alles funktioniert hat, kannst Du testen ob Du die NAS über ioBroker nun über 192.168.0.100 erreichen kannst. D.h. Deine NAS hat jetzt 2 IP Adressen!
-
Hallo Zusammen,
bitte nehmt es mir nicht übel, ich war ein paar Tage offline und habe mich um meine Familie gekümmert.
Ich habe die 37 neuen Posts seit meinem letzten Eintrag jetzt mal nur grob überflogen... was mit sehr positiv auffällt ist, dass ihr euch hier wirklich toll unter die Arme greift und unterstützt. Das verringert mein schlechtes Gewissen ob meiner Abwesenheit doch deutlich!Wenn ich das korrekt zusammen fasse geht es aktuell noch um zwei größere Themen: Probleme beim Adapter-/ Controller-Update und MACVLAN: Kommunikation zwischen DS und ioBroker...
Was das Update-Thema angeht habe ich in den Beiträgen eigentlich schon das gelesen was ich auch schon an Erfahrung gemacht habe: "reinstall.sh" und "npm rebuild".
Fakt ist, wenn wenn ma ioBroker umzieht (und sei es nur von Container zu Container kann es erfahrungsgemäß auch mal Probleme mit den npm-paketen geben.
Wenn ich richtig liege, macht ein "npm rebuild" einen kompletten check, installiert aktuelle Paket-Versionen und prüft bzw. installiert/ aktualisiert dependencies der einzelnen Adapter... Dauert zwar echt lange, aber funktioniert eigentlich ganz gut. Vielleicht kann sich dazu ja nochmal ein ioBroker-Entwickler zu Wort melden, aber eigentlich gibt es zu diesem Thema auch so schon eine Menge Lesestoff im Forum. Und letzten Endes ist das auch kein spezielles Docker Thema... Habe erst in der letzten Woche auf meinem Raspi-Multihost-Slave zwecks Updates mit npm gekämpft...Was MACVLAN angeht, da habe ich ja schon ein bisschen was zu gesagt. Fakt ist hier, dass eine Kommunikation zwischen DS-IP und ioBroker-IP im Standard nicht möglich ist.
Es gibt da zwar die Lösung (wie auch von stuebi beschrieben) ein zweites, virtuelles Interface auf der DS an zu legen, aber das ist kompliziert und eventuell so auch gar nicht notwendig! (Wer eine DS mit mehreren Netzwerkschnittstellen hat, kann auch einfach eine zweite physikalische Schnittstelle konfigurieren und die DS so mit einer zweiten IP ins Netz hängen. Hatte ich einen Zeit lang erfolgreich auch so laufen)Wenn es in diesem Zusammenhang nämlich um die Anbindung von z.B. MariaDB an den ioB geht, dann macht es vielleicht Sinn die DB auch als Container laufen zu lassen. Läuft bei mir aktuell so produktiv, zusammen mit einer Hand voll weiterer Container (redis, phpmyadmin, grafana, ...). Ich habe diesbezüglich auch was als Tutorial in der Pipe, aber das könnte noch ein paar Tage dauern.
Vielleicht als kleiner Teaser geeignet, die Container auf meiner DS (produktiv):
Eine weitere Alternative habe ich mit einem von euch vor einigen Tagen/ Wochen schon mal diskutiert und getestet. Demnach kann man, wenn man dem Container zusätzlich zum MACVLAN ein bridged-Netz zuweist, zwischen DS und den Containern über die IP-Adressen im Bridged-Netz kommunizieren.
Die DS ist dabei das Gateway. In wiefern dass im VPN (ich vermute ihr sprecht über VPN-Server auf der DS) abgebildet werden kann, bin ich überfragt. Ich mache meinen VPN-Zugang zum Netz über meine FritzBox und von dort komme ich problemlos auf meinen ioB.
Aber vielleicht ist das generell ein Ansatz zu dem Thema. In meinem (kurzen) Test dazu konnte ich von der DS die Bridge-Netz-Adresse des ioB pingen, vom ioB andersrum über das Gateway auch die DS... Vielleicht kann das einer von euch mal verifizieren?Falls jemand noch Fragen an mich gerichtet hatte, die ich jetzt vielleicht überlesen habe, bitte einfach nochmal einen kurzen ping an mich. Danke.
MfG,
André -
@andre sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
Ich mache meinen VPN-Zugang zum Netz über meine FritzBox und von dort komme ich problemlos auf meinen ioB.
Habe heute auch mal geschafft hier nochmal etwas nach meinem Beitrag zu lesen und gesehen, dass @dslraser und @Negalein Probleme mit dem VPN haben.
Ich hab mein ioB auch in einem Container mit MACVLAN, eine einzelne IP, die DS hat eine separate eigene über den physische eth0 bzw bei mir bond, da ich die beiden Netzwerkschnittstellen gebündelt habe.
In meiner FritzBox habe ich ein VPN eingerichtet.
Habe gerade mal aufgrund eurer Aussage getestet und mein Handy aus dem WLAN genommen, VPN-Verbindung zur Fritzbox aufgemacht und im Browser http://IP-ioBroker:8081 eingegeben und zack ich bekomme meine Adminseite
Also kann ich @andre nur beipflichten, dass es klappt.Den Ansatz von @andre zusätzlich noch eine Bridge mit auf den Container zu legen finde ich spannend, aber aufgrund der Uhrzeit habe ich jetzt keine Lust mehr das auch noch zu testen *gähn Vielleicht komm ich morgen mal dazu
-
@andre said in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
ker-Entwickler zu Wort melden, aber eigentlich gibt es zu diesem Thema auch so schon eine Menge Lesestoff im Forum. Und letzten Endes ist das auch
Also ich kann auch nur Berichten das das es bisher alles ssuper läuft
Was mich halt stört ein Rebuild Killt meine Netzwerkeinstellungen. Ich habe MACVALNs Bridged usw. drin.
Leider übernimmt er nicht die feste IP von dem MACVLAN ( aus deinem Tutorial geht es da MACVALN nur eine IP hat
Ich habe aber ein MACVLAN mit mehreren Ip.Aber das ist woh eher ein Docker Problem mit den wechselnden IPS usw. Aktuell versuche ich per Hostename = Docker Container Name zu arbeiten.
( Reserve Proxy auf der DS nimmt diese aber nicht nur die IP .. -
@ChrisXY , Du kannst bei der Erstellung des Docker Containers eine feste IP mitgeben, die dann bei jedem Start des Containers gezogen wird.
Am einfachsten ist es die feste IP Adresse mit Portainer einzurichten. Sonst mit dem Parameter --ip sollte es gehen. -
ja habe ich im Portainer Edit: Dann Network gewählt ( Man kann nur eins ) Dort IP4 die IP eingetragen.
Installiert.
Wärend es läuft die andere Netze Hinzugefügt.
So wenn ich nun rebuild mache nimmt der die IP nicht mit ..
Ich muss also immer über EDIT gehen und die IP neu der Macvlan eintragen.. wenn nicht nimmt er per Zufall irgendwas. -
@ChrisXY , was meinst Du mit 'rebuild'. Erstellst Du die Container ständig neu? Ich habe die eine IP Range von ca. 192.168.1.81 bis 192.168.1.91 . Nun habe ich alle Container die eine feste IP Adressen erhalten eine absteigend von 192.168.1.91 vergeben. D.h erste .91, .90, .89 usw. Hintergrund ist, dass bei einem Neustart von Docker die IP Adressen von .81 aufsteigend dynamisch vergeben werden. Und dann ist die IP Adresse für die feste IP Adresse schon vergeben.
-
-
@andre
@Negalein
@Stuebi
@tugsiIch habe es nun doch gleich noch probiert (VPN FritzBox)
VPN über die Fritzbox und macvlan funktioniert.
VPN über die Synology (IPSec) funktioniert bei mir nicht.
Keine Ahnung was der VPN Server der Synology anders macht bzw. ob man das auch auf der Synology anders einstellen könnte. -
@dslraser sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
@andre
@Negalein
@Stuebi
@tugsiIch habe es nun doch gleich noch probiert (VPN FritzBox)
VPN über die Fritzbox und macvlan funktioniert.
VPN über die Synology (IPSec) funktioniert bei mir nicht.
Keine Ahnung was der VPN Server der Synology anders macht bzw. ob man das auch auf der Synology anders einstellen könnte.OK, da ich VPN mit der Fritz schon gemacht hatte, als ich noch kein DS hatte, war mir auch gar nicht der Gedanke gekommen, den woanders aufzubauen.
Ich sehe es auch als "bessere" Variante direkt am "Eingang" den Tunnel aufzubauen.
Aber ist vielleicht auch Geschmacksache.Aber schön zu sehen, dass man jetzt sagen kann, wo es nicht funktioniert, warum ist ja noch ein anderes Thema
-
@dslraser sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
@andre
@Negalein
@Stuebi
@tugsiIch habe es nun doch gleich noch probiert (VPN FritzBox)
VPN über die Fritzbox und macvlan funktioniert.
VPN über die Synology (IPSec) funktioniert bei mir nicht.
Keine Ahnung was der VPN Server der Synology anders macht bzw. ob man das auch auf der Synology anders einstellen könnte.Genau so habe ich es erwartet. Das ist, weil du per VPN ja über die DS rein kommst und die DS ja nicht mit dem ioB kommunizieren kann (siehe oben). Jetzt könnte man m as l versuchen den ioB mal über seine bridge-Netz IP zu erreichen. Könnte aber sein, dass man dazu auf dem VPN Client noch eine Route einrichten muss... Kann ich aber nicht sicher sagen, ist alles nur Theorie. Habe keine Möglichkeit das zu verifizieren.
Hast du an deiner DS eventuell noch ne freie Netzwerkschnittstelle? Vielleicht wäre es sinnvoll die DS mit nem zweiten Bein (zweite IP) ins Netz zu bringen und macvlan auf diese Schnittstelle um zu konfigurieren. Das sollte auf jeden Fall funktionieren...MfG,
André -
@andre
ja, habe noch eine frei. Kann ich am WE mal ausprobieren. -
@andre sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
Vielleicht wäre es sinnvoll die DS mit nem zweiten Bein (zweite IP) ins Netz zu bringen und macvlan auf diese Schnittstelle um zu konfigurieren. Das sollte auf jeden Fall funktionieren...
Heißt dann aber, dass ich den zweiten LAN-Port meiner DS718+ dann auch physikalisch mit meinem Netzwerk verbinden muss, oder? Ein Rerouting von LAN-Port 1 auf LAN-Port 2 innerhalb der DS ist vermutlich nicht möglich?
-
@dtp sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
@andre sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
Vielleicht wäre es sinnvoll die DS mit nem zweiten Bein (zweite IP) ins Netz zu bringen und macvlan auf diese Schnittstelle um zu konfigurieren. Das sollte auf jeden Fall funktionieren...
Heißt dann aber, dass ich den zweiten LAN-Port meiner DS718+ dann auch physikalisch mit meinem Netzwerk verbinden muss, oder? Ein Rerouting von LAN-Port 1 auf LAN-Port 2 innerhalb der DS ist vermutlich nicht möglich?
Ja, der Port muss dann natürlich auch mit ins Netzwerk.
-
So,
hab jetzt mal den LAN2-Anschluss meiner DS718+ mit der IP-Adresse 192.168.0.11 aktiviert. LAN1 hatte ja bereits die IP-Adresse 192.168.0.10.
Danach habe ich MACVLAN mit der Netzwerk-Karte eth1 (für LAN1) und der IP-Adresse 192.168.0.12 erstellt, um schließlich unter dieser IP-Adresse den ioBroker-Container anzulegen.
Nun klappt auch wieder der Zugriff vom ioBroker auf die unter der IP-Adresse 192.168.0.10 laufenden mariaDB-10-Datenbank über den SQL-Adapter.
Sieht soweit also ganz gut aus, wenn da nicht noch das Problem mit dem Update des js-controllers wäre. Oder geht das mittlerweile auch?
-
@dtp
den jscontroller habe ich damit gemacht -
@dtp
hier auch eine Anleitung.https://forum.iobroker.net/topic/22867/how-to-node-js-für-iobroker-richtig-updaten
-
@dslraser sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
@dtp
den jscontroller habe ich damit gemacht@dtp dem kann ich nur beipflichten, habe heute auch mein jsController so upgedatet.
erstpskill io
dann
iobroker upgrade self
danach habe ich noch
npm rebuild
gemacht und danach den iobroker wieder gestartet mit
node node_modules/iobroker.js-controller/controller.js >/opt/scripts/docker_iobroker_log.txt 2>&1 &
Jetzt rennt der auf der Version 5.11
-
So, ich habe jetzt von V1 auf V2 upgegradet. Das läuft seit ein paar Tagen stabil.
Für V3 heißt es in der Anleitung von Andre „Mit dem Bridged Mode hingegen kann man als Einsteiger nicht viel falsch machen. Allerdings muss hierbei jeder benötigte (Kommunikations-)Port separat als Weiterleitung im Container eingetragen sein.“.
Bisher bin ich mit dem Host-Modus ausgekommen. Obwohl es ja nicht funktionieren soll. Oder gilt das nur für die V3?
Jedenfalls fühle ich mich als Netzwerk-Einsteiger und würde es mit dem Bridge-Mode versuchen. Aber in der Anleitung wird der Bridge-Mode vernachlässigt. Wo muss man in Portainer die Ports konfigurieren? Muss man unbedingt neue Ports definieren? Hatte bisher ja auch keine Probleme.
Kann vielleicht jemand kurz die Konfiguration des Bridge-Mode erklären?
Danke und Gruß
Bongo