Installation de TeamSpeak 3 sur Ubuntu

TeamSpeak 3 (TS3) est un logiciel gratuit vous permettant de communiquer vocalement avec des amis.

Préinstallation global

Récupération des packages

Un des changement majeurs de TS3 sur TS2 est de ne plus avoir d'interface web integré. Donc il va falloir récupérer et installer 2 éléments pour contrôler totalement TS3

Prérequis et détails d'installation

Il faut donc au préalable :

  • Un serveur linux Avec Apache et PHP (pour l'interface web)
  • unrar
  • tar
  • TS3 et ses données seront installé dans /opt/teamspeak3/
  • TS3WI dans /opt/ts3wi/

La configuration utilisera sqlite comme base de donnée. (il est possible de l'interfacer avec mysql)

téléchargement et décompression

on trouve les adresse réels de téléchargement et on récupère tout ça sur le serveur en ssh avec wget

mkdir dl
cd dl
wget http://teamspeak.gameserver.gamed.de/ts3/releases/3.0.6.1/teamspeak3-server_linux-x86-3.0.6.1.tar.gz
wget "http://addons.teamspeak.com/index.php?option=com_mtree&task=att_download&link_id=53&cf_id=24" -O ts3wi_3.2.rar
unrar x ts3wi_3.2.rar
tar xzf teamspeak3-server_linux-x86-3.0.6.1.tar.gz

(a adapter au versions du moment)

Installation des fichiers au bon endroit

sudo mkdir /opt
sudo mv ts3wi /opt/ts3wi
sudo mv teamspeak3-server_linux-x86 /opt/teamspeak3

TeamSpeak 3

Préparation du liens de démarrage en mode service

Création du lien symbolique pour le démarrage du serveur.

sudo ln -s /opt/teamspeak3/ts3server_startscript.sh /etc/init.d/teamspeak3-server

Premier démarrage

Nous avons crée un lien de démarrage du service que l'on va utiliser tout de suite.

sudo /etc/init.d/teamspeak3-server start

Avant de rendre la main, le script de démarrage devrait afficher deux messages importantes

------------------------------------------------------------------
                      I M P O R T A N T
------------------------------------------------------------------
               Server Query Admin Account created
         loginname= "serveradmin", password= "d3cjmuM0"
------------------------------------------------------------------

Ce sont les codes pour accéder au serveur dans le mode “Server Query”. Ces codes seront utilisé pour accéder au serveur par l'interface web que l'on a téléchargé a coté

------------------------------------------------------------------
                      I M P O R T A N T
------------------------------------------------------------------
      ServerAdmin privilege key created, please use it to gain
      serveradmin rights for your virtualserver. please
      also check the doc/privilegekey_guide.txt for details.

       token=bse9bl+WRkzsr7Gh6EwpSRe1bNRLnii1kt5d4hOm
------------------------------------------------------------------

c'est la ligne token=bse9bl+WRkzsr7Gh6EwpSRe1bNRLnii1kt5d4hOm qui nous intéresse. En effet, elle contient un token qui permet d'obtenir l’accès administrateur sur le premier serveur TS configuré par défaut.

Après avoir récupéré ces données, on insert le service dans les scripts de démarrages du serveur.

sudo update-rc.d teamspeak3-server defaults

A partir de la, le service est en démarrage automatique avec la machine avec les valeurs classiques.

Autre possibilité pour régler plus finement le service

sudo update-rc.d teamspeak3-server start 30 2 . stop 30 0 6 .

Cette commande fait la même chose a l'exception quelle permet de définir la priorité dans l'ordre de démarrage des services. (ici 30) et les 'runlevels' ou il faut démarrer (2) et ou il faut arrêter (0 et 6) le service. Ça permet par exemple de démarrer TS3 après le serveur MySQL si le service TS3 utilise Mysql comme base de donnée.

en cas d'erreur on peut réinitialiser les paramètres de démarrage du service pour pouvoir recommencer.

sudo update-rc.d -f teamspeak3-server remove

Connexion au serveur

Normalement le serveur devrait être en route avec le serveur virtuel par défaut.

Il suffit donc de se connecter dessus en utilisant l'IP ou le DNS du serveur comme destination.

Pour récupérer les droits d'administration utilisez le token depuis le client dans le menu “Permissions → Use Privilege Key”. Vous devriez récupérer immédiatement le status de “Server Admin”.

Politique de licence

Dans les logs de TS3, il est fort probable que vous ayez un message comme le suivant.

WARNING|Accounting|Unable to find valid license key,
                   falling back to limited functionality

Ceci indique que vous n'avez pas de clef de licence enregistré chez la société TeamSpeak. Le serveur tournera tout a fait correctement sans cette clef mais il sera limité a un nombre d'utilisateurs concourants de 32 utilisateurs sur un seul serveur virtuel.

Une “Non-Profit license” est récupérable a condition de ne pas “vendre” le serveur TS3. Elle permet de passer de 32 a 512 utilisateurs maximum et de 1 a 10 serveurs virtuels. Après avoir suivi la procédure d'enregistrement, vous récupérez un fichier a placer dans le dossier de TS3. Il sera pris en compte après un redémarrage du serveur. et le log devrait montrer ceci :

INFO|Accounting|Licensing Information
                type              : Non-profit
                starting date     : Mon Aug  6 00:00:00 2012
                ending date       : Sun Feb 10 00:00:00 2013
                max virtualservers: 10
                max slots         : 512

Note : le nombre de “slots” est global et pas par serveur virtuel.

Pour plus d'information, voir la FAQ sur le site officiel

TS3WI (TeamSpeak 3 Web Interface)

La configuration est assez simple car l'interface utilise l'interface “Server Query”

Ajout du liens vers le serveur web

Nous allons utiliser le chemin ”/admin/ts3wi” dans la configuration de base d'apache. A adapter suivant vos préférence.

sudo mkdir /var/www/admin
sudo ln -s /opt/ts3wi /var/www/admin/ts3wi

Edition de la configuration

ouvrez la configuration avec votre éditeur de fichiers préféré.

sudo vi /opt/ts3wi/config.php

Dans le fichier la seul chose a changer dans notre cas est la langue qui est en allemand par défaut.

$cfglang        =       "de";

vers

$cfglang        =       "en";

Les autres options sont assez explicites. mais les plus importants sont

$server[0]['alias']= "Lokaler Server";
$server[0]['ip']= "127.0.0.1";
$server[0]['tport']= "10011";

Mise en place des droits au niveau des fichiers

Un certains nombres de fichiers/dossiers doivent pouvoir accéder au données en lecture/écriture.

chmod 777 /opt/ts3wi/icons
chmod 777 /opt/ts3wi/temp
chmod 777 /opt/ts3wi/templates_c
chmod -R 777 /opt/ts3wi/site/backups

Normalement l'interface web de gestion est fonctionnel et accessible par l'adresse http://serveur.domaine.tld/admin/ts3wi/

Il faut alors utiliser les identifiants récupéré lors du premier lancement de TS3. Dans note exemple serveradmin / d3cjmuM0 .

L'interface permet de gérer les serveur et les droits/configurations associés.

Cadeau Bonux

Utilisation de la configuration DNS pour identifier facilement un serveur

Dans des temps anciens, les joueurs avaient l'habitude de demander l'IP du seveur TS ainsi que le port. une partie d'entre eux savaient a peut prés comment ça marchait mais pas forcément.

Teamspeak 3 permet d'utiliser plusieurs methodes pour identifier un serveur

  • IP/port (123.123.123.123:9987)
  • DNS/Port (serveur.domaine.tld:9987)
  • DNS avec TDNS (serveur.domaine.tld)
  • DNS avec enregistrement SRV (domaine.tld, portnawak.domaine.tld)

la dernière méthode est quand même la classe ultime.

Ca tombe bien c'est celle que je vais vous montrer

Elle repose sur l'utilisation de 2 ou plusieurs enregistrements DNS.

  • Un enregistrement A ou CNAME
  • Un ou plusieurs enregistrements SRV.
Nom          Type   Valeur                       TTL 	
srv-ts3      A      123.123.123.123              3h
srv-ts3      CNAME  un.serveur.quelquepart.net   3h
  • L'utilisation de l'enregistrement A permet un accés direct par un IP a un serveur dédié en ip fixe.
  • L'utilisation de l'enregistrement CNAME permet un accés a une machine dont nous ne maitrisons pas l'IP. (IP dynamique, serveur externe, …)

Note : un seul des deux est nécessaire (on ne crée pas deux enregistrements pour le même nom de machine)

Nom                  Type    Valeur               TTL 	
_ts3._udp            SRV     10 0 9987 srv-ts3    3h
_ts3._udp.ts3        SRV     10 0 9987 srv-ts3    3h
_ts3._udp.ts3.clan2  SRV     10 0 9989 srv-ts3    3h

dans cet exemple on définit le service _ts3._udp pour 3 nom d'hote virtuels

  • domaine.tld qui renvoie vers le serveur srv-ts3.domaine.tld avec le port 9987
  • ts3.domaine.tld qui renvoie vers le serveur srv-ts3.domaine.tld avec le port 9987
  • ts3.clan2.domaine.tld qui renvoie vers le serveur srv-ts3.domaine.tld avec le port 9989

On s’aperçoit que les deux premiers sont en fait le même serveur car ils partagent le même nom de machine réel et le même port

Le dernier quand a lui est un deuxième serveur virtuel du service TeamSpeak3 car il renvoie vers la même machine mais pas sur le même port.

A l'usage, l'utilisateur ne rentre que le nom d'hote 'virtuel' de l'enregistrement SRV correspondant sans le N° de port. (sans le _ts3._udp. de devant) Et ce même si le N°de port n'est pas standard car le client TeamSpeak 3 va automatiquement récupérer ces informations depuis le DNS.

Teamspeak3 permet d'utiliser des url de connexion automatiques

  • ts3server://domaine.tld
  • ts3server://ts3.domaine.tld
  • ts3server://ts3.clan2.domaine.tld

au lieux de

  • ts3server://srv-ts3.domaine.tld
  • ts3server://srv-ts3.domaine.tld?port=9989
  • ts3server://srv-ts3.domaine.tld:9988

Bref, la classe international.

Remarque:

En utilisant plusieurs enregistrement SRV sur la même URI (ex:_ts3._udp.ts3) avec le “priorité” différent, cela permettrait de définir un serveur de “Fail Over”. Ce qui permettrait en cas d'indisponibilité de retomber sur une autre machine.

_ts3._udp.ts3        SRV     10 0 9987 srv-ts3    3h
_ts3._udp.ts3        SRV     20 0 9987 srv-ts3-backup    3h

Malheureusement, cette fonctionnalité pourtant standard n'est pas encore géré dans les différents logiciels clients TeamSpeak 3.

Script de sauvegarde

il y a quelques choses importantes a sauvegarde.

  • La base de donnée (ts3server.sqlitedb)
  • la clef du serveur (serverkey.dat)
  • Les fichiers du transfert de données (le dossier files)

on crée le dossier de destination :

sudo mkdir /opt/teamspeak3/backup

on crée le script :

sudo vi /opt/teamspeak3/backup.sh
#!/bin/sh

Origine='/opt/teamspeak3'
Dest='/opt/teamspeak3/backup'
cp $Origine/ts3server.sqlitedb $Dest
cp $Origine/serverkey.dat $Dest
tar czf $Dest/files.tgz $Origine/files
sudo chmod +x /opt/teamspeak3/backup.sh

Rajouter ce script dans la crontab du serveur a une heure peut active (6h du matin par exemple

sudo vi /etc/crontab
# m   h   dom  mon  dow  user  command
0     6   *    *    *    root  /opt/teamspeak3/backup.sh

Note : La sauvegarde est faite dans le même dossier que l'installation. Il serait plus judicieux de la placer ailleurs sur le disque pour éviter les mauvaises manipulation. Voir même transmettre ces fichiers dans un emplacement de stockage externe (FTP d'un autre serveur, Mail, ….) a l'exception du fichier 'files.tgz' qui peut être assez gros (il contient les avatars et les fichiers du serveur de fichiers) que l'on pourrait envoyer 1 fois par mois/semaine au lieux de tous les jours.

Utilisation de MySQL comme base de donnée de gestion pour TS3

Sur les versions récentes de Ubuntu (12.04) il n'est pas possible d'utiliser la base mysql avec TS3. Cela est du a un changement de version de la librairie libmysqlclient qui n'est plus disponible que dans les versions 16 et 17 alors que TS3 nécessite une version 15.

Dernière modification: le 17/01/2014 à 12:22 par Clément F.