LoginSignup
4
4

More than 5 years have passed since last update.

GCEでお手軽Minecraft Serverを構築

Last updated at Posted at 2016-09-19

GCEでCoreOSを使って簡単にMinecraftのServerを構築したいと思い、CoreOSの勉強がてらやってみました。
単純にdockerが使える軽量な環境ということで、CoreOSを採用。軽いということはいいことだ。
クラスタとか、全然関係ありません。

今回使わせてもらったdockerのimageは、こちら。
https://hub.docker.com/r/itzg/minecraft-server/

環境変数で、いろいろMinecraftの設定を行えちゃうのがすごい。

サービスの登録(まずは手動で)

CoreOSはsystemdを採用しているので、まずは/etc/systemd/system/配下にサービスを追加して確認します。

/etc/systemd/system/mc-vanilla.service

[Unit]
Description=Minecraft vanilla Server
After=docker.service
Requires=docker.service

[Service]
ExecStartPre=-/usr/bin/docker kill mc-vanilla
ExecStartPre=-/usr/bin/docker rm mc-vanilla
ExecStart=/usr/bin/docker run -v /data:/data -e VERSION=1.10.2 -e EULA=TRUE -e ENABLE_QUERY=true -e PVP=false -e OPS=管理権限のマイクラユーザID -e WHITELIST=ホワイトリストのマイクラユーザID -p 25565:25565 --name mc-vanilla itzg/minecraft-server
ExecStop=/usr/bin/docker stop mc-vanilla

[Install]
WantedBy=multi-user.target

最初、ExecStartの指定で/usr/bin/docker -d -it・・・とバックグランド実行にしていたら、うまく起動しませんでした。もしかしてフォアグランドでないとダメなのかなぁと思い、-d -itを削除。

で起動してみる。

$ sudo systemctl start mc-vanilla.service

で、停止。

$ sudo systemctl stop mc-vanilla.service

問題なければ、サービスを有効にする。

$ sudo systemctl enable mc-vanilla.service

うまく行かない時は、statusで確認する。

$ sudo systemctl status mc-vanilla.service

ファイルを修正した場合は、daemon-reloadする。

$ sudo systemctl daemon-reload

サービスの追加を自動で行いたいので、cloud-config.ymlを作成する

内容はさっきと一緒。

#cloud-config
coreos:
  units:
    -
      name: mc-vanilla.service
      enable: true
      command: start
      content: |
        [Unit]
        Description=Minecraft Vanilla Server
        After=docker.service
        Requires=docker.service

        [Service]
        ExecStartPre=-/usr/bin/docker kill mc-vanilla
        ExecStartPre=-/usr/bin/docker rm mc-vanilla
        ExecStart=/usr/bin/docker run -v /data:/data -e VERSION=1.10.2 -e EULA=TRUE -e ENABLE_QUERY=true -e PVP=false -e OPS=管理権限のマイクラユーザID -e WHITELIST=ホワイトリストのマイクラユーザID -p 25565:25565 --name mc-vanilla itzg/minecraft-server
        ExecStop=/usr/bin/docker stop mc-vanilla

        [Install]
        WantedBy=multi-user.target

GCEのインスタンス作成時に、cloud-config.ymlを指定する

gcloudコマンドを実行するマシン上にcloud-config.ymlを置いて、インスタンス作成時に--metadata-from-file "user-data=<cloud-config.ymlのファイルパス>"を指定する。

ファイルをGCSに置いて指定する方法なないのかしら。。

4
4
2

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
4
4