Update Script mit Imageserverprüfung

Aktuell führen wir noch einige Anpassungen durch, das Forum wurde jedoch bereits live geschaltet.
  • Nun ich würde gerne in einen Updatescript auch via md5 prüfen, ob auf dem Imageserver eine Updatedatei liegt.
    Wenn ja soll das Script das Exile Update Image vom Image server ziehen oder das aus dem Cache benutzen, wenn vorhanden.
    Ist weder im Cache noch auf dem imageserver ein Update, soll nur das normale Arma 3 Update laufen.


    Dies hat den Grund das z.Bsp. der Exile Mod für Arma 3 sepperate Updates erhalten soll.


    Hat einer von Euch so ein Script schon mal geschrieben und könnte mir Starthilfe geben?

  • Nein das sollte schon per update.sh sein. der "Kunde" soll ja selber Updaten.

  • Solch eine Lösung bieten wir bereits schon an.


    https://www.celltek.info/api/?addon=exilemod

    Im Startskript kann man dann einfach eine Abfrage machen per JSON ob eine neue Version höher als 1.0.1 vorhanden ist falls ja dann Dowload "file".



    Achso fast vergessen und wenn man über Bash das ganze machen will einfach mit TickTick https://github.com/kristopolous/TickTick

  • Danke celtek, aber genau so will ich das nicht und kann es so auch nicht gebrauchen.
    Mein Updateimage wird direkt in den Arma 3 Server kopiert und hat alle Dateien da, wo sie auch hinsollen.


    Aussedem ist es nicht nur mit der @Exileserver.zip getan, denn es wird auch die @ExiLe.zip gebraucht und die ist 1,1 GB groß.


    Wer schon mal ein Exile Server konfiguriert und aufgesetzt hat, weiss das viele Dateien in den Arma 3 Server root Ordner gehören. Desweiteren habe ich eine spezielle Ordnerstruktur.

  • Du musst ja nicht das "file" Downloaden kannst es aber zur Versionsabfrage nutzen, bleibt jeden ja offen.


    Im grunde müsste man dann eh viel mehr abfragen einbauen wenn z.B. Mod X mit Exile installiert ist wird diese ja auch benötigt und geprüft. Die meisten haben ja noch CBA, Ryan Zombies, Weapons (NATO & Co) installiert.

  • Mein Exile Mod Serverimage ist schon ein Komplettimage (inklusive Arma 3 Server).


    Das liegt schon als Serverimage auf dem Imageserver und nun soll da noch ein Updateimage rauf.


    Bei der Installation des Servers wird das Arma3Exile Image vom Imageserver gezogen und/oder aus dem Cache Installiert.


    Jetzt ist ein neues Arma 3 Serverupdate auf Steam und die update.sh wird vom Kunden ausgeführt (Kundenbereich -> Auf Updates prüfen wenn verfügbar) und das Update wird eingespielt.
    Nun ist ein Exile Update vorhanden und wenn der Kunde via Kundenbereich -> Auf Updates prüfen wenn verfügbar den Server Updated, soll die update.sh im Cache nach dem Updateimage suchen. Sollte es dort noch nicht sein, soll das Script auf dem Imageserver nach dem Updateimage suchen.


    Ist das Image aber im Cache soll das Image im Cache auf die md5 geprüft werden, ob die Datei im Cache mit der auf dem imageserver identisch ist. Wenn ja soll die aus dem cache benutzt werden, wenn nicht die auf dem Imageserver.



    Ok die Versionsprüfung könnte man mit einbauen, um zu prüfen ob überhaupt ein Exile Update nötig ist.


    Die anderen Mods sind unwichtig, da vieles via Steamworkshop läuft und einiges per Hand. Mir geht es nur um mein Updateimage.

  • Gibt halt viele möglichkeiten, ich nutze z.B. Die originale Versionsnummer und vergleiche diese dann ist die neue > alte Version -> Download, entpacken usw. evtl vorher configs sichern und alle anderen files löschen usw. Ist halt auch immer abhänig vom spiel das ganze

  • So ich hab mal mein Update Script fertig.


    Dieses benötigt aber fuse und sshfs:


    Ich hab es noch nicht getestet, aber schaut mal drüber. Nicht das ich da ein Fehler drin habe.

    5 Mal editiert, zuletzt von BdMdesigN () aus folgendem Grund: IP Zensiert

  • eine nette idee :)


    wenn es den zweck tut ist es nice haben das ganze etwas anders gelöst da stecken paar Jahre arbeit drin bei dem Programm was dies bei uns tut.


    und ich muss sagen auf diese idee wär ich nicht so schnell gekommen.



    statt exit 0 würde ich exit $? nehmen dann gibt er den return code der letzten aktion zurück sprich wenn etwas failed haut er den richtigen error code raus :)
    greetz :)

  • Ich habs halt auch etwas anders gelôst, bei tekbase ist vieles "leider" flickschusterei, die updates der addons/mods hätte man eigentlich in den addon/mod installieren teil mit machen können/sollen

  • Was jetzt aber noch fehlt ist der Versions Check. ich möchte den lieder mit der bash und nicht mit extra Scripte wie jSon lösen.


    Danke für den Tip mit dem exit $?.


    Hab mich auch bischen durch Tante Google eingelesen und einzelne Teile in der Konsole getestet. Doch das gesamt Script ist noch ungetestet.
    Das zweite Problem ist auch dies:


    Es wird immer der Exile Mod, wenn der Kunde Updatet, überschrieben, da der Versions Check noch nicht fertig ist.


    Aber das mit fuse und sshfs klappt ganz gut, wenn man die ganzen Vorbereitungen für fuse gemacht hat.

  • Ja das nicht so berauschend wenn immer geupdated wird wenn sich der md5 ändert

    Nein das Script oben Updatet immer.


    Hier mal mit Versioncheck, den ich recht Einfach gehalten hab:



    Da ich ja Regelmässig auf der Exilemod Seite bin, bekomme ich ja mit wenn es eine Neue Version gibt.
    Ich kann mir aber auch im Adminbereich ein Widget oder Modul bauen, was mir die Aktuelle Version von de Exilemod HP mit

    Code
    curl -s "http://www.exilemod.com/downloads/" | sed -n '274p' | awk '{print $2}'
    
    
    oder
    
    
    curl -s "http://www.exilemod.com/downloads/" | sed -n '274p'

    ausgiebt.

    2 Mal editiert, zuletzt von BdMdesigN () aus folgendem Grund: Typo

  • Nein. Da ich dann immer noch alles per Hand machen müsste.
    Wirst Du verstehen, wenn Du selber ein Exile Server aufsetzt.