суббота, 17 марта 2012 г.

TS3 MySQL Debian Squeeze [RU]


Установка Team Speak 3 server с MySQL на Debian Squeeze


Сейчас попробую показать, как устанавливать TS3 3.0.2 на Debian Squeeze. Установка описывается для архитектуры amd64



Сперва сделаем папку, куда будем "собирать" TS3
cd ~
mkdir ./ts3s
mkdir ./ts3s/deb
cd ./ts3s
Нам понадобится пакет TS3 под нашу архитектуру (Я использую amd64) и библиотека limbysqlclient.15.so (в репозиториях Squeeze есть только 16я, так что 15ю мы утянем из Lenny)
Идем на сайт TeamSpeak.com и получаем ссылку на скачивание .tar.gz под свою архитектуру (у меня - amd64)
Затем топаем на http://packages.debian.org/ru/lenny/libmysqlclient15off  (с 2012 - http://archive.debian.org/debian/pool/main/m/mysql-dfsg-5.0/ ) и получаем ссылку на скачивание .deb-пакета (тоже под свою архитектуру, для LENNY).
wget http://teamspeak.gameserver.gamed.de/ts3/releases/3.0.2/teamspeak3-server_linux-amd64-3.0.2.tar.gz 
wget http://archive.debian.org/debian/pool/main/m/mysql-dfsg-5.0/libmysqlclient15off_5.0.51a-24+lenny5_amd64.deb
Устанавливаем MySQL и утилиты к нему.
sudo apt-get install mysql-server mysql-client 
Устанавливаем библиотеку libmysqlclient.15:

sudo dpkg -i ./libmysqlclient15off_5.0.51a-24+lenny5_amd64.deb
Распаковываем сервер TS3
tar -xvf ./teamspeak3-server_linux-amd64-3.0.2.tar.gz
Создаем структуру папок для установки в стиле Debian
mkdir ./deb/etc
mkdir ./deb/usr
mkdir ./deb/var
mkdir ./deb/etc/init.d
mkdir ./deb/etc/ts3-server
mkdir ./deb/usr/lib
mkdir ./deb/usr/lib/ts3-server
mkdir ./deb/usr/bin
mkdir ./deb/usr/share
mkdir ./deb/usr/share/ts3-server
mkdir ./deb/var/ts3-server 
Copy files from original TS3 distro to our new debian-style TS3 directory structure.
Скопируем файлы из распакованного дистрибутива TS3 в папки нашей Debian-структуры
Обращаю внимание, что всякую ерунду типа документаций, копирайтов, лицензий я не трогаю, ибо оно нам не надо на сервере
echo Copying and renaming an executable..
cp ./teamspeak3-server_linux-amd64/ts3server_linux_amd64 ./deb/usr/bin/ts3-server 
echo Copying SQL-TS3 Libraries
cp ./teamspeak3-server_linux-amd64/libts3db_*sql*.so ./deb/usr/lib/ts3-server/
echo Copying SQL-TS3 statement templates
cp --recursive ./teamspeak3-server_linux-amd64/sql ./deb/usr/share/ts3-server/
Теперь создадим файлы в нашей структуре, которые TS3 будет использовать
echo Creating LICENSE file. Replace it if you have one. 
touch ./deb/etc/ts3-server/licensekey.dat 
echo Creating MYSQL-CONF file. You shold edit it 
touch ./deb/etc/ts3-server/ts3-server.mysql 
echo Creating COMMANDLINE-CONF file. You should edit it 
touch ./deb/etc/ts3-server/ts3-server.mysql 
echo Creating INIT.D file. You should edit it 
touch ./deb/etc/init.d/ts3-server
echo filling them with data
echo 'machine_id=MachineId' >  ./deb/etc/ts3-server/ts3-server.cmdlines
echo 'dbplugin=ts3db_mysql' >>  ./deb/etc/ts3-server/ts3-server.cmdlines
echo 'dbsqlcreatepath=create_mysql/' >>  ./deb/etc/ts3-server/ts3-server.cmdlines
echo 'query_ip=127.0.0.1' >>  ./deb/etc/ts3-server/ts3-server.cmdlines
echo 'dbpluginparameter=/etc/ts3-server/ts3-server.mysql' >>  ./deb/etc/ts3-server/ts3-server.cmdlines
echo '[config]' >  ./deb/etc/ts3-server/ts3-server.mysql
echo 'host=localhost' >>  ./deb/etc/ts3-server/ts3-server.mysql
echo 'port=3306' >>  ./deb/etc/ts3-server/ts3-server.mysql
echo 'username=ts3s-default' >>  ./deb/etc/ts3-server/ts3-server.mysql
echo 'password=somepassword' >>  ./deb/etc/ts3-server/ts3-server.mysql
echo 'database=ts3db_default' >>  ./deb/etc/ts3-server/ts3-server.mysql
echo 'socket=' >>  ./deb/etc/ts3-server/ts3-server.mysql


