RustのマルチサーバーをVPSのテンプレート等使わず構築する方法を説明します。
OSはRed Hat Enterprise Linux 9を想定しています。
概要
本記事ではLinuxにLinuxGSMを使ってRustサーバーを構築する手順を説明します。
LinuxGSMはRustに限らず様々なゲームのマルチサーバーを構築することができます。
本手順でコマンドを記載している箇所の先頭に「$」または「#」を記載しています。
「$」で始まるコマンドは、本手順内で作成するrustserverユーザで実行するコマンドです。
「#」で始まるコマンドは、rootユーザで実行するコマンドです。
※rootユーザを使いたくない場合は、「#」で始まるコマンドはsudoコマンド経由で実行してください。
本手順はRed Hat Enterprise Linux 9を想定して説明していますが、Rocky LinuxやAlmaLinuxでも同じコマンドで構築可能です。
事前準備
初期状態ではLinuxGSMでRustサーバーをインストールするために必要なライブラリが不足しているので、インストールします。
rootユーザで下記コマンドを実行してください。
# dnf install -y glibc.i686 libstdc++.i686 zlib-devel
この後作成するrustserverユーザにsudoコマンドをパスワードなしで実行する権限を付与していれば、上記コマンドが自動的に実行されるので本手順は不要です。
Rustサーバー構築
Rustサーバーを動かすためのユーザを作成
adduserコマンドでRustサーバーを動かすためのユーザを作成します。
ユーザ名は何でも良いです。
# adduser rustserver
ユーザ作成後、作成したユーザにスイッチします。
# su - rustserver
スイッチ後に/home/rustserverになっていればOKです。
Rustサーバーをインストール
LinuxGSMに必要なコンテンツをダウンロードします。
$ curl -Lo linuxgsm.sh https://linuxgsm.sh && chmod +x linuxgsm.sh && bash linuxgsm.sh rustserver
ダウンロード後、インストールを実行します。
途中でY/nで答える質問が何回か表示されますが、デフォルトにYが設定されているので、エンター押して進めて良いです。
$ ./rustserver install
サーバー設定
/home/rustserver/lgsm/config-lgsm/rustserver/rustserver.cfg
/home/rustserver/lgsm/config-lgsm/rustserver/_default.cfg に標準の設定があるので、ここから編集したい行をコピーして、同ディレクトリにあるrustserver.cfgファイルに貼り付けてください。
ここでは基本的にサーバー名やマップに関する設定を指定します。
_default.cfg を編集するとLinuxGSMの更新等で上書きされて、変更した設定が消える可能性があります。
必ずrustserver.cfgに張り付けて編集してください。
RCONのパスワードもここで設定しますが、デフォルトパスワードが固定で設定されています。
RCONのパスワードが知られるとRustサーバーを操作できるので、必ず変更してください。
/home/rustserver/serverfiles/server/rustserver/cfg/server.cfg
ここでは基本的にサーバー説明、サーバー画像、サーバータグ、WebサイトURLを指定します。
デフォルトのまま起動するとLinuxGSMに関する説明や画像が表示されますが、本ファイルにて指定されているので、該当設定を空にすれば消えます。
設定内容の確認
下記コマンドで現在の設定内容を表示することができます。
もし想定と異なれば、どこかの設定方法が誤っているので確認してください。
$ ./rustserver details
プラグインの利用準備(oxide)
Rustサーバーを運用するなら何かしらのプラグインを入れると思います。
oxideプラグインを利用できるように下記コマンドを実行します。
途中でインストールするプラグイン種別を聞かれるので、「rustoxide」と入力してください。
$ ./rustserver mods-install
...色々出る
Rust Installing mods
=================================
Available addons/mods
=================================
Carbon for Rust - Allows for the use of both plugins and harmony mods - carbonmod.gg
* rustcarbon
Oxide for Rust - Allows for the use of plugins - https://umod.org/games/rust
* rustoxide
Enter an addon/mod to install (or exit to abort): rustoxide ⇐ココ
ポート穴開け
OSのファイアウォールを有効にしている場合、Rustで使用するポートを許可する必要があるので、追加します。
ファイアウォールを無効にしている場合は本手順は不要です。
自宅のRustサーバーをインターネット上の外部に公開する場合は、ルータの設定も必要になりますので、適宜設定してください。
ルータの設定については機種ごとに違うのでここでは説明しません。
許可ポートを追加
Rustサーバーで使用するポートを許可します。
デフォルト設定であれば、下記コマンドで追加可能です。
デフォルトから変更した場合、ポート番号部分を適宜変更してください。
# firewall-cmd --zone=public --add-port=28015/udp --permanent
# firewall-cmd --zone=public --add-port=28017/udp --permanent
# firewall-cmd --zone=public --add-port=28016/tcp --permanent
# firewall-cmd --zone=public --add-port=28082/tcp --permanent
変更を反映
# firewall-cmd --reload
サーバー操作方法一覧
主に使用するサーバーコマンドです。
マンド | 説明 |
---|---|
$ ./rustserver start | サーバーを起動します。 |
$ ./rustserver stop | サーバーを停止します。 |
$ ./rustserver restart | サーバーを再起動します。 |
$ ./rustserver details | サーバーの設定状況、稼働状況を表示します。 |
$ ./rustserver full-wipe | フルワイプします。 |
$ ./rustserver map-wipe | マップワイプします。 プレイヤーのBP情報はそのままです。 |
$ ./rustserver force-update | Rustサーバーを更新します。 起動中に実行すると、再起動します。 |
$ ./rustserver mods-install | oxideプラグインを有効にし、各プラグインを配置するoxideディレクトリを作成します。 |
$ ./rustserver mods-update | oxideを更新します。 基本的にRustサーバーの更新と一緒に配信されます。 |
$ ./rustserver update-lgsm | LinuxGSMを更新します。 |
cron等で上記コマンドを定期実行することで再起動やアップデートを自動化できますが、正直不便です。
別記事にて、systemdで管理する方法を紹介する予定です。
コメント