Eine Node hinzufügen
Schritt für Schritt, wie ein zweiter Server einem laufenden MuteCloud-Netzwerk beitritt und welche Gruppen er übernimmt.
Ein laufendes Netzwerk bekommt in fünf Schritten einen weiteren Server. Der Leiter wird einmal vorbereitet und gibt einen Beitrittscode aus, auf dem neuen Server braucht es dann nur noch einen einzigen Befehl. Um den Rest kümmert sich das Setup auf dem neuen Server, auch darum, welche Gruppen dort laufen sollen. Die Grundlagen dazu stehen unter Cluster.
Der Beitrittscode ist ein Schlüssel
Der Code enthält das Token der Cloud. Wer ihn hat, hat die volle Kontrolle über das Netzwerk, und die neue Node bekommt jede Vorlage, samt der Plugin-Konfigurationen mit ihren Datenbankpasswörtern. Gib ihn nur an Server weiter, die du oder dein Team betreiben.
1. Beide Server in ein privates Netzwerk bringen
Aus Sicherheitsgründen lassen sich Nodes nicht über das offene Internet verbinden. Über die Cluster-Schnittstelle laufen Befehle, Vorlagen und Passwörter, im Internet wäre sie eine Angriffsfläche für das ganze Netzwerk. MuteCloud koppelt Nodes deshalb nur innerhalb eines privaten Netzes, und sowohl der Leiter als auch die neue Node lehnen alles andere ab. Die Gründe stehen unter Nur privates Netzwerk.
Bring beide Server zuerst in ein gemeinsames Netz. Am schnellsten geht das mit Tailscale: auf beiden Servern installieren und im selben Tailnet anmelden. Headscale, NetBird, ZeroTier, ein selbst eingerichteter WireGuard-Tunnel, das private Netz deines Hosting-Anbieters oder ein ganz normales LAN funktionieren genauso. Die Adresse, die du später verwendest, ist die, die der jeweilige Server in diesem Netz hat.
2. Den Steuer-Port des Leiters öffnen
Standardmäßig nimmt der Leiter nur Verbindungen vom eigenen Rechner an. In seiner mutecloud.toml:
[api]
bind = "0.0.0.0:8770"Aus dem Internet darf der Port nicht erreichbar sein. Unter Linux mit Tailscale reicht eine
kleine Kette von Firewall-Regeln. Bei anderen Netzen ersetzt du 100.64.0.0/10 durch den
Adressbereich deines privaten Netzes:
iptables -N MC_API
iptables -A MC_API -s 127.0.0.0/8 -j ACCEPT
iptables -A MC_API -s 100.64.0.0/10 -j ACCEPT
iptables -A MC_API -j DROP
iptables -I INPUT -p tcp --dport 8770 -j MC_APISorg dafür, dass die Regeln einen Neustart überstehen, zum Beispiel mit einem kleinen
systemd-Dienst, der vor MuteCloud startet. Starte die Cloud danach einmal neu. Kündige das vorher
mit announce an, denn dabei starten alle Spielserver neu.
3. Festlegen, was auf der neuen Node laufen darf
Gruppen ohne nodes-Eintrag laufen auf jeder Node. Sobald der neue Server beitritt, würde die
Cloud dort also auch Proxys und Lobbys starten. Wenn du das nicht willst, bindest du deine Gruppen
vorher an den Leiter:
groups Proxy set nodes node-1
groups Lobby set nodes node-1
groups BedWars set nodes node-1Die Änderung gilt sofort, ohne Neustart. Beim Beitritt bietet das Setup genau diese gebundenen Gruppen zur Auswahl an, so entscheidest du für jede Gruppe, ob die neue Node mithilft.
4. Den Beitrittscode ausgeben
In der Konsole des Leiters:
node joinOhne Adresse wählt der Leiter selbst seine beste eigene Adresse, eine Tailscale-Adresse zuerst.
Du kannst auch selbst eine angeben, zum Beispiel node join 100.64.0.1. Die Ausgabe enthält den
Code und je einen fertigen Einzeiler für Linux und für Windows. Der Code bleibt gültig, solange
sich das Token des Leiters nicht ändert.
5. Den Einzeiler auf dem neuen Server ausführen
Füge den Einzeiler für Linux oder Windows aus Schritt 4 auf dem neuen Server ein. Der Installer lädt MuteCloud herunter, prüft die Prüfsumme und startet das Setup, das den Code bereits kennt. Anschließend fragt es:
| Frage | Was du eingibst |
|---|---|
| Was soll eingerichtet werden | vorausgewählt: Diese Maschine einem bestehenden Netzwerk hinzufügen |
| Beitrittscode | vorausgefüllt, mit Enter bestätigen |
| Zielverzeichnis | wo MuteCloud liegen soll, zum Beispiel /opt/mutecloud |
| Adresse dieser Maschine | die Adresse, unter der der Proxy diesen Server erreicht, meist seine Tailscale-Adresse |
| Name dieser Node | muss im Netzwerk eindeutig sein, vergebene Namen lehnt das Setup ab |
| Arbeitsspeicher für alle Server zusammen | wie viel RAM die Spielserver auf diesem Server gemeinsam nutzen dürfen |
| Welche Gruppen soll diese Node zusätzlich übernehmen | mit der Leertaste auswählen, mit Enter bestätigen, leer lassen geht auch |
| systemd-Dienst | unter Linux ja, dann startet MuteCloud beim Hochfahren |
Nach der Bestätigung schreibt das Setup die Konfiguration, trägt die ausgewählten Gruppen beim Leiter ein und bietet an, die Cloud direkt zu starten. Beim Start verbindet sich die Node mit dem Leiter, holt die Vorlagen und übernimmt Server.
Das Ergebnis prüfen
Auf einem beliebigen Node:
node listDie neue Node sollte als worker mit dem Zustand verbunden erscheinen. service list zeigt,
welche Server jetzt wo laufen. Startet auf der neuen Node nichts, prüf, ob mindestens eine Gruppe
sie zulässt (groups <name>) und ob ihr Arbeitsspeicher für einen Server dieser Gruppe reicht.
Zuordnung später ändern
Gruppen lassen sich jederzeit und von jeder Node aus verlegen:
groups BedWars set nodes node-1,node-2 genau diese Nodes
groups BedWars set nodes +node-3 eine Node hinzufügen
groups BedWars set nodes -node-3 eine Node entfernen
groups BedWars set nodes all wieder überallServer, die auf einer entfernten Node schon laufen, laufen weiter, bis sie enden oder gestoppt werden. Neue starten nur noch auf den eingetragenen Nodes.
Eine Node entfernen
Nimm die Node mit groups <name> set nodes -<node> aus jeder Gruppe, warte, bis auf ihren
Servern niemand mehr spielt, und stoppe dann MuteCloud auf diesem Server. Der Leiter meldet die
verlorene Verbindung über den Webhook und entfernt die Spieler der Node aus der Spielerliste.