Как развернуть Minecraft на сервере и сделать бэкап мира

d82pervspatxhxaex5xjqnylzva.png

Minecraft открывает большие возможностями для творчества. Вы можете реализовать креативные идеи, играть вместе с друзьями и создавать сообщество единомышленников. А будучи администратором сервера — получаете полный контроль над поведением игроков, можете поддерживать порядок в сообществе или сохранять изменения мира.

Посмотрим, как развернуть сервер Minecraft на операционной системе Ubuntu и создать бэкапы в объектное хранилище через утилиту s3fs. Подробности — под катом.

Содержание:

→ Как создать сервер Minecraft
→ Как приступить к игре
→ Как сделать бэкап сервера в объектное хранилище

Как создать сервер Minecraft


Аппаратные требования


Для развертывания сервера Minecraft необходимо подобрать определенную конфигурацию, чтоб изображение было плавное и без задержек.

  • Многоядерный процессор с высокой тактовой частотой. Он обеспечит плавный игровой процесс и обработку большого количества запросов от игроков.
  • Оперативная память с объемом от 4 ГБ и выше, особенно если вы планируете хостить сервер с большим количеством игроков и использовать дополнительные модификации.
  • Место на жестком диске нужно рассчитывать для хранения игровых данных, текстур, модов и плагинов.
  • Стабильное высокоскоростное интернет-соединение.


В структуре Selectel вы можете арендовать выделенный сервер или сервер облачной платформы для развертывания сервера Minecraft. Если вам понадобится помощь в выборе сервера, наиболее подходящего для решения ваших целей, пишите нам на sales@selectel.ru или звоните 8 800 555 06 75 — изучим задачу и подберем подходящее решение.


Развертывание сервера


В данной статье мы рассмотрим процесс развертывания сервера на операционной системе Ubuntu. Для начала необходимо подключиться к серверу. Обычно подключение выполняется по SSH, также вы можете воспользоваться web-консолью, если она подключена к вашему серверу.

После подключения в терминале выполняем команду:

sudo apt-get update


Данная команда обновляет список пакетов в Ubuntu, чтобы система могла получить информацию о новых версиях и зависимостях пакетов из официальных источников. Это важный шаг перед установкой новых программ или обновлением уже установленных.

Далее устанавливаем Java Development Kit (JDK). Это комплект разработчика для создания и запуска программ, созданных на языке программирования Java. Мы будем использовать JDK для запуска самого сервера, поскольку сервер Minecraft написан на Java.

Устанавливаем Java Development Kit командой:

sudo apt-get install openjdk-17-jdk


Создаем директорию, в которой будет располагаться сервер Minecraft, и сразу переходим в нее:

mkdir minecraft_server 
cd minecraft_server


Теперь скачиваем утилиту wget, с помощью которой мы сможем загрузить серверный JAR-файл с последней версией Minecraft:

sudo apt-get install wget


JAR-файл (Java Archive) является исполняемым файлом, он содержит необходимые компоненты для запуска сервера Minecraft. В нем лежат код и ресурсы, обеспечивающие работу сервера. Формат JAR является стандартным форматом для дистрибуции и запуска Java-приложений.

Переходим на официальный сайтMinecraft и копируем ссылку при помощи правой кнопки мыши на актуальный файл JAR.

9e01e356b0f25e5e9d2a0241119b43fa.png


Скачиваем файл с помощью утилиты wget и скопированной ссылки:

wget https://piston-data.mojang.com/v1/objects/8dd1a28015f51b1803213892b50b7b4fc76e594d/server.jar


Настало время запустить установленный сервер и отправиться в путешествие по просторам виртуального мира! Запускаем сервер с помощью следующей команды:

java -Xmx1024M -Xms1024M -jar server.jar nogui


Упс! У вас тоже произошла ошибка?

71aac61206dadd73bd6adabb896aaccc.png


Без паники. Ошибки возникли, потому что сервер не смог обнаружить файлы eula.txt (файл лицензионного соглашения конечного пользователя) и server.properties (файл конфигурации). Однако сервер уже автоматически создал их в текущей директории.

Открываем eula.txt с помощью редактора nano:

nano eula.txt


В открывшемся файле на первой строке представлена ссылка на пользовательское соглашение:

#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://aka.ms/MinecraftEULA).


Ознакомьтесь с текстом по ссылке и замените в файле значение параметра eula с false на true. Таким образом вы принимаете условия пользовательского соглашения.

