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
$ git clone https://github.com/morikat/cf-minecraft-chisel
$ cd cf-minecraft-chisel
$ echo 'eula=true' > eula.txt
$ cf push minecraft-app
$ ./chisel-bin/chisel_linux_amd64 client -v --keepalive 3s http://hogehoge.mybluemix.net 25565:127.0.0.1:25565
$ ls chisel-bin/
chisel_darwin_amd64 chisel_linux_amd64 chisel_windows_386.exe
lib하하
utils
compile 부분으로 부르는 function 정의등이 격납
남은 과제
s3 등에 대응시켜 영속화
heroku-buildpack-minecraft처럼
s3cmd를 사용하여 60초 간격으로 while을 사용하여 s3과 sync시키는 등의 궁리가 필요
Cloud Foundry 측의 컨테이너 내에서 움직이는 minecraft server의 프로세스가 죽었을 경우의 복구
일반적으로 Cloud Foundry 애플리케이션이라면 프로세스가 죽은 경우 자동으로 인스턴스를 시작하는 메커니즘이 있습니다.
현재의 cf-minecraft-chisel의 대응이라고 프로세스의 감시 대상이 chisel의 서버측이 되고 있기 때문에, 실용적으로 하려면 이쪽도 대책이 필요
Reference
이 문제에 관하여(Cloud Foundry v2에서 minecraft를 이동하고 액세스하는 방법 조사 (번외편)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/morikat/items/bead65a88aa41771895c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)