Перейти к содержанию

Обзор развертывания сервера Counter-Strike 2 на сервере

Предварительные требования и базовые условия

Для развертывания сервера Counter-Strike 2 требуются следующие системные характеристики и права доступа:

  • Операционная система: Ubuntu (с использованием репозитория multiverse и поддержкой архитектуры i386).

  • Привилегии: Для установки системных пакетов, управления директориями и выполнения скрипта управления сервером необходим доступ root или права sudo.

  • Зависимости: Пакет steamcmd должен быть установлен через менеджер пакетов apt.

  • Сеть: Требуется доступ к интернету для загрузки клиента SteamCMD и обновления игровых бинарных файлов.

Структура файлов и директорий

Приложение и связанные с ним компоненты организованы в конкретных директориях на сервере:

  • Директория установки: /opt/cs2

  • Игровые бинарные файлы и данные: /opt/cs2/game

  • Конфигурация сервера: /opt/cs2/game/game/csgo/cfg/cs2server.cfg

  • Директория Steam SDK: /root/.steam/sdk64

  • Скрипт управления сервером: /root/cs2server.sh

  • Файл идентификатора процесса (PID): /tmp/cs2server.pid

  • Файл логов: /var/log/cs2server.log

Процесс установки приложения

Процесс установки включает настройку окружения, установку SteamCMD и загрузку файлов сервера Counter-Strike 2.

  1. Настройка репозитория: В источники APT добавляется репозиторий multiverse, а также активируется архитектура i386 для поддержки устаревших зависимостей.

  2. Установка пакетов: Системные пакеты обновляются, а пакет steamcmd устанавливается с помощью apt.

  3. Создание директорий: Создаются директория установки /opt/cs2 и директория Steam SDK /root/.steam/sdk64 с правами доступа 0755.

  4. Настройка SteamCMD: Клиент SteamCMD загружается и распаковывается в /opt/cs2.

  5. Загрузка игры: Сервер Counter-Strike 2 (ID приложения 730) загружается и проверяется через SteamCMD с использованием команды force_install_dir.

  6. Связывание библиотек: Файл steamclient.so копируется из /opt/cs2/linux64/ в /root/.steam/sdk64/ для обеспечения совместимости библиотек.

  7. Конфигурация и скрипты: Файл конфигурации сервера cs2server.cfg разворачивается в /opt/cs2/game/game/csgo/cfg/, а скрипт управления cs2server.sh помещается в /root/.

Контейнеры Docker и их развертывание

В развертывание входит контейнер Nginx, настроенный для управления SSL-сертификатами и работы в качестве прокси-сервера.

  • Образ контейнера: jonasal/nginx-certbot:latest

  • Режим сети: Контейнер работает в режиме сети хоста (host network mode).

  • Привязка томов (Volume Mounts):

  • nginx_secrets: Внешний том, привязанный к /etc/letsencrypt.

  • /data/nginx/user_conf.d: Привязан к /etc/nginx/user_conf.d для пользовательских конфигураций.

  • Переменные окружения:

  • CERTBOT_EMAIL: Установлено значение hkadm@hostkey.com.

  • Дополнительные настройки загружаются из /data/nginx/nginx-certbot.env.

Прокси-серверы

Контейнер Nginx функционирует как основной прокси-сервер, обрабатывающий завершение SSL (SSL termination) и маршрутизацию трафика.

  • Функциональность: Контейнер использует Certbot для автоматического управления SSL-сертификатами.

  • Управление секретами: Секреты SSL хранятся во внешнем томе Docker nginx_secrets.

  • Конфигурация: Пользовательские конфигурации Nginx должны располагаться в /data/nginx/user_conf.d на хосте, что напрямую мапится в контейнер.

Запуск, остановка и обновление

Операции с сервером управляются через пользовательский shell-скрипт, расположенный в /root/cs2server.sh. Скрипт принимает следующие аргументы:

  • Start (Запуск): Запускает бинарный файл сервера, расположенный по адресу /opt/cs2/game/game/bin/linuxsteamrt64/cs2, с флагом -dedicated и загружает конфигурацию cs2server.cfg. Процесс выполняется в фоновом режиме через nohup, а его идентификатор записывается в /tmp/cs2server.pid.

  • Stop (Остановка): Считывает PID из /tmp/cs2server.pid, завершает процесс и удаляет файл PID.

  • Restart (Перезапуск): Выполняет команду остановки, выжидает 2 секунды, а затем выполняет команду запуска.

  • Status (Статус): Проверяет наличие файла PID и подтверждает, запущен ли процесс в данный момент.

Команды для управления службой:

/root/cs2server.sh start
/root/cs2server.sh stop
/root/cs2server.sh restart
/root/cs2server.sh status

Настройки прав доступа

Права доступа к файлам и директориям устанавливаются в процессе развертывания для обеспечения безопасности и функциональности:

  • Права доступа к директориям:

  • /opt/cs2: 0755

  • /root/.steam: 0755

  • /root/.steam/sdk64: 0755 (рекурсивно)

  • Права доступа к файлам:

  • /opt/cs2/game/game/csgo/cfg/cs2server.cfg: 0755 (владелец: root, группа: root)

  • /root/cs2server.sh: 0755 (владелец: root, группа: root)

Расположение файлов конфигурации и данных

Следующие пути содержат критически важные файлы конфигурации и данные времени выполнения:

  • Конфигурация сервера: /opt/cs2/game/game/csgo/cfg/cs2server.cfg

  • Скрипт управления: /root/cs2server.sh

  • Окружение Nginx: /data/nginx/nginx-certbot.env

  • Пользовательские конфиги Nginx: /data/nginx/user_conf.d

  • SSL-сертификаты: Управляются внутри тома Docker nginx_secrets.

  • Логи времени выполнения: /var/log/cs2server.log

  • Идентификатор процесса: /tmp/cs2server.pid

question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×