Далее выходим из редактора сочетанием клавиш Ctrl + X. Соглашаемся на сохранение файла, нажав на клавишу Y. И подтверждаем сохранение изменений в eula.txt клавишей Enter.

Снова пробуем запустить наш сервер командой:

java -Xmx1024M -Xms1024M -jar server.jar nogui


Теперь сервер запустился успешно!

d0c5cde9cd9fb9b1d8f3c0a7ea772ee6.png


nblot_ve1t3hcw5bluwc_-did08.png

Как приступить к игре


Изменение параметра online-mode


Автоматически при установке сервера в конфигурационном файле выставлен параметр online-mode = true. Это значит, что сервер Minecraft будет проверять подлинность учетных записей игроков через официальные серверы Mojang перед разрешением доступа к игровому миру. Для отключения проверки нам необходимо изменить значение параметра на false.

Останавливаем наш сервер командой:

stop 


Открываем конфигурационный файл server.properties через редактор nano:

nano server.properties 


На 23 строчке документа находим параметр online-mode и выставляем ему значение false:

d1715ab585e222b237b1ca83bdd2a3ee.png


Дополнительную информацию о параметрах, представленных в файле server.properties, вы можете узнать на Minecraft Wiki.

Далее выходим из редактора сочетанием клавиш Ctrl + X. Соглашаемся на сохранение файла, нажав на клавишу Y. И подтверждаем изменения в server.properties клавишей Enter.

Снова запускаем наш сервер:

java -Xmx1024M -Xms1024M -jar server.jar nogui


Ограничение доступа


При необходимости вы можете ограничить доступ к вашему серверу, использовав оператор whitelist — от английского «белый список». Когда функция whitelist активирована, только игроки, чьи имена присутствуют в списке, смогут подключиться и играть на сервере.

Для включения функции whitelist выполняем команду:


whitelist on


Добавить игрока можно по команде:


whitelist add <имя_игрока>


Ознакомиться с другими командами для изменения параметров игры можно в разделе «Командные консоли» на Minecraft Wiki.

Установка лаунчера и запуск игры


На локальный компьютер скачиваем лаунчер — это программа для запуска других приложений. В нашем случае будем использовать TLauncher.

Открываем лаунчер и внизу появившегося окна указываем имя, с которым будет запущена игра, а также актуальную версию игры — 1.20.4. Нажимаем кнопку Установить:

d02e3d79b3975fb9615e5100cffb6615.png


В открывшемся окне выбираем режим Multiplayer:

ab88205900573aeb88e77c7d689a44f1.png


Добавляем наш сервер по кнопке Add Server:

9c73873a38b083f5db9a6b1595631a33.png


Указываем наименование сервера в поле Server Name и адрес подключения в поле Server Address, после добавляем сервер по кнопке Done:

21a2eaa42cc62d90a8ec419160250552.png


Замените на IP-адрес вашего сервера, на котором развернут и запущен Minecraft.

Наш сервер добавлен и теперь будет отображаться в разделе Multiplayer. Подключиться к запущенному серверу можно по кнопке Join Server:

570f99e4f80f377a15cc8f545e170bb5.png


Как сделать бэкап сервера в объектное хранилище


Бэкапы позволяют предотвратить потерю информации при неисправности оборудования, атаках вредоносного ПО, случайном удалении данных или ошибках по неосторожности. Если у вас есть резервная копия, вы можете восстановить данные и продолжить работу.

Почему объектное хранилище?


Создание бэкапа в объектное хранилище Selectel имеет несколько преимуществ.

  • Масштабируемость. У вас нет ограничения на объем сохраняемых данных. Можете легко добавлять и удалять объекты из хранилища без значительного влияния на производительность.
  • Вариативность доступа. Для работы с объектным хранилищем есть множество консольных и графических инструментов. Можно обращаться к объектам по разным уникальным идентификаторам и получать доступ к ним через API, что упрощает автоматизацию и интеграцию с другими системами.
  • Отказоустойчивость. Каждый объект сохраняется в трех копиях, которые размещаются на отдельных серверах и располагаются в различных стойках. Такая система обеспечивает высокий уровень надежности хранения данных. В случае возникновения проблем с одним сервером или даже поломки всей стойки ваши данные будут в порядке.
  • Стоимость. Плата списывается только за фактически использованное место.
    Это может быть экономически выгодным вариантом по сравнению с традиционными решениями хранения данных. Стоимость хранения 1ГБ составит 2,29 ₽/мес.


