调查在Cloud Foundry v2上运行和访问Minecraft的方法(番外篇)
调查在Cloud Foundry v2上运行和访问Minecraft的方法(额外篇)。
作为调查云原生平台Cloud Foundry v2上运行Minecraft并访问的额外篇章。
我尝试了将之前在Qiita上发布的《如何连接到Cloudn PaaS v2(CloudFoundry)的Service(PostgreSQL & MySQL)》的chisel应用到实现在容器中运行的minecraft代理上,尽管S3持久化仍然存在问题,但我推测这是可行的,并进行了实验。
进入(Minecraft服务器+代理)的步骤
为了在Cloud Foundry上的容器内访问Minecraft,克隆cf-minecraft-chisel。
$ git clone https://github.com/morikat/cf-minecraft-chisel
$ cd cf-minecraft-chisel
将必需的eula.txt文件添加到服务器启动中
$ echo 'eula=true' > eula.txt
将应用程序推送到Cloud Foundry
$ cf push minecraft-app
启动Chisel客户端
$ ./chisel-bin/chisel_linux_amd64 client -v --keepalive 3s http://hogehoge.mybluemix.net 25565:127.0.0.1:25565
在这种情况下,http://hogeohge.bluemix.net部分是推送应用的URL。
25565:127.0.0.1:25565部分表示了在运行chisel client的机器上的25565 Cloud Foundry应用程序中的Minecraft服务器的IP Minecraft服务器端口。
如果在Mac或Windows上运行Chisel客户端,请按照以下步骤操作。
在chisel-bin中存储了各自的二进制文件,所以请使用那里的文件。
$ ls chisel-bin/
chisel_darwin_amd64 chisel_linux_amd64 chisel_windows_386.exe
进入Minecraft客户端的步骤
通过凿子在Cloud Foundry上访问Minecraft。
选择多人游戏
增加服务器
添加服务器界面
请将服务器名称设置为易于理解的名称,并指定运行Chisel客户端的计算机和端口作为服务器地址,然后点击完成。
连接到添加的服务器。
世界视图
解释动作的原理
cf-minecraft-chisel是一个应用程序本身。
用户许可协议(手动添加的文件)
只要在eula.txt文件中设置eula=true的值,Minecraft的服务器就被视为同意EULA。
(每个人都必须同意,因此需要手动存储)
凿刀仓库里的货物
在代理的帮助下,存放着连接到云计算平台Cloud Foundry容器内应用程序所需的二进制文件。
manifest.yml 的本地化中文版本。
指定内部使用的Minecraft用构建包分支。
默认情况下,内存设定为512M,根据需要进行更改。
《Minecraft下载链接.txt》
在Minecraft的构建包中,使用此URL的值来下载服务器的jar文件。
启动_minecraft.sh
在Cloud Foundry上启动Minecraft服务器的命令
根据manifest.yml中的内存值进行相应的更改。
Heroku构建包-Oracle Java(构建包侧)。
我正在将Minecraft分支更改为Minecraft使用。原始构建包的派生版本在这里。
垃圾桶下面
检测
根据是否存在 EULA.txt 文件来决定是否应用 Minecraft 的构建包。
编译
-
- 安装JDK
-
- 使用minecraft_download_url.txt的值获取minecraft的jar文件
- 下载用于代理的chisel
lib的下属
工具
存储了在编译部分调用的函数定义等内容。
未完成的问题
将其适配并使其持久化存储在s3等上。
需要像heroku-buildpack-minecraft那样,使用s3cmd工具通过while循环每60秒同步s3等进行一些改进的措施。
如果Cloud Foundry内的容器中运行的Minecraft服务器进程死亡,则进行恢复。
通常来说,如果Cloud Foundry的应用程序死亡,会自动启动一个新实例的机制。
根据现有的cf-minecraft-chisel配置,由于监控的对象是chisel服务器端,为了实际应用,我们也需要采取相应的措施。