ーーーーーーーーーーーーーーーーーーーーーーー
本記事は #CloudGarage Advent Calendar 2018 Day24 の記事です。
#CloudGarage Advent Calendar 2018 についてはこちらをご確認ください。
先日(12/23)は@CloudRemixさんの CloudGarageで「Heritrix」を動かす でした
ーーーーーーーーーーーーーーーーーーーーーーー

56


メリークリスマスイブ
Clom です。

今日は自分が普段遊んでいるゲームを
知り合いのみでワイワイやりたいときに必要なプライベートサーバーを構築しましたので、
その備忘録を兼ねて、、、

今回構築の題材にするのは Counter-Strike: Global Offensive です。
こちらのプライベートサーバの構築を行いました。

まずはインスタンス作成です。
前回の AdventCalendar で使用したプランの残りプールを利用して構築を行いました。
構成としては以下のものになります。

CPU: 2core/ Mem 4GB / Storage 200GB

接続許可設定に関してですが、今回のゲームサーバの構築を行うため、
かんたん設定を行わず詳細設定を利用しました。
基本的に自宅からの接続はすべて許可し、それ以外はゲームで使用する部分のみを許可する形をとっています。
今回の例だと、ゲーム側で使用するポートは次の通りになります。構築するゲームに合わせて必要なポートを設定してください。

- 27015/tcp, udp
- 27005/udp
- 27020/udp
- 51840/udp


キャプチャ


つぎに SSH で該当のインスタンスに接続し設定を進めていきます。
パッケージのアップデートと必要なもののインストールを進めます。
また、 steam のコンソール操作用のユーザも作成します。

sudo yum update -y
sudo useradd -m steam
sudo yum install glibc.i686 libstdc++.i686
sudo -iu steam

これ以降は steam のユーザで作業を進めます。
steam から steam_cmd のダウンロードを行います。
作業用のディレクトリを作成し、そこに設置を行います。

mkdir ~/Steam && cd ~/Steam
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -

展開を行ったら ./steamcmd.sh で起動します。

[steam@pichu Steam]$ ./steamcmd.sh
Redirecting stderr to '/home/steam/Steam/logs/stderr.txt'
Looks like steam didn't shutdown cleanly, scheduling immediate update check
[  0%] Checking for available updates...
[----] Verifying installation...
Steam Console Client (c) Valve Corporation
-- type 'quit' to exit --
Loading Steam API...OK.

Steam>

起動すると Steam の shell が上がってきますのでログインを行い、ゲームデータをダウンロードします。

login anonymous
force_install_dir /home/steam/Steam/cs_go
app_update 740 validate
exit
次にサーバの設定を行います。
設定ファイルは以下の場所に格納されています。

/home/steam/Steam/cs_go/csgo/cfg


設定ファイルの一例がこちらになります。
細かい設定はこちらに書かれていますので用途に合わせて変更をしてください。
ただ大まかな設定のみこちらで解説します。




hostname "CS:GO Server"
こちらはゲームに接続したときに表示されるホスト名になります。

sv_lan "0"
LANモード(同一ネットワークのみの接続)を有効化するオプションです。 0 にしないと CloudGarage のネットワーク内の端末のみ接続を行える形になります。

sv_password "********"
こちらはユーザがサーバに接続を行うために必要なパスワードの設定になります。

sv_setsteamaccount "***********"
こちらは最近追加された設定です。サーバの所有者をID単位で特定するために使用するトークンです。
これがないと sv_lan 0 とした場合でも sv_lan 1 と同じ効果になります。
申請はこちらから行います。
こちらはサーバの所有者が自分であることを証明することになりますので、アカウントが不正利用で停止になった場合はこちらのサーバもネットワークからの接続を遮断します。

rcon_password "********"
こちらはゲーム内でサーバのコンソールを操作する場合に管理者であることを確認するパスワードになります。こちらを有効化することで開発者コンソールで rcon のあとに必要なコマンドを入れることでゲームに反映されます。

設定完了後は以下のコマンドを実行することで、サーバを起動することができます。

cd cs_go
./srcds_run -game csgo +map de_dust2 port 27015

これでサーバを起動することができました。
接続はゲーム内で開発者コンソールを立ち上げ、以下のコマンドを入力することで接続できます。

connect (IPアドレス); password (password)

以上、ゲームのプライベートサーバを構築するでした。
明日は FoxBoxsnetさんです。最終日よろしくお願いします!!