Что нам понадобится


  • Контейнер в Объектном хранилище.
  • Сервисный пользователь.
  • S3 ключи для авторизации.


Создание контейнера


Авторизуемся в панели управления my.selectel.ru и переходим в раздел Объектное хранилище. Затем кликаем по кнопке Создать контейнер.

cb3250fe428fbfdf6d517a13b17e1b53.png

Указываем параметры контейнера:

  • Имя: наименование контейнера латинскими буквами с нижним регистром.
  • Тип: Публичный.
  • Класс хранения: Холодное хранение.
  • Адресация: Virtual-Hosted адресация позволяет использовать CORS. Если она включена, ее больше нельзя отключить. Включается на ваше усмотрение.


И кликаем по кнопке Создать контейнер.

79358d2e33f682494837b102d19ccf31.png


Создание сервисного пользователя


Сервисный пользователь — это пользователь с учетной записью для программного доступа к продукту через API и другие инструменты автоматизации.

Для создания сервисного пользователя переходим на страницу настроек профиля, кликнув по кнопке из выпадающего списка Профиль и настройки.

9967ab9d12b9c5080b047d8da9ff9935.png


В разделе Управление пользователями переходим во вкладку Сервисные пользователи и нажимаем на кнопку Добавить пользователя.

be1adf3a54857565a57aef0de3381cdd.png


В параметрах при добавлении пользователя указываем роль Администратор объектного хранилища и проект облачной платформы, в котором находится наш контейнер. В завершение создаем пользователя по кнопке Добавить пользователя.

63c3e51be79307d2e5cce05a0bdb63fd.png


Выдача S3 ключа


Переходим в карточку пользователя, нажав на его имя. В нашем случае Стив.

3e89bc3b8ccb639e940aeba0457911aa.png


Для выдачи S3 ключа нажимаем кнопку Добавить ключ в разделе S3 ключи.

9ecf30b5b855fa91a97caceb54fbc5e6.png


Указываем наименование ключа и проект, которому он будет привязан. Для создания нажимаем кнопку Сгенерировать.

bfb54fdc00256e438328b06bab4bb847.png


В открывшемся окне вы увидите значения:

  • Access key — Access Key ID, идентификатор ключа;
  • Secret key — Secret Access Key, секретный ключ.


Обязательно сохраните значения созданного ключа, потому что после закрытия окна вы не сможете больше увидеть значение Secret key. В рамках панели управления будет отображаться только наименование ключа, проект, которому он принадлежит, и значение Access key.

Бэкап мира через утилиту s3fs


Рассмотрим создание бэкапа в объектное хранилище через утилиту s3fs. Это удобный инструмент для монтирования объектного хранилища в виде файловой системы.

Для начала устанавливаем утилиту s3fs командой:

sudo apt-get update sudo apt-get install s3fs


Далее создаем файл с данными для авторизации в домашней директории:

echo ":" > .passwd-s3fs


Замените accessKeyId и secretAccessKey на ваши данные для авторизации, которые мы получали ранее через панель управления.

Теперь необходимо убедиться, что файл имеет ограниченные права доступа, для обеспечения безопасности ваших учетных данных:

chmod 600 ~/.passwd-s3fs


Создаем пустую директорию, которая будет использоваться для монтирования контейнера:

mkdir ~/minecraft_backup


Теперь монтируем контейнер командой:

s3fs <наименование_контейнера> <путь_к_каталогу монтирования> -o passwd_file=<путь_файлу_с_данными_авторизации> -o use_path_request_style -o endpoint=ru-1 -o url=https://s3.ru-1.storage.selcloud.ru


Подставим в команду данные, которые мы использовали ранее:

s3fs <наименование_контейнера> ~/minecraft_backup -o passwd_file=~/.passwd-s3fs -o use_path_request_style -o endpoint=ru-1 -o url=https://s3.ru-1.storage.selcloud.ru


Переносим все данные из директории, где хранятся данные нашего сервера minecraft_server, в примонтированный контейнер minecraft_backup через утилиту cp:

cp ~/minecraft_server ~/minecraft_backup


Готово! Теперь вы умеете разворачивать сервер Minecraft и создавать его резервную копию. Играйте и не думайте о последствиях, ведь сервер всегда можно восстановить из резервной копии! Если, конечно, сохранить…

© Habrahabr.ru