====== Installation de TeamSpeak 3 sur Ubuntu ======
[[http://www.teamspeak.com/|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 [[http://www.teamspeak.com/?page=downloads|la page officiel]]
* Une interface web a savoir [[http://addons.teamspeak.com/directory/tools/web-based/Teamspeak-3-Webinterface-by-Psychokiller.html|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 [[http://www.teamspeak.com/?page=faq&cat=ts3#ts3_license_models|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.