Docker und Amazon Container Service

Ein Wochenende voller WTF ist vorbei. Themen des Wochenendes waren Dicker, AWS und die blaue Wolke (Cloud) .

Zuerst hab ich viel Zeit verbracht mich intensiver mit Docker zu beschäftigen. Zu allererst Docker Registry: Man logt sich mit Hilfe des Befehls „docker login“ ein und kann nun seine Container ins docker hub schieben. Dazu benutzt man den Befehl „docker push myApp“. Und tada das repository wurde auf docker hub angelegt. Jetzt liegen dort als … Was genau.. die lokal gebauten Container. Blöd nur das zum Beispiel mein railo Container der eine Webseite birgt den Source Code von meinem lokalen Windows Platte gezogen hat. Dieser fehlt nun. Also kein Source Code im Container.

Was nun?

Lesen Lesen Lesen Lesen Lesen wtf Lesen Lesen ahhhh :

Automatisches build repository mit github. Fast schon perfekt. also auf github den Source Code des docker container gepushed. Siehe da alle Infos sind im docker hub inklusive der dockerfile. Was fehlt jetzt immer noch der Source Code. 2 Optionen habe ich nun ohne groß zu Überlegen. Entweder den Code mit in das repository … Pfui … Ein eigenes Repository. Besser, also Code pushen docker File anpassen docker pushen. Start build. Sehr gut so geht’s.

Aber nicht das was mir vorschwebte. Am Rande, ich hab es auch bis jetzt noch nicht erreicht. Ich möchte die Container in AWS laufen lassen über den ACS. Mein Quellcode soll nicht in einem public Repro liegen. Dockerfiles auch nicht. Also Setup für ein Closed Projekt.

Ein weiterer Test den ich gemacht habe war das Docker File aus dem automatmischen repository zu ziehen und den Code als Zipfile von aws S3. Zugriff des S3 nur auf aws Ebene. Wtf build fehlgeschlagen… wtf wo findet der build statt? Etwa Auf docker? -.-

Also nächstes Ziel vielleicht ec2 instance fürs docker. s3 als docker register Speicher. Privates repro des Codes auf github mit public key der ec2.

Die nächsten Tage werde ich wohl hier noch am richtigen Entwurf arbeiten. Sobald das passt geht’s an die API. Wer will schon immer klicken.

Trotzdem Erfolge.

Der Spass darf natürlich nicht fehlen. Also habe ich die ACS mit minecraft getestet. Docker gebaut gepushed eingetragen und tada. Erstmal je Runde daddeln. Config anpassen bungecore dazu packen und 10 Server anschmeißen. Gut 10 laufen manuelles anpassen der ips etc… Ne danke morgen vielleicht 🙂 aber nun kann ich auf 10 Servern zocken.

WTF

Nerviger Nebeneffekt #minecraft

Ein einzelner Minecraft Server macht in der Regel das was er soll und jeder neue Spieler bekommt eine UUID mit der das Profil gespeichert wird.

Wenn da nicht der Online Modus wäre…

In der Minecraft Server Config gibt es eine Einstellung den Server Offline zu betreiben. Sehr praktisch wenn man kein Internet hat da diese Einstellung die Online Prüfung des Accounts bei Minecraft deaktiviert. Betreibt man mehrere Server in einem sogenanntem Bungecore Netzwerk ist es ein muss diese Einstellung zu nutzen. Die eigentliche  Überprüfung über nimmt dann der Bungecore Server.

Nun zum Effekt. Nehme ich meinen ersten Server im Online Modus haben die Spieler eine UUID. Stelle ich diesen Modus nun auf Offline bekommen die Spieler wieder eine neue UUID. Connecte ich den Server in ein Bungecore Netzwerk, noch eine UUID. Ein Wechsel der UUID hat im Spiel erstmal den Effekt das man als neuer Spieler anfängt, sprich keine Erfolge, kein Inventar, keine Level und keine Rüstung mehr. In Verbindung mit verschiedenen Plugins ergibt sich ein Wirrwarr aus Namen geprüft und UUID geprüft.

Ein Plugin das auf Namen prüft funktioniert natürlich weiterhin richtig solang der User seinen Namen nicht ändert. Aber hier kann im Offlinemidus jeder mit irgendeinem Namen Connecten und das Eigentum anderer an sich nehmen oder gar Admin ergaunern. Alle anderen Plugins kennen den User nicht mehr.

Minecraft Social bassiert nur auf uuid und brachte neben dem Verlust der Items noch Zugriffsprobleme mit sich.

Mein Tipp: organisiert die Strukturen der Server bevor der erste Spieler drauf kommt Und ändert es niemals !

Minecraft Plugins Webservice

Lange nichts geschrieben.. also:

Da ich wirklich sehr sehr viel Zeit in die Entwicklung von Minecraft Bukkit Plugins und Bungecore Plugins investiert habe ist es nahe liegend darüber zu schreiben.

Ich fand das es gut wäre Die Spieler auf dem Server zu sehen. Entweder als Android ab oder auf der Webseite des Projektes, in diesem Fall http://minecraft-social.de , bisschen Werbung … , zu sehen. Also habe ich eine Rest API mit JSON in das Plugin installiert. Hier kann ich nun verschiedene Dinge abfragen und natürlich das Admin Tool ansprechen.

Ebenso hab ich minecraft-server.eu für votings implementiert. Sodass es nun Belohnungen dafür regnen kann.

Die Plugin Datenbank ist gleichzeitig für die Webseite zuständig so dass die Adminshops von dort aus administriert werden können. Hier können auch die Nachrichten Aufgaben, welche in regelmässigen Intervallen erscheinen zu bearbeiten.

Bis jetzt eine Runde Sache.