1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

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

Last updated at Posted at 2021-01-24

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

Minecraft Server DownloadMinecraft End User License AgreementPrivacy Policyを読んでから進めましょう!!

環境

MinecraftはMicrosoftによって開発されているので今回はAzureで構築方法を紹介します。今なら¥22,500分無料で使えます:green_heart:1
仮想マシンの作成以外はConohaやGCP, AWSでもネットワークは同様に使用できます。

作業プロジェクトの作成

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


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です:pencil:

bundle

設定ファイルの作成

node.ymlを作成します。

詳しい設定はOfficial Minecraft Wiki Server.properties を見てください。殆どの場合は変更しなくて大丈夫でしょう。
自分で構築するサーバーの醍醐味として、server-name, max-playersを今回は設定します:thumbsup:

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

recipeの作成

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

recipe.rb
include_recipe 'bedrock_server'

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

仮想マシンの作成

今回は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}

itamaeの実行

これで最後です。
作成した仮想マシンにbedrock serverをインストールします。驚くことに一撃です!

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

  1. https://azure.microsoft.com/ja-jp/free/free-account-faq/

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?