Обзор развертывания сервера Counter-Strike 2¶
Предварительные требования и базовые условия¶
Для развертывания сервера Counter-Strike 2 необходимы следующие системные характеристики и конфигурации:
-
Операционная система: Ubuntu (совместимая с менеджером пакетов
apt). -
Архитектура: Требуется поддержка архитектур
amd64иi386. -
Привилегии: Для установки и конфигурации необходим доступ root или права
sudo. -
Домен: Сервер использует зону
hostkey.in. -
Порты: Серверу требуется сетевой доступ для игрового трафика и управления; конкретные порты описаны в разделе Доступные порты.
FQDN конечной панели¶
Полное доменное имя (FQDN) для доступа к панели сервера имеет следующий формат: plane<Server ID>.hostkey.in:<port>
Где:
-
plane— настроенный префикс. -
<Server ID>— уникальный идентификатор конкретного экземпляра сервера. -
<port>— номер порта, назначенный для сервиса.
Структура файлов и каталогов¶
Приложение и его компоненты организованы в следующей структуре каталогов:
-
Каталог установки:
/opt/cs2 -
Содержит инструменты
steamcmdи файлы игры. -
Файлы игры:
/opt/cs2/game -
Содержит бинарные файлы Counter-Strike 2 и игровые данные.
-
Файлы конфигурации:
/opt/cs2/game/game/csgo/cfg/cs2server.cfg -
Хранит настройки конфигурации сервера.
-
Steam SDK:
/root/.steam/sdk64 -
Содержит библиотеку
steamclient.so, необходимую для сервера. -
Скрипт управления:
/root/cs2server.sh -
Shell-скрипт, используемый для управления жизненным циклом сервера.
-
Файл логов:
/var/log/cs2server.log -
Хранит логи выполнения сервера.
-
Файл PID:
/tmp/cs2server.pid -
Хранит идентификатор процесса (PID) запущенного сервера.
-
Конфигурация Nginx:
/data/nginx/user_conf.d -
Содержит пользовательские файлы конфигурации Nginx.
-
Окружение Nginx:
/data/nginx/nginx-certbot.env -
Содержит переменные окружения для контейнера Nginx.
Процесс установки приложения¶
Сервер Counter-Strike 2 устанавливается с помощью утилиты steamcmd. Процесс включает следующие шаги:
-
Конфигурация репозитория: В систему добавляется репозиторий
multiverse, и активируется архитектураi386для поддержки 32-битных библиотек. -
Установка пакетов: Пакет
steamcmdустанавливается через менеджер пакетовapt. -
Настройка SteamCMD: Бинарный файл
steamcmdзагружается и распаковывается в/opt/cs2. -
Установка игры: Инструмент
steamcmdвыполняется для загрузки и проверки приложения Counter-Strike 2 (App ID730) в каталог/opt/cs2/game. -
Конфигурация библиотек: Библиотека
steamclient.soкопируется из каталога установки в/root/.steam/sdk64. -
Развертывание конфигурации: Файл конфигурации сервера
cs2server.cfgразмещается в каталоге конфигурации игры. -
Развертывание скрипта управления: Скрипт
cs2server.shустанавливается в/rootс правами на выполнение.
Контейнеры Docker и их развертывание¶
Развертывание включает контейнер Docker для веб-сервера Nginx и управления SSL. Контейнер определен с использованием конфигурации Docker Compose.
Детали контейнера:
-
Образ:
jonasal/nginx-certbot:latest -
Политика перезапуска:
unless-stopped -
Режим сети:
host -
Окружение:
-
CERTBOT_EMAIL: Установлено значениеhkadm@hostkey.com -
Дополнительные переменные окружения загружаются из
/data/nginx/nginx-certbot.env. -
Томы (Volumes):
-
nginx_secrets: Монтируется в/etc/letsencryptдля хранения SSL-сертификатов. -
/data/nginx/user_conf.d: Монтируется в/etc/nginx/user_conf.dдля пользовательских конфигураций Nginx.
Файл Docker Compose находится по пути, указанному в контексте развертывания, и управляет жизненным циклом сервиса Nginx.
Прокси-серверы¶
Сервер использует Nginx в качестве обратного прокси-сервера и точки терминации SSL.
-
ПО: Nginx с интеграцией Certbot.
-
Управление SSL: Автоматизировано через образ контейнера
jonasal/nginx-certbot. -
Пользовательские домены: Конфигурируются через том
nginx_secretsи каталог пользовательской конфигурации. -
Расположение конфигурации: Пользовательские конфигурации Nginx хранятся в
/data/nginx/user_conf.d.
Настройки разрешений¶
Разрешения на файлы и каталоги установлены следующим образом для обеспечения корректной работы:
-
Каталог установки (
/opt/cs2):0755(rwxr-xr-x). -
Каталог Steam SDK (
/root/.steam/sdk64):0755с рекурсивными правами. -
Файл конфигурации (
/opt/cs2/game/game/csgo/cfg/cs2server.cfg): Владелецroot:root, режим0755. -
Скрипт управления (
/root/cs2server.sh): Владелецroot:root, режим0755.
Расположение файлов конфигурации и данных¶
Ключевые файлы конфигурации и данные находятся по следующим путям:
-
Конфигурация сервера:
/opt/cs2/game/game/csgo/cfg/cs2server.cfg -
Скрипт управления:
/root/cs2server.sh -
Переменные окружения Nginx:
/data/nginx/nginx-certbot.env -
Пользовательские конфигурации Nginx:
/data/nginx/user_conf.d -
SSL-сертификаты:
/etc/letsencrypt(монтированный том) -
Логи сервера:
/var/log/cs2server.log -
Идентификатор процесса:
/tmp/cs2server.pid
Доступные порты для подключения¶
Конкретные порты для подключения к игре и управления определяются в файле конфигурации cs2server.cfg и настройках прокси Nginx. Контейнер Nginx работает в режиме сети host, что позволяет прямой доступ к настроенным портам.
Запуск, остановка и обновление¶
Сервером Counter-Strike 2 управляется с помощью скрипта cs2server.sh, расположенного по пути /root/cs2server.sh. Скрипт поддерживает следующие команды:
-
Запуск:
Запускает процесс сервера в фоновом режиме, записывает вывод в/var/log/cs2server.logи сохраняет PID в/tmp/cs2server.pid. -
Остановка:
Завершает работающий процесс сервера и удаляет файл PID. -
Перезапуск:
Останавливает сервер, ждет 2 секунды, а затем запускает его снова. -
Статус:
Проверяет, запущен ли процесс сервера на основе файла PID, и сообщает текущий статус.
Бинарный файл сервера выполняется из /opt/cs2/game/game/bin/linuxsteamrt64/cs2 с аргументом +exec cs2server.cfg.