Table des matières
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
- Teamspeak 3 serveur sur la page officiel
- Une interface web a savoir TS3WI (TeamSpeak 3 Web interface)
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.