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

Обзор развертывания 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.

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

Установка сервера выполняется вручную или с использованием скриптов, имитирующих действия установщика. Процесс включает следующие этапы:

  1. Добавление репозитория multiverse в список источников пакетов Ubuntu.
  2. Добавление архитектуры i386 в систему командой dpkg --add-architecture i386.
  3. Обновление списка пакетов и установка последних версий всех доступных обновлений.
  4. Создание директории /opt/cs2 с правами доступа 0755.
  5. Принятие лицензионного соглашения Steam через пакетный менеджер.
  6. Установка пакета steamcmd через apt.
  7. Загрузка и распаковка архива steamcmd_linux.tar.gz в директорию /opt/cs2.
  8. Создание директории /root/.steam для хранения данных клиента.
  9. Создание директории /root/.steam/sdk64 для размещения библиотеки клиента.
  10. Запуск скрипта steamcmd.sh с параметрами для автоматической установки игры:
    • Указание директории установки: force_install_dir /opt/cs2/game.
    • Вход в систему анонимно: login anonymous.
    • Обновление приложения с идентификатором 730 (Counter-Strike 2) с проверкой целостности файлов: app_update 730 validate.
  11. Копирование файла steamclient.so из /opt/cs2/linux64 в /root/.steam/sdk64.
  12. Развертывание файла конфигурации cs2server.cfg в /opt/cs2/game/game/csgo/cfg/.
  13. Развертывание скрипта управления 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.

Доступные команды:

  • Запуск сервера:

    /root/cs2server.sh start
    
    Команда запускает сервер в фоновом режиме, записывает PID в файл /tmp/cs2server.pid и выводит логи в /var/log/cs2server.log.

  • Остановка сервера:

    /root/cs2server.sh stop
    
    Команда завершает процесс сервера по PID, указанному в файле /tmp/cs2server.pid, и удаляет файл PID.

  • Перезапуск сервера:

    /root/cs2server.sh restart
    
    Команда останавливает сервер, ждет 2 секунды и запускает его заново.

  • Проверка статуса:

    /root/cs2server.sh status
    
    Команда проверяет наличие файла PID и активность процесса, выводя текущее состояние сервера.

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