NEWS
Testsystem aufsetzten, wie?
-
Hallo Gemeine,
Ich möchte jetzt endlich auch ein vernünftiges Testsystem aufsetzen.
Meine Iobroker läuft in einer VM unter Proxmox. Also die VM klonen und fertig?Meine Bedenken:
So Sachen wie sql oder Backitup müsste ich dann ja tot legen damit mein Produktiv System nicht evtl. beschädigt wird.
Ansonsten, keine Ahnung wie Gateways (Hue, tradfri, Homematic usw.) auf die geschrieben wird sich verhalten, wenn 2 iobroker mit den Teilen reden.
Wie macht ihr das so? -
@linedancer Sehr gute Frage, da häng ich mich mal dran. Bei mir stört das Testsystem immer das Produktivsystem. LG
-
ich habe in meinen besten Zeiten bis zu 10 verschiedene Einplatinenrechner mit der selben Installation bespielt, um deren Performance vergleichen zu können.
Problemlos, wenn man Scripte u.ä. deaktiviert. Die greifen sonst ineinander.
Aber warum soll backitup stören? -
@linedancer so wie @Homoran habe ich das auch.
Ich habe "damals" einfach meinen mehr oder weniger produktiven Server unter Proxmox VE4 geklont und dann ganz normal als Testserver betrieben.
Du willst deine Scripts auf dem Testserver und die Gateways des "produktiven" Systems nutzen? Sollte auf den ersten Blick fuktionieren. Ich persönlich habe das aber noch nie so ausprobiert, da ich zum Testen eine komplett separate Infrastruktur habe.
-
ich mach das über docker. damit es keine probleme mit verbogenen ports gibt
mache ich das über ein macvlan netzwerk, welches separat in docker konfiguriert wurde.hier mein docker-compose file bzw. portainer stack
der ganze datei-zweig habe ich auf dem host über die volumes-angabe
herausgeführt, um im zweifel komfortabel nachschauen zu können.
wenn man das nicht benötigt, kann man die 2 zeilen zu Volumes herauslassen.
Dann wird die volume nur intern gebildet.die ip adresse sollte natürlich zum vorgesehenen segment passen
version: '2.1' services: iobrokertest: restart: always image: buanet/iobroker:latest container_name: iobrokertest hostname: iobrokertest ports: - "8081:8081" volumes: - iobrokertest:/opt/iobroker networks: dockerMACVLAN: ipv4_address: 192.168.1.81 networks: dockerMACVLAN: external: true volumes: iobrokertest:
ein eigenes macvlan kann man über den folgenden befehl erzeugen.
das sind jetzt meine daten. um die individuell anpassen zu können, muss man ein paar dinge wissen. ich gehe auch davon aus, das ihr ein C-Klasse-Netz habt (erste 3 Ziffern der IP gleich und Netzwerkmaske 255.255.255.0)
die folgenden werte könnt ihr über den heise netzwerk-rechner selbst herausfinden
https://www.heise.de/netze/tools/netzwerkrechner/Subnet ist der Name eures Netzes mit Netzwerkmaske. Die 24 ist eine andere notation für 255.255.255.0 und nennt sich CIDR Suffix. Im ersten gebt ihr die größe des gesamten Subnetz an.
ip-range ist der bereich, der tatsächlich als ip-adressen im macvlan verfügbar sind.
ihr dürft einem einzelnen container nur eine ip-adresse aus diesem bereich zuordnen.
Die 28 sagt etwas aus, wieviel IP-Adressen in diesem Bereich verfügbar sind (hier 14)
die 192.168.1.80 ist die erste IP in diesem Bereich. Es kann nicht jede beliebige IP-Adresse als Startpunkt genommen werden. Welche, sagt euch der Netzwerk-rechner, in dem ihr im ersten Feld eine gewünschte Adresse eingebt und mit cidr eine größe wählt. die anderen Felder werden dann entsprechend berechnet.
natürlich darf eurer router bzw. eurer dhcp-service diese ip-adressen nicht auch noch verteilen. dort ist der bereich dann auszuschließengateway ist die adresse eures routers (meist .1)
parent ist der name der netzwerkschnittstelle auf eurem host (früher bspw eth0)
herausfinen könnt ihr den folgenden befehl:sudo ifconfig -a
dort wählt ihr den namen aus, bei dem die ip-adresse eures docker-hosts steht.
docker network create -d dockerMACVLAN \ --subnet=192.168.1.0/24 \ --ip-range=192.168.1.80/28 \ --gateway=192.168.1.1 \ -o parent=enp3s0
wenn das erfolgreich geklappt hat, könnt ihr dieses netzwerk wie im beispiel für einen container verwenden.
-
Danke für den input.
Ich nehm jetzt erstmal mit, das ich den JavaScript Adapter deaktiviere, für den sql Adapter eine neue Datenbank anlege und für Backitup einen neuen Backup-Pfad definiere.Mal schauen was dabei raus kommt….
@OliverIO
Danke für deinen Input, aber das übersteigt wohl meine Fähigkeiten.