Minecraftの統合版サーバーbedrockをitamaeで構築する

itamaeのレシピとしてマインクラフト統合版のrecipeが無かったため作りました!!
itamae-plugin-recipe-bedrock_server
インスタンスを立ち上げるとbedrockサーバーが自動で起動します。

Minecraft Server DownloadのMinecraft End User License AgreementとPrivacy Policyを読んでから進めましょう!!

环境

    • Microsoft Azure

 

    • Ubuntu 18.04 LTS

 

    Ruby 2.5.5(Azure Cloud Shell)

由于Minecraft是由微软开发的,所以我将介绍如何在Azure上构建它。现在,您可以免费使用¥22,500的服务。除了创建虚拟机之外,您也可以在Conoha、GCP和AWS上使用相同的网络配置。

创建作业项目

azure-minecraft-serverというサーバー名で始めます。素敵な名前をつけて上げてください?
何度も使用するため、変数として扱ってすすめます


SERVER_NAME=azure-minecraft-server
mkdir ${SERVER_NAME}
cd ${SERVER_NAME}

最后将呈现如下的组成。

.
├── .ssh
│   └── id_rsa
└── azure-minecraft-server
    ├── Gemfile
    ├── Gemfile.lock
    ├── node.yml
    └── recipe.rb

Gemfileの作成

创建一个Gemfile。
Gemfile相当于JavaScript中的package.json文件。

source 'https://rubygems.org'

gem 'itamae'
gem 'itamae-plugin-recipe-bedrock_server'

保存しましたら、bundle installを行います。
bundle installとは、Javascriptでいうnpm installです

bundle

创建设置文件

创建一个node.yml文件。

请参考《官方Minecraft Wiki Server.properties》以获取详细设置信息。在大多数情况下,您不需要进行任何更改。

作为建立自己服务器的乐趣,我们将配置服务器名称和最大玩家数量。

bedrock_server:
  configuration:
    server-name: "Azure Minecraft Server"
    max-players: 1000

制作食谱

itamaeではプロビジョニングファイルのことをrecipeと読んでいます。recipe.rbを作成します。
Gemfileにgem ‘itamae-plugin-recipe-bedrock_server’を追加したため、bedrock_serverのインストール、インスタンス起動時の自動起動は1行で済みました
残りの3行は、Minrcraftのデフォルトポート19132を許可します。

include_recipe 'bedrock_server'

execute 'ufw --force enable'
execute 'ufw allow 19132/udp'
execute 'ufw reload'

创建虚拟机 (Chuangjian xuni ji)

今回はAzure CLIで作成します。ConohaまたはGCP, AWSを使用している場合、この章はそれぞれの方法で仮想マシンを作成し、SERVER_ADDRESSにアドレスを代入し、次の章へ飛ばしてください。
Azure Cloud Shellを使用しているのでazコマンドがすでにインストール済みです?
便利なことに秘密キーは~/.ssh/id_rsaとして使え、itamae実行時のコマンドが少なくなります?
今回は西日本にリソースグループを作成します。
マシンタイプはデフォルトだとStandard_DS1_v2が選ばれます。料金はリンクで確認してください。
作成後、Minecraftのデフォルトポート19132を許可します。

# リソースグループの作成
az group create -l japanwest -n ${SERVER_NAME}_group

# 仮想マシンの作成
az vm create \
  -g ${SERVER_NAME}_group \
  -n $SERVER_NAME \
  --image UbuntuLTS \
  --admin-username azureuser \
  --nsg ${SERVER_NAME}-nsg \
  --generate-ssh-keys

# 19132ポートを許可
az network nsg rule create \
  -g ${SERVER_NAME}_group \
  --nsg-name ${SERVER_NAME}-nsg \
  -n MinecraftBedrock_Port \
  --priority 100 \
  --destination-port-ranges 19132 \
  --protocol Udp

# IPアドレスの取得
SERVER_ADDRESS=$(
  az vm list-ip-addresses \
    -g ${SERVER_NAME}_group \
    -n ${SERVER_NAME} \
  | jq -r '.[0].virtualMachine.network.publicIpAddresses[0].ipAddress'
) && echo ${SERVER_ADDRESS}

厨师长的执行

这是最后了。
我们将在创建的虚拟机上安装bedrock服务器。令人惊讶的是,只需一步!

bundle exec itamae ssh -u azureuser -h ${SERVER_ADDRESS} --node-yaml=node.yml recipe.rb

接続

サーバーのIPアドレスを確認します。
ここでは、127.0.0.1がサーバーアドレスとして返却される例を示しています。
Minecraftを開きサーバーアドレスを入力してください。少し長いローディングのあと、世界が開けるでしょう。お疲れ様でした?

echo ${SERVER_ADDRESS}
# => 127.0.0.1

次にやることは?

今回は1コアのサーバーを作成しました。少ない人数だと大丈夫かもしれませんが、大人数だと遅く感じるでしょう。マシンサイズの変更を行ってみましょう!
Japan Minecraft Serversにサーバーを登録し、仲間と交流しましょう!
127.0.0.1というサーバーアドレスは覚えづらい?ドメインを購入してみましょう!

https://azure.microsoft.com/zh-cn/free/free-account-faq/
广告
将在 10 秒后关闭
bannerAds