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というサーバーアドレスは覚えづらい?ドメインを購入してみましょう!