Hallo zusammen,
aktuell betreibe ich auf einem Dell T20 ein ESXi6.7. Auf einer VM laufen FHEM, Nexcloud und ein paar eigene Webseiten (Apache, PHP, Mysql). Sicherung erfolgt über rsync und WireGuard.
Nun steht ein Systemumzug (ESXi7.0 auf Dell T30) an.
Weil ein paar zukünftige App-Wünsche (z.B. https://tandoor.dev/) auf Docker und PostgreSQL setzen, suche ich eine sinnvolle Migrationsstrategie. Leider kenne ich Docker bisher nur aus der Literatur und habe keine praktischen Erfahrungen damit. Meine Idee ist bisher soweit fortgeschritten:
- Eine VM (Debian) als Docker-Host, darauf nativ einen PostgresSQL-Server (den ich dann aus allen Docker-Containern nutzen kann) und Apache/nginx als Reverse Proxy und letsencrypt-Host
- einzelne Docker-Container für FHEM, Nextcloud, etc
- Umstellung aller DBs vom Mysql auf Postgres
Ist das so machbar oder habe ich einen grundlegenden Denkfehler?
Vielen Dank für alle konstruktiven Meinungen.!
Bei deinem Konstrukt halte ich ESX für überflüssig.
Lass alles, wie's ist. Wenn's funktioniert, warum ändern?
Für Docker machst du - wie geplant - eine eigene VM. Postgres kannst du als eigenen Docker-Container aufsetzen und dann von allen anderen Containern (oder VMs) aus nutzen.
Ich würde auf dem Docker Host nur Docker installieren - maximal irgendwelche Hardwaretreiber - alle andere Software kommt konsequent in Container.
Der ESXi muss bleiben, da werkeln noch ein paar andere VMs ;) Alles in Container zu packen macht mir Bauchschmerzen wegen des Backups (aktuell sichere ich die MySQL-DBs mit mysqldump und schiebe das Ergebnis über ein VPN (wireguard) auf ein OMV-NAS), dazu die Datenverzeichnisse der Nextcloud. Ich werde mich jetzt mal in Docker einlesen und mit einem Container für die Postgres-Datenbanken starten...
Du kannst doch auch Datenbanken innerhalb eines Containers sichern ... mache ich mit mysql so.
Der Vorteil: Wenn Du in jedem Projekt eine DB hast, hast Du unabhängige Datenbanken. Wenn also Projekt X jetzt eine besondere Einstellung der DB will ... kann es einfach diese Einstellung bekommen, ohne das andere Projekte ...
Alternativ: Anstatt auf dem Docker-Host kannst Du auch eine VM mit PostgressDB machen. Dann können die Container auf diese Zugreifen.
Ich kenne sgar Leute, die für Unabhängige Docker-Projekte unabhängige VMs machen.
Hintergrund: VMs erhöhen die Sicherheit. Docker erstmal nicht. (Und ja, ich bin Docker Fan und Administrator)
Ich habe eine ähnliche Umgebung.
NUC mit ESXi und einer VM als Docker Host. Jede Anwendung/Projekt hat eine eigene Datenbank, ist für Backup/Restore einfacher.
Docker sichere ich mit Duplicati. Dafür mappe ich alle Volumes, configs, ... einer Anwendung in einen Pfad. Diesen Pfad sichere ich mit Duplicati
Möchte ich die Anwendung wiederherstelle oder auf einen anderen Docker Host umziehen, ist das super einfach möglich.
Bei Tandoor muss man z.B. aufpassen, wenn der nginx Pfad geändert wird. Mit einem Trick bekommt man das aber hin.
OFFTOPIC: Vllt gibt es ja bald ein Modul für Tandoor (Shopping List)
https://forum.fhem.de/index.php/topic,125287.msg1199047.html#msg1199047
Zitat von: TWART016 am 03 Februar 2022, 02:43:22
Bei Tandoor muss man z.B. aufpassen, wenn der nginx Pfad geändert wird. Mit einem Trick bekommt man das aber hin.
Das ist jetzt total Off-Topic, aber was wäre der Trick?
Zitat von: drhirn am 03 Februar 2022, 07:55:46
Das ist jetzt total Off-Topic, aber was wäre der Trick?
Du musst die Recipe.conf manuell anlegen und mappen. Wenn du Fragen hast PM oder bei Tandoor im Discord oder Github.
https://docs.tandoor.dev/install/docker/#volumes-vs-bind-mounts