Cloud Foundry v2에서 minecraft를 이동하고 액세스하는 방법 조사 (번외편)

Cloud Foundry v2에서 minecraft를 이동하고 액세스하는 방법 조사 (번외편)



Cloud Foundry v2에서 minecraft를 이동하고 액세스하는 방법 알아보기의 번외편으로서

이전 Qiita에 투고한 Cloudn PaaS v2(CloudFoundry)의 Service(PostgreSQL & MySQL)에 연결의 chisel을 응용하면
일단 S3의 영속화의 과제는 남아 있지만 컨테이너상에서 움직이는 minecraft에의 proxy는 실현 가능한 것은? 라고 추측해 실험해 보았습니다.

액세스 할 때까지의 절차 (minecraft 서버 + 프록시 측)



Cloud Foundry의 컨테이너 내에서 움직이는 minecraft 액세스를 위해 준비한 cf-minecraft-chisel을 clone


$ git clone https://github.com/morikat/cf-minecraft-chisel
$ cd cf-minecraft-chisel

서버 시작에 필요한 eula.txt 추가


$ echo 'eula=true' > eula.txt

앱을 cloudfoundry로 푸시


$ cf push minecraft-app

chisel client 시작


$ ./chisel-bin/chisel_linux_amd64 client -v --keepalive 3s http://hogehoge.mybluemix.net 25565:127.0.0.1:25565

위의 경우
ht tp // // 떡. b 에미 x. 네 t 부분은
푸시한 앱 URL

25565:127.0.0.1:25565 부분은
chisel client를 움직이는 머신상의 25565:Cloud Foundry상의 앱에서 본 minecraft server의 IP:minecraft server의 포트

mac 또는 windows에서 chisel client를 실행하는 경우

chisel-bin 아래에 각각의 바이너리를 저장하고 있으므로 그 쪽을 이용한다
$ ls chisel-bin/
chisel_darwin_amd64  chisel_linux_amd64  chisel_windows_386.exe

액세스 할 때까지의 단계 (minecraft 클라이언트 측)



chisel을 통해 cloudfoundry의 minecraft에 액세스

멀티플레이 선택





서버 추가





서버 추가 화면





서버명은 알기 쉬운 이름으로 설정해, 서버 주소는 chisel client를 기동시킨 머신과 포트를 지정해 완료를 클릭

추가한 서버에 연결




서버에 연결을 클릭하여 서버에 연결

월드 화면





동작원 이해설



cf-minecraft-chisel (앱 자체)



eula.txt (수동으로 추가 할 파일)



minecraft의 서버는 eula.txt에 eula = true라는 값을 넣으면
EULA에 동의함
※각각이 동의할 필요가 있으므로 수동으로 격납이라고 하는 형태로 하고 있다)

chisel-bin 부하



proxy를 통해 cloud foundry 컨테이너의 앱에 액세스하기위한 바이너리가 저장됩니다.

manifest.yml



내부에서 사용하는 minecraft용 buildpack의 브랜치를 지정
메모리는 512M 지정을 디폴트 지정으로 필요에 따라서 변경을 실시한다

minecraft_download_url.txt



minecraft 용 buildpack 측에서이 안의 URL 값을 사용하여 서버 jar 파일을 다운로드하십시오.

s rt_mine c 등 ft. sh



cloudfoundry에서 minecraft 서버를 시작하는 명령
manifest.yml의 메모리 값에 따라 여기도 변경합니다.

heroku-buildpack-oracle-java (buildpack 측)



minecraft 브랜치를 minecraft 용으로 변경 중
포크 원래 원래 buidpack은 여기

bin하하



detect

eula.txt가 있는지 여부에 따라 minecraft buildpack을 적용할지 여부

compile


  • JDK 설치
  • minecraft_donwload_url.txt의 값을 사용하여 minecraft jar 파일 가져 오기
  • proxy 용 chisel 다운로드

  • lib하하



    utils

    compile 부분으로 부르는 function 정의등이 격납

    남은 과제



    s3 등에 대응시켜 영속화



    heroku-buildpack-minecraft처럼
    s3cmd를 사용하여 60초 간격으로 while을 사용하여 s3과 sync시키는 등의 궁리가 필요

    Cloud Foundry 측의 컨테이너 내에서 움직이는 minecraft server의 프로세스가 죽었을 경우의 복구



    일반적으로 Cloud Foundry 애플리케이션이라면 프로세스가 죽은 경우 자동으로 인스턴스를 시작하는 메커니즘이 있습니다.

    현재의 cf-minecraft-chisel의 대응이라고 프로세스의 감시 대상이 chisel의 서버측이 되고 있기 때문에, 실용적으로 하려면 이쪽도 대책이 필요

    좋은 웹페이지 즐겨찾기