メインコンテンツへスキップ

SpaceEngineers専用サーバーをLinuxで管理 ~DockerもDiscordで管理~

    こんにちはRcatです。
    最近はまっているパルワールドも落ち着ついてきました。
    実は、パルワールドの前は”Space Engineers”というタイトルをやっていました。
    公式ではWindowsしかサーバーが無いようですが、調べるとDockerというのを使ってLinuxで立ち上げている例があり、Linuxでの立ち上げができました。
    というわけで次の段階として、私自作の管理ツールと連携してDiscordを使って、みんなで管理できるようにしちゃいましょう。
    本記事は下記汎用管理ツールでSpace Engineersサーバーをセットアップするための個別記事となります。

    アップデート情報

    本作バージョン2作成しました
    Windowsに対応したほか生成AIやリモート管理機能など様々な新機能を搭載しより使いやすくなりました。
    ※こちらでは本記事の定義非対応なのでご注意ください。

    事前準備

    環境

    今回対象とするのは次の環境です。
    OS : Linux (Ubuntu)
    CPU : N100
    MEM : 16GB
    ハードウェアの詳細は次の記事をご確認ください。

    サーバーをセットアップ

    下記を参考にDockerを使ったサーバーを構築しておく

    https://qiita.com/xx0vlucifer0xx/items/2c84537b67a19b156ec8

    管理ツールのセットアップ

    準備ができたら私オリジナルの管理ツールをセットアップしていきます。
    この汎用管理ツールを使うことで、Discordのボットから指示を受け付けることができます。

    上記の記事からツールを配布していますので、ダウンロードしてください。
    また、一通り読んでいただき、サーバーの定義方法などは理解した前提でこの先進めていきます。

    ダウンロードして展開したものを任意のフォルダーに格納してください。
    この中で絶対に必要なのがpyファイルとHTMLになります。それ以外はなくても大丈夫です。

    実行ユーザーにdockerの実行権限を与える

    セットアップしたサーバーを実行しようとすると既存のユーザーでは実行できなかった。
    sudo無しで実行できるように管理ツールを実行するユーザーに対してグループを追加しておき実行権限を与えておく。
    こうすることでsudo無しで実行できるようになる

    sudo usermod -aG docker ユーザー名

    start.sh

    ここから先は上記記事を読了済みで理解している前提です。
    また、紹介するスクリプトは管理ツールに同梱済みです。

    起動スクリプトの紹介です。
    二重起動の防止処理の後に、セットアップしたサーバーの起動スクリプトから必要な行だけ抜き出したものです。
    一番上の"stat.sh"は後で紹介しますがサーバーの起動状態を判別するものです。
    二重起動の防止処理のファイルはツールがサーバーの起動を判定するのに使うので必須です。

    画像

    update.sh

    不要です。起動時に毎回自動で確認するようです。

    stop.sh

    サーバーを停止させるスクリプトです。
    起動状態チェックとステータスファイルの削除にこちらも必要な部分だけ抜き出したような感じです。

    画像

    stat.sh

    サーバーの起動状態をチェックするスクリプトです。
    今回のdockerは起動後にプロンプトが戻ってくるので、実行行の後にステータスファイルの削除では終了の判定ができません。
    そこで、別途スクリプトで稼働状態をチェックしてステータスファイルの生成を行います。

    画像
    画像

    実行方法

    下記記事の操作方法をご確認ください。


     
     
    モノづくりが趣味。 "売ってないなら自分で作ればいいじゃない"をコンセプトに、機械/電気/AI/プログラム/ネットワーク 全部やります。 記事執筆はAI不使用。 ご連絡や利用規約はプロフィール記事参照。

    あなたへのおすすめ