Содержание
Установка Teamspeak в Debian 9
Исходные данные: Debian 9, вместо SQLite будет использоваться MySQL. Пример установки с SQLite смотрите в статье Установка Teamspeak в CentOS 7
Установка MariaDB
Если у вас уже установлена MariaDB, то эту часть можно пропустить.
Обновляем кэш пакетов и обновляем ПО
# apt-get update && apt-get upgrade
Устанавливаем MariaDB
# apt-get install mariadb-client mariadb-server
Выполняем первончальную настройку через mysql_secure_installation
# mysql_secure_installation Enter current password for root (enter for none): <enter> Set root password? [Y/n] y New password: <вводим_пароль> Remove anonymous users? [Y/n] y Disallow root login remotely? [Y/n] y Remove test database and access to it? [Y/n] y Reload privilege tables now? [Y/n] y
Создаём новую базу данных и mysql-пользователя для работы с Teamspeak
# mysql -u root -p MariaDB [(none)]> CREATE DATABASE teamspeak; MariaDB [(none)]> GRANT ALL PRIVILEGES ON teamspeak.* TO 'ts3'@'localhost' IDENTIFIED BY 'TeamspeakPassword'; MariaDB [(none)]> flush privileges; MariaDB [(none)]> quit;
Дополнительно установим пакет libmariadb2, иначе в дальнейшем запуск сервера будет неудачным со следующей ошибкой
# apt-get install libmariadb2
Добавляем пользователя
Добавляем пользователя от имени которого будет работать teamspeak
# adduser --system --group --disabled-login --shell /usr/sbin/nologin --no-create-home --gecos "" teamspeak Adding system user `teamspeak' (UID 114) ... Adding new group `teamspeak' (GID 118) ... Adding new user `teamspeak' (UID 114) with group `teamspeak' ... Not creating home directory `/home/teamspeak'.
Описание всех опций к команде adduser можно посмотреть на странице manpages
Создаем каталоги и копируем файлы
В качестве рабочего каталога будем использовать /opt
.
Копируем ссылку на Teamspeak 3 Server со страницы https://www.teamspeak.com/en/downloads#server
На момент написания статьи последняя версия 3.2.0
Debian 9 доступен только в 64-битной редакции, поэтому скачиваем 64-битную версию Teamspeak 3 Server.
Скачиваем в каталог /tmp, распаковываем и переносим файлы в каталог /opt/teamspeak
# cd /tmp # wget http://dl.4players.de/ts/releases/3.2.0/teamspeak3-server_linux_amd64-3.2.0.tar.bz2 # tar xfvj teamspeak3-server_linux_amd64-3.2.0.tar.bz2 # mkdir /opt/teamspeak # mv teamspeak3-server_linux_amd64/* /opt/teamspeak/
Заранее принимаем лицензионное соглашение. В противном случае при запуске Teamspeak будет выведено следующее сообщение
Please set the environment variable TS3SERVER_LICENSE to "accept" in order to accept the license agreement. Alternatively, create a file named ".ts3server_license_accepted" in the working directory or start the server with the command line parameter "license_accepted=1". To view the license agreement set TS3SERVER_LICENSE to "view" in order to print the license to the console. Alternatively view the file "LICENSE" in your favorite text viewer yourself.
Создадим файл .ts3server_license_accepted
# touch /opt/teamspeak/.ts3server_license_accepted
Конфигурационный файл Teamspeak
Пример конфигурационного файла /opt/teamspeak/ts3server.ini
.
Явно указываем использовать MariaDB вместо SQLite (опции dbsqlpath, dbplugin, dbsqlcreatepath и dbpluginparameter).
machine_id= default_voice_port=9987 voice_ip=0.0.0.0 licensepath= filetransfer_port=30033 filetransfer_ip=0.0.0.0 query_port=10011 query_ip=0.0.0.0 query_ip_whitelist=query_ip_whitelist.txt query_ip_blacklist=query_ip_blacklist.txt dbsqlpath=sql/ dbplugin=ts3db_mariadb dbsqlcreatepath=create_mariadb/ dbpluginparameter=ts3db_mariadb.ini dbconnections=10 logpath=logs logquerycommands=0 dbclientkeepdays=30 logappend=0 query_skipbruteforcecheck=0
Дополнительно создаём конфигурационный файл для связи с базой данных /opt/teamspeak/ts3db_mariadb.ini
[config] host=127.0.0.1 port=3306 username=ts3 password=TeamspeakPassword database=teamspeak socket=
Права доступа, chown
Теперь, когда созданы все необходимые файлы нужно рекурсивно изменить права для /opt/teamspeak
с помощью команды chown
# chown -R teamspeak:teamspeak /opt/teamspeak
unit-файл
Создаём файл /etc/systemd/system/teamspeak.service
[Unit] Description=Teamspeak 3 Server After=network.target mariadb.service mysql.service [Service] WorkingDirectory=/opt/teamspeak/ User=teamspeak Group=teamspeak Type=forking ExecStart=/opt/teamspeak/ts3server_startscript.sh start inifile=ts3server.ini ExecStop=/opt/teamspeak/ts3server_startscript.sh stop PIDFile=/opt/teamspeak/ts3server.pid #RestartSec=15 #Restart=always [Install] WantedBy=multi-user.target
Добавляем Teamspeak в автозагрузку
# systemctl --system daemon-reload # systemctl enable teamspeak.service
Настройка firewall
Список портов необходимых для работы Teamspeak
Правила для iptables
iptables -A INPUT -p udp --dport 9987 -j ACCEPT iptables -A INPUT -p udp --sport 9987 -j ACCEPT iptables -A INPUT -p tcp --dport 30033 -j ACCEPT iptables -A INPUT -p tcp --sport 30033 -j ACCEPT iptables -A INPUT -p tcp --dport 10011 -j ACCEPT iptables -A INPUT -p tcp --sport 10011 -j ACCEPT
Правила для firewalld
firewall-cmd --zone=public --permanent --add-port=9987/udp firewall-cmd --zone=public --permanent --add-port=10011/tcp firewall-cmd --zone=public --permanent --add-port=30033/tcp firewall-cmd --reload
Первый запуск
Перед запуском сервера через systemctl запустим Teamspeak используя .sh скрипт, чтобы получить privilege key необходимый для администрирования вашего сервера
# cd /opt/teamspeak # ./ts3server_startscript.sh inifile=ts3server.ini
Вводим ключ привилегий
Подключение успешно выполнено
Также можно сразу запустить сервер через systemd командой
# systemctl start teamspeak.service
Privelege key не будет выведен на экран терминала, но его можно найти в лог файле
# cat /opt/teamspeak/logs/* | grep token
Проверяем запуск через systemctl
Старт/Стоп
# systemctl start teamspeak.service # systemctl stop teamspeak.service
Статус
# systemctl status teamspeak.service ● teamspeak.service - Teamspeak 3 Server Loaded: loaded (/etc/systemd/system/teamspeak.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2018-06-06 12:37:21 +03; 1s ago Process: 13242 ExecStart=/opt/teamspeak/ts3server_startscript.sh start inifile=ts3server.ini (code=e Main PID: 13246 (ts3server) Tasks: 4 (limit: 4915) CGroup: /system.slice/teamspeak.service └─13246 ./ts3server inifile=ts3server.ini
Возможные ошибки
unable to load database plugin library "libts3db_mariadb.so", halting!
2018-06-05 12:51:53.929972|CRITICAL|DatabaseQuery | |unable to load database plugin library "libts3db_mariadb.so", halting! TeamSpeak 3 server could not start
Не хватает библиотеки
# ldd /opt/teamspeak/libts3db_mariadb.so linux-vdso.so.1 (0x00007ffd88792000) libmariadb.so.2 => not found libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f7992143000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f7991f26000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f7991b87000) /lib64/ld-linux-x86-64.so.2 (0x00007f799273e000)
Как исправить
# apt-get install libmariadb2
Есть другие мнения (в Debian 9 не работает, рабочий вариант именно с установкой пакета через apt)
1. Создать символическую ссылку
# ln -s /opt/teamspeak/redist/libmariadb.so.2 /opt/teamspeak3-server/libmariadb.so.2
2. Либо просто скопировать файл libmariadb.so.2 из /redist
в каталог c Teamspeak (из /opt/teamspeak/redist
в /opt/teamspeak
).
failed to register local accounting service
Ошибка Server() error while starting servermanager, error: instance check error
Выполнить команду
# mount -t tmpfs tmpfs /dev/shm
Добавить в /etc/fstab
tmpfs /dev/shm tmpfs defaults 0 0
Источник
Минута славы
Наши VPS в Rootwelt (справка для истории, сейчас уже все не так) работают без выключений месяцами
и спокойно выдерживают онлайн 32 пользователей доступных в бесплатной лицензии Teamspeak.
Обсуждение