Теперь нам нужно сделать скрипт init.d для "кошерного" запуска нашего сервера TS3. Он основан на оригинальном ts3server_startscript.sh, который идет в дистрибутиве TS3. Из изменений добавлена поддержка "размазанных" по файловой системе файлов TS3, запуск под непривилегированным пользователем и т.д.
Мой init.d уже готов,его можно посмотреть на pastebin  http://pastebin.com/H7wPSsNM  . Нам нужно его скачать.
sudo wget http://pastebin.com/download.php?i=H7wPSsNM
 -O ./deb/etc/init.d/ts3-server
chmod +x ./deb/etc/init.d/ts3-server
После мы зыпускаем MySQL и создаем пользователя и базу для TS3
sudo /etc/init.d/mysql start
Входим в консоль MySQL под пользователем root и паролем, который вы во время установки поставили
mysql -u root -p
И делаем следующие команды:
Замените "ts3db" именем базы,которое вам больше нравится. Кстати, желательно не использовать базу,которой уже пользуется какой-либо сервис, и не давать базу TS3 кому-либо потом.
CREATE DATABASE ts3db;
Create a TS3Server MYSQL user `ts3server` with password `somepassword` (remember it) and grant him access to any tables in database `ts3db`)
Создаем пользователя MySQL для TS3. Имя пользователя `ts3server`, пароль `somepassword` (замените на что-нибудь свое) и даем ему права на базу,которую мы создали ранее (ts3db)
GRANT ALL PRIVILEGES on ts3db.* TO ts3server@localhost IDENTIFIED BY 'somepassword';
Выходим из консоли MySQL
EXIT;
Теперь со спокойной душой мы переносим ту структуру каталогов,которую мы создали,на "боевое" место
sudo cp --recursive ./deb/* /
И надо еще изменить несколько параметров.
Сперва, поправьте machine_id. Хотя это практически не нужно, но для красоты.
sudo nano /etc/ts3-server/ts3-server.cmdlines
Измените поле machine_id= , затем нажмите CTRL+X, затем Y
Прошу заметить что я не предусмотрел возможности внесения комментариев в этот файл, так что каждая строка в нем передается в программу при запуске.
Теперь, надо поправить параметры доступа к MySQL
sudo nano /etc/ts3-server/ts3-server.mysql
Поправьте все,что нужно, затем CTRL+X, Y

Наконец, добавим пользователя в систему для TS3. По-умолчанию, мой init.d использует пользователя ts3-server в группе ts3-server, так что добавляем его. Если что,скрипт запуска и сам его создаст.
sudo /usr/sbin/adduser --system --no-create-home --shell /bin/true --group --disabled-password --disabled-login ts3-server
(!) Первый запуск. Он будет отличаться от последующих!
sudo /etc/init.d/ts3-server nodaemon clear_database=1
Вы увидите что-то похожее на :
                      I M P O R T A N T
------------------------------------------------------------------
              Server Query Admin Acccount created
         loginname= "serveradmin", password= "IGKPLW2s"
------------------------------------------------------------------
И
                      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=Z8YeSl1+wapPLSA61JLevEpSEEmrE0knYoMe8KgX
------------------------------------------------------------------
Скопируйте все поля,помеченные красным куда-нибудь. Первый - это пароль администратора сервера для работы через QueryConsole. Он используется в WEB-интерфейсе или при работе через TELNET. Второй - это ваш ключ повышения полномочий.
Нажмите CTRL+C и уведите примерно следующее
INFO    |ServerMain    |   | Received signal SIGINT, shutting down.
INFO    |VirtualServer |  1| stopped
Теперь попробуем запуститься в "нормальном" режиме
sudo /etc/init.d/ts3-server start
Проверим, что TS3 запустился и "висит" на нужных нам сетевых портах.
sudo netstat --numeric --listening --programs | grep ts3-server

Вы увидите что-то вроде
tcp        0      0 0.0.0.0:10011           0.0.0.0:*               LISTEN      18551/ts3-server 
tcp        0      0 0.0.0.0:30033           0.0.0.0:*               LISTEN      18551/ts3-server 
udp        0      0 0.0.0.0:9987            0.0.0.0:*                           18551/ts3-server
Теперь добавим сервер в авто запуск
sudo update-rc.d ts3-server defaults

Проверим,что все добавилось
ls /etc/rc2.d/ | grep ts3-server
Все, сервер настроен.

Теперь вам нужно запустить TS3-клиент и присоединиться к серверу. Клиент попросит вас дать ему ключ полномочий (который мы копировали выше). Дайте его ему.

Дополнительно для администрирования я использую TS3-WebInterface  (Как раз то место,где используется пароль serveradmin)
http://addons.teamspeak.com/directory/tools/web-based/Teamspeak-3-Webinterface-by-Psychokiller.html

Получить NPL лицензию можно тут http://npl.teamspeakusa.com/ts3npl.php (Она дает до 10 виртуальных серверов и до 512 клиентов (на все серверы)

Комментариев нет:

Отправить комментарий