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:

mutecloud.toml (Leiter)
[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_API

Sorg 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-1

Die Ä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 join

Ohne 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:

FrageWas du eingibst
Was soll eingerichtet werdenvorausgewählt: Diese Maschine einem bestehenden Netzwerk hinzufügen
Beitrittscodevorausgefüllt, mit Enter bestätigen
Zielverzeichniswo MuteCloud liegen soll, zum Beispiel /opt/mutecloud
Adresse dieser Maschinedie Adresse, unter der der Proxy diesen Server erreicht, meist seine Tailscale-Adresse
Name dieser Nodemuss im Netzwerk eindeutig sein, vergebene Namen lehnt das Setup ab
Arbeitsspeicher für alle Server zusammenwie viel RAM die Spielserver auf diesem Server gemeinsam nutzen dürfen
Welche Gruppen soll diese Node zusätzlich übernehmenmit der Leertaste auswählen, mit Enter bestätigen, leer lassen geht auch
systemd-Dienstunter 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 list

Die 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 überall

Server, 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.

Auf dieser Seite