Teamspeak synchronisieren

  • Guten Tag,


    ich wollte wissen ob es möglich ist, dass wenn ein User auf einem Teamspeak bestimmte Server-Gruppen bekommt dies mit einem anderem Teamspeak Server der die gleichen Server-Gruppen hat synchronisiert werden kann. Sodass
    der User immer auf beiden Teamspeak Servern die Selber Servergruppe hat.

    • Offizieller Beitrag

    Hallo,
    ja, das wäre möglich. Ist aber mit etwas Aufwand verknüpft.


    Die Servergruppen haben auf jedem Server unterschiedliche "Servergruppen IDs" (sgid). Du sprichst eine Servergruppe nie mit Namen, sondern immer mit den sgid's an, da diese serverseitig eindeutig sind.


    Du müsstest jetzt ein Skript in z.B. PHP entwickeln, welches regelmäßig (z.B. per Cronjob alle 60 Sekunden oder auch 5 Minuten) die Mitglieder der Servergruppen ausliest und diese dann mit der zu synchronisierenden Servergruppe vergleicht und entsprechend anpasst.


    Nachfolgend kurz ein paar Stichpunkte, was zu tun ist, wenn du von Server A nach B synchronisieren möchtest:

    • Server A: Lese die Mitglieder-Liste der Servergruppe #1 aus
    • Server B: Lese die Mitglieder-Liste der Servergruppe #1 aus
    • Vergleiche auf Basis von den Daten des Server A, ob auf Server B entsprechende Mitglieder vorhanden sind
      • Ist auf Server A ein Mitglied vorhanden, welches auf Server B auch vorhanden ist, passt es und das Skript muss nichts machen
      • Ist auf Server A ein Mitglied vorhanden, welches auf Server B fehlt, füge das Mitglied auf Server B hinzu
      • Ist auf Server A ein Mitglied entfernt worden, also weniger, sollte dieses auf Server B noch vorhanden sein und muss dort entfernt werden

    Das kann unter Umständen etwas komplex werden, wenn du in beide Richtungen synchronisieren möchtest, weil dann musst du nämlich in beide Richtungen prüfen. Ja, die Logik ist genau die selbe, nur eben von Server B auf Server A, also einmal die Server tauschen.


    Es könnte aber durchaus zum Problem werden, wenn du mehrere oder auch nur ein Skript verwendest, denn dann passiert u.U. so etwas:

    • Ein Mitglied wird auf Server A aus einer Servergruppe entfernt
    • Sync-Skript für Server A nach B hat diese Information gesammelt und möchte das Mitglied auch auf dem Server B entfernen
    • Sync-Skript für Server B nach A hat zeitgleich die Information gesammelt, dass auf Server B ein Mitglied einer Servergruppe vorhanden ist, welches auf Server A fehlt und möchte daher diesen entsprechend auf Server A hinzufügen

    Dadurch hast du eine endlose Schleife, die damit endet, dass nichts mehr synchronisiert wird. :D


    Dein Sync-Skript muss also irgendwie, irgendwoher wissen, welcher Datenbestand einer Servergruppe der aktuellere ist. In der Serverlog der einzelnen virtuellen Server steht normalerweise drin, wenn ein Mitglied einer Servergruppe hinzugefügt oder entfernt wurde. "Normalerweise" deshalb, weil das Logging kann auch deaktiviert sein/werden. ;)


    Hierfür müsste man dann also noch eine Lösung finden, wenn du in beide Richtungen synchronisieren möchtest... :)

    Viele Grüße,
    Sebbo

    ---

    DevOps Engineer <3