Alma Linux 8 で組もうとしたけども
・サーバー自体は起動する
⇒ arkserver.log に server up のメッセージあり
⇒ arkmanager status で server listen がok
⇒ ss で 27015/udp、7778/udp を ShooterGameServがlisten
⇒ firewalld で該当ポートをオープン、あるいはfirewalld を停止
上記状態にも関わらず Steam のサーバー一覧から見たとき、応答なし扱い
・・・原因はメモリ不足だった
Teratermで該当サーバーにログインしていたが、メインコンソールを見たらちゃんと Out of memoryが出ていた
以下はとりあえず上記状態までの構築録
サーバースペックの見積もり
ストレージ おおよそ 最低限 20GB 以上
メモリ 8GB以上
稼働後にどれだけ肥大するのかまで確認できなかったので、仮想マシンなどで随時拡張できるようにしておくと良い
マイクラなどより結構スペックが必要なので、私のようなESXiで稼働管理している人は
以後の前提導入
rootで
dnf -y install perl-Compress-Zlib curl lsof glibc.i686 libstdc++.i686 bzip2 tar
steamcmd の導入
https://developer.valvesoftware.com/wiki/SteamCMD を参照
Alma Linux 8 時点ではリポジトリはないので、Manually の手順を行う
まずは rootで下記を行う
-- ユーザを追加
useradd steam
passwd steam
-- パスワードを設定する
-- steamcmd の導入(steamユーザへ切り替え)
su - steam
mkdir steamcmd
cd steamcmd
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -
上記操作は Alma Linux 8 の、「ユーザ切り替え後は /home/steam から始まる」という前提がある
あと arkmanager は root で動かすと怒られるのでユーザが必要
ArkManager の導入
steamcmd を使えば、これは不要でもいけるようだが、おてがるそうなので使用する
GitHub – arkmanager/ark-server-tools: Set of server tools used to manage ARK: Survival Evolved servers on Linux
rootで行う
curl -sL https://git.io/arkmanager | bash -s steam
これを行うと、/use/local/bin に arkmanager が導入される
Arkサーバーの導入
steamユーザーで行う
-- /home/steam に居る前提で
arkmanager install
-- root に切り替えて・・・
firewall-cmd --add-port=7777/udp --add-port=7778/udp --add-port=27015/udp --add-port=32330/tcp --add-port=32330/udp --zone=public --permanent
firewall-cmd --reload
これだけ
インストールの状況を見たい場合は、「–verbose」をつけるとわかる
Arkサーバーの起動
arkmanager start
これを起動すると下記のようなメッセージが出る
Running command 'start' for instance 'main'
The server is starting...
The server is now running, and should be up within 10 minutes
10分待てとあるので、起動にはそれぐらいかかる
起動状況をウォッチするには、下記をどうぞ
while [ 1 ]; do clear; arkmanager status; sleep 5; done;
これで、Server listeningと Server online が Yes になれば起動完了
最低限変えておくべき設定
vi /etc/arkmanager/instances/main.cfg
--- 下記を変更
ark_ServerPassword="パスワードを設定"
ark_ServerAdminPassword="パスワードを設定"
サーバーを公開する場合、この設定をしておかないと目も当てられない自体に見舞われる覚悟を
トラブルシューティング
[ WARN ] Your ARK server exec could not be found.
arkmanager start した後に上記が含まれている場合、install に失敗しているので、installが失敗している原因を –verbose で求めること
Running command 'install' for instance 'main'
Creating the ARK server root directory (/home/steam/ARK)
Installing ARK serverExecuting /home/steam/steamcmd/steamcmd.sh +@NoPromptForPassword 1 +login anonymous +force_install_dir /home/steam/ARK +app_update 376030 validate +quit
Redirecting stderr to '/home/steam/Steam/logs/stderr.txt'
[ 0%] Checking for available updates...
[----] Verifying installation...
Steam Console Client (c) Valve Corporation - version 1639697740
-- type 'quit' to exit --
Loading Steam API...OK
"@NoPromptForPassword" = "1"
Connecting anonymously to Steam Public...OK
Waiting for client config...OK
Waiting for user info...OK
Please use force_install_dir before logon!
Update state (0x3) reconfiguring, progress: 0.00 (0 / 0)
Update state (0x3) reconfiguring, progress: 0.00 (0 / 0)
Update state (0x3) reconfiguring, progress: 0.00 (0 / 0)
Update state (0x5) verifying install, progress: 1.10 (197684688 / 17993840299)
Update state (0x5) verifying install, progress: 41.43 (7454054702 / 17993840299)
Update state (0x5) verifying install, progress: 81.24 (14617641340 / 17993840299)
Warning: failed to init SDL thread priority manager: SDL not found
Error! App '376030' state is 0x202 after update job.
arkmanager install をしてに Error コードで 0x202 があったとき、空き容量不足が挙げられる
この時点で 約17GB前後の空き容量が必要となるので、df -h などで確認し、不足している場合は拡張すること
・サーバー自体は起動する
⇒ arkserver.log に server up のメッセージあり
⇒ arkmanager status で server listen がok
⇒ ss で 27015/udp、7778/udp を ShooterGameServがlisten
⇒ firewalld で該当ポートをオープン、あるいはfirewalld を停止
メモリ不足が考えられる
arkmanager start や /var/log/arkmanager/arkserver.log は途中でエラーが有ったかどうかとかは見ないっぽい
ちなみにこの減少のとき、メインコンソールでは Out of memory とかが出ているはず
ルーター設定
外部へ公開する場合、7777/udp, 7778/udp, 27015/udp を通す
ゲームルールを調整してみる
あるサーバーの構築のときのルール
このルールはLinux版だと探しにくい
Windows 版 ArkManager で設定し、対応するファイルをそのまま覗いて設定するヨロシ
ちなみに実は main.cfg に設定するのは serverMap だけで良い
その内容は GameUserSettings.ini に反映されるので、main.cfgではなくそちらを更新するで良い
/etc/arkmanager/instances/main.cfg
serverMap="LostIsland"
ark_XPMultiplier=5.0
ark_TamingSpeedMultiplier=3.0
経験値 5倍、テイム速度3倍
/home/steam/ARK/ShooterGame/Saved/Config/LinuxServer/Game.ini
[/script/shootergame.shootergamemode]
bUseCorpseLocator=True
PlayerBaseStatMultipliers[7]=5.0
HarvestResourceItemAmountClassMultipliers=(ClassName="PrimalItemConsumable_Berry_Narcoberry_C",Multiplier=5.000000)
死んだときに光の柱が立つ、プレイヤーの重量値 5倍、ナルコベリー入手量5倍
/home/steam/ARK/ShooterGame/Saved/Config/LinuxServer/GameUserSettings.ini
AlwaysAllowStructurePickup=True
OverrideOfficialDifficulty=5.000000
構造物の「拾う」を常時有効、敵難易度 5