Обзор развертывания CS2 на сервере¶
Предпосылки и предварительные требования¶
Для корректной работы сервера необходимо наличие операционной системы Ubuntu. Требуется доступ к системе с правами суперпользователя (root) для установки пакетов и настройки конфигурации.
Системные требования включают: - Доступ к интернету для загрузки пакетов и файлов игры. - Поддержка архитектуры i386 для совместимости с клиентом Steam. - Наличие свободного места в директории /opt/cs2 для установки игровых файлов. - Открытые порты для работы игрового сервера и веб-сервера (Nginx).
Структура файлов и каталогов¶
Файлы приложения и конфигурации размещаются в следующих директориях:
/opt/cs2— корневая директория установки сервера Counter-Strike 2./opt/cs2/game— директория с файлами игры, установленными черезsteamcmd./opt/cs2/game/game/bin/linuxsteamrt64/cs2— исполняемый файл сервера./opt/cs2/game/game/csgo/cfg/cs2server.cfg— файл конфигурации сервера./root/.steam/sdk64/steamclient.so— библиотека клиента Steam, необходимая для работы сервера./root/cs2server.sh— скрипт управления сервером./tmp/cs2server.pid— файл, хранящий идентификатор процесса запущенного сервера./var/log/cs2server.log— файл логов работы сервера./data/nginx— директория для конфигурации и данных веб-сервера./etc/letsencrypt— точка монтирования для сертификатов SSL.
Процесс установки приложения¶
Установка сервера выполняется вручную или с использованием скриптов, имитирующих действия установщика. Процесс включает следующие этапы:
- Добавление репозитория
multiverseв список источников пакетов Ubuntu. - Добавление архитектуры
i386в систему командойdpkg --add-architecture i386. - Обновление списка пакетов и установка последних версий всех доступных обновлений.
- Создание директории
/opt/cs2с правами доступа0755. - Принятие лицензионного соглашения Steam через пакетный менеджер.
- Установка пакета
steamcmdчерезapt. - Загрузка и распаковка архива
steamcmd_linux.tar.gzв директорию/opt/cs2. - Создание директории
/root/.steamдля хранения данных клиента. - Создание директории
/root/.steam/sdk64для размещения библиотеки клиента. - Запуск скрипта
steamcmd.shс параметрами для автоматической установки игры:- Указание директории установки:
force_install_dir /opt/cs2/game. - Вход в систему анонимно:
login anonymous. - Обновление приложения с идентификатором
730(Counter-Strike 2) с проверкой целостности файлов:app_update 730 validate.
- Указание директории установки:
- Копирование файла
steamclient.soиз/opt/cs2/linux64в/root/.steam/sdk64. - Развертывание файла конфигурации
cs2server.cfgв/opt/cs2/game/game/csgo/cfg/. - Развертывание скрипта управления
cs2server.shв/root/.
Контейнеры Docker и их запуск¶
Для обеспечения работы веб-сервера и управления сертификатами используется контейнер Docker. Конфигурация описана в файле compose.yml.
Используемый образ: jonasal/nginx-certbot:latest.
Параметры запуска контейнера: - Политика перезапуска: unless-stopped. - Режим сети: host. - Переменная окружения CERTBOT_EMAIL установлена в значение hkadm@hostkey.com. - Файл переменных окружения: /data/nginx/nginx-certbot.env. - Монтирование внешнего тома nginx_secrets в директорию /etc/letsencrypt для хранения сертификатов. - Монтирование локальной директории /data/nginx/user_conf.d в /etc/nginx/user_conf.d для пользовательских конфигураций.
Запуск контейнера осуществляется через команду docker compose up -d в директории, содержащей файл compose.yml.
Прокси серверы¶
В качестве прокси-сервера используется Nginx в контейнере Docker. Сервер настроен для автоматического получения и обновления SSL-сертификатов через Certbot.
Настройки прокси: - Доменное имя и конфигурация SSL управляются через переменные в файле /data/nginx/nginx-certbot.env. - Пользовательские конфигурации Nginx размещаются в директории /data/nginx/user_conf.d. - Сертификаты хранятся в директории /etc/letsencrypt, которая монтируется из внешнего тома.
Настройки прав¶
Права доступа к файлам и директориям настроены следующим образом:
- Директория
/opt/cs2и её содержимое имеют права0755. - Директория
/root/.steamимеет права0755. - Директория
/root/.steam/sdk64имеет права0755с рекурсивным применением. - Файл конфигурации
/opt/cs2/game/game/csgo/cfg/cs2server.cfgпринадлежит пользователюrootи группеrootс правами0755. - Скрипт управления
/root/cs2server.shпринадлежит пользователюrootи группеrootс правами0755.
Запуск, остановка и обновление¶
Управление сервером Counter-Strike 2 осуществляется с помощью скрипта /root/cs2server.sh.
Доступные команды:
-
Запуск сервера:
Команда запускает сервер в фоновом режиме, записывает PID в файл/tmp/cs2server.pidи выводит логи в/var/log/cs2server.log. -
Остановка сервера:
Команда завершает процесс сервера по PID, указанному в файле/tmp/cs2server.pid, и удаляет файл PID. -
Перезапуск сервера:
Команда останавливает сервер, ждет 2 секунды и запускает его заново. -
Проверка статуса:
Команда проверяет наличие файла PID и активность процесса, выводя текущее состояние сервера.