XF2.3 Wie größere Menge AddOns zeiteffizient/im Batch installieren/updaten?

smallwheels

Aktives Mitglied
Lizenzinhaber
Registriert
26. Sep. 2022
Beiträge
72
Punkte
43
XF Version
  1. 2.2.10 PL1
XF Instanz
Hosting
Mit dem Erscheinen von 2.3.8 möchte ich den Schritt von 2.2 auf 2.3 machen. Dazu müssen auch zahlreiche AddOns upgedated werden und es kommen eine kleine Menge neue hinzu - insgesamt sind es zwsichen 20 und 30, die gegenüber der letzten 2.2er Version hochgezogen werden müssen oder neu dazu kommen. Das Testen vorab hat gezeigt: Die Installation des XF-Updates selbst geht ziemlich flott, überraschenderweise. Die anschliessende Updaterei der AddOns ist hingegen eine wahre Klickorgie und dauert aggregiert zudem ziemlich lang. Kann man das irgendwie automatisieren/beschleuningen etc.? Ich las irgendwo immer mal wieder was von CLI-Tools, habe aber keine vernünftige Beschereibung eines Vorgehens oder Dokumentation der Tools/Befehle gefunden. In der Developer Doku


steht ein bisschen was, viel schlauer hat mich das aber nicht gemacht. Indirekt habe ich etwas einem Bug Report von @Kirby entnehmen können:


Neben der Tatsache, dass das für mein Wissensniveau nicht als Doku reicht ;-) macht der Bug auch eher nervöser als zu ermutigen.

Zweck der Übung ist es, die Downtime, die bei diesem recht fetten Update zwangsläufig entsteht, so kurz wie möglich zu halten. Im Idealfall verringert es auch das Fehlerrisiko, daher die Bonusfrage: Kann man etwaige Konfigurationen von einem Template-/Testsystem, auf dem das Upgrade durchgeführt wurde, runterziehen und auf dem Livesystem am Stück einspielen (ggf. nach Anpassung des Configfiles)?


Das alles macht natürlich. nur Sinn, wenn der Arbeitsaufwand zur Vorbereitung nicht gen unendlich geht - ich muss ja nur ein Forum deployen und nicht hunderte... ;-)

Der Sicherheit halber: Bis dato habe ich Addons per sFtp auf den Server kopiert (typischerweise die jeweiligen src/js/etc. Verzeichnisse aus dem Upload-Folder der Addons). Spricht angesichts der Addonmenge was dagegen, bereits lokal src, js, etc. anzulegen, die Daten der zweiligen Addons da reinzuverklappen und das dann auf einen Schlag hochzuladen? Sollte ja eigentlich unproblematisch funktionieren, würde ich erwarten. Oder doch nicht? Die AddOns in ihren jeweils passenden Versionen habe ich bereits hier liegen vorbereiteterweise. Gibt es ein schlaueres Vorgehen? Die Variante via Uplad eines Zipfiles und installieren aus dem ACP klappte in der Vergangenheit eher mässig (evtl. aufgrund shared hosting) - löst mein Batchproblem aber ja eh nicht.

Bonusfrage: Ist es möglich bzw. eine gute oder doch eher eine blöde Idee Idee, mit mehreren Instanzen des ACP parallel zu arbeiten? D.h. während bei Nutzung via GUI in dem einen eine Templateanpassung läuft parallel in einem zweiten z.B. Konfigurationen vorzunehmen?
 
Echt jetzt - wegen 20-30 Addons?
Ich würde das nicht mal in Erwägung ziehen zusammen zu fassen schon um mitzubekommen welches Addon ggf. Probleme macht.
Da bin ich vielleicht auch einfach old scool - eins nach dem anderen und zwischendrin schon mal grob schauen obs korrekt läuft. So mach ich das.

Bonusfrage: Ist es möglich bzw. eine gute oder doch eher eine blöde Idee Idee, mit mehreren Instanzen des ACP parallel zu arbeiten? D.h. während bei Nutzung via GUI in dem einen eine Templateanpassung läuft parallel in einem zweiten z.B. Konfigurationen vorzunehmen?
Aus bereits gesagtem schlussfolgernd hielte ich das nicht für die beste Idee. ;-)
 
Bonusfrage: Ist es möglich bzw. eine gute oder doch eher eine blöde Idee Idee, mit mehreren Instanzen des ACP parallel zu arbeiten? D.h. während bei Nutzung via GUI in dem einen eine Templateanpassung läuft parallel in einem zweiten z.B. Konfigurationen vorzunehmen?
Möglich? Technisch, ja. Funktioniert das immer reibungslos: Vermutlich nicht. Ich würde da dringend von abraten. Wenn zum Beispiel in zwei tabs gleichzeitig die Styles geupdated werden kann das unvorhergesehen folgen haben.
 
Ich las irgendwo immer mal wieder was von CLI-Tools, habe aber keine vernünftige Beschereibung eines Vorgehens oder Dokumentation der Tools/Befehle gefunden.
Mittlerweile habe ich immerhin ier eine Übersicht der möglichen CLI-Befehle gefunden:
Der Sicherheit halber: Bis dato habe ich Addons per sFtp auf den Server kopiert (typischerweise die jeweiligen src/js/etc. Verzeichnisse aus dem Upload-Folder der Addons). Spricht angesichts der Addonmenge was dagegen, bereits lokal src, js, etc. anzulegen, die Daten der zweiligen Addons da reinzuverklappen und das dann auf einen Schlag hochzuladen? Sollte ja eigentlich unproblematisch funktionieren, würde ich erwarten.
Mittlerweile habe ich das Update auf 2.3.8 durchgezogen und das dabei ausprobiert. Funktioinert (erwartungsgemäß), eine große Zeitersparnis ist es aber nicht (bei einer noch halbwegs überschaubaren Menge an Addons) und natürlich sollte man das nur machen, wenn der Pool an hochzuladenden Addons und deren Versionen fix ist, sonst kann man sich prima in den Fuß schiessen (i didn't). Falls das lokale Kopiertool kein Merging von Ordnerinhalten kann sondern überschreibt wird's noch lustiger - da ist der web das über einen sFTP-Client zu machen, der das kann, erheblich sicherer. Also wirklich nur begrenzt zu empfehlen.
Bonusfrage: Ist es möglich bzw. eine gute oder doch eher eine blöde Idee Idee, mit mehreren Instanzen des ACP parallel zu arbeiten? D.h. während bei Nutzung via GUI in dem einen eine Templateanpassung läuft parallel in einem zweiten z.B. Konfigurationen vorzunehmen?
Möglich? Technisch, ja. Funktioniert das immer reibungslos: Vermutlich nicht. Ich würde da dringend von abraten. Wenn zum Beispiel in zwei tabs gleichzeitig die Styles geupdated werden kann das unvorhergesehen folgen haben.
Das ist klar. Mir ging es um Zeitersparnis, weil einzelne Dinge ewig und drei Tage brauchen, z.B. der Import von Sprachen/Phrasen o.ä. und die Frage war, ob man die Zeit nutzen kann, um derweil an anderen Stellen z.B. Konfigurationen vorzunehmen. Es zeigt sich: geht problemlos. Take it with a grain of salt. Dass man nicht gleichzeitig parallel an denselben Stellen rumdengeln sollte ist klar.

Echt jetzt - wegen 20-30 Addons?
Ich würde das nicht mal in Erwägung ziehen zusammen zu fassen schon um mitzubekommen welches Addon ggf. Probleme macht.
Da bin ich vielleicht auch einfach old scool - eins nach dem anderen und zwischendrin schon mal grob schauen obs korrekt läuft. So mach ich das.
Das ist ja auf dem Testsystem, das zu 99,5% identisch ist, vorab geprüft worden. Ablaufen tut das so oder so ja seriell und mit passendem Skripting kann man den Prozess ja auch semiinteraktiv gestalten - z.B. mit laufender Logausgabe, was gerade passiert (falls die CLI-Tools das unterstützen - oder einem Prompt in Case of Error, einem break nach jedem Addon oder einem Logfile etc. etc. . Meiner Erfahrung nach ist ein sauber gescriptetes, zuvor getestetes automatisiertes Vorgehen weniger fehleranfällig als ein manuelles. Weil man beim manuellen was vergessen kann, was falsch machen oder spontan auf die Idee kommt, doch was anders zu machen als zuvor getestet - mit gelegentlich fatalen Folgen. Deswegen war damals [tm], als ich noch jung war und eine Weile lang beruflich Unix-Kisten der etwas sensibleren Sorte administriert habe, Skripten von Updates und Installationen auf Produktivsystemen der Normalzustand und alles andere eine Ausnahme. Anders kommst Du nicht zu einem verlässlich definiertem Zustand. Nur war das halt damals eine andere Liga an Kritikalität und in der Regel auch beliebig viele mehr als eine Kiste, die da betüddelt werden wollte (und GUI-Zugriff gab es eh auf kaum eine davon - die meisten hatten ohnehin gar keine). Und da Verlässlichkeit und Eindeutigkeit extrem wichtig waren konnte (und musste) man beliebig viel Zeit in die Vorbereitung, die Dokumentation, die Automatisierung und das Testen stecken. Die eigentliche Installation war dann immer harmlos, risikofrei und hat immer reibungslos funktioniert. War toll - aber eben anderere Voraussetzungen und Bedingungen. Nur weiss ich dadurch halt um den Charme von sowas im Vergleich zu den Klickaffen auf Webinterfaces zu geben und nutze das heute noch, wenn es mit vertretbarem Aufwand zu machen ist.

In meinem speziellen Fall (shared Hosting) kommt noch dazu, dass die Scriptlaufzeiten limitiert sind und das Frontend/ACP bei manchen Aufgaben eine lustige Animation zeigt, aber keine detaillierte Ausgabe, was genau es gerade tut. Manchmal hängt das Ding dann und es ist unklar, ob was auch immer es gerade im Hintergrund tut, sehr anstrengend ist und känger dauert (also alles ok ist), ob die ganze Chose abgeschmiert ist oder ob man z.B. in eine Laufzeitlimitierung des Hosters gerannt ist. Da lobe ich mir doch die Kommandozeile, zumal bei ssh die Laufzeiten eben deutlich großzügiger sind...

Auf dem Testsystem habe ich z.B. die Konvertierung der Attachment Thumbnails auf Retina ausprobiert. Waren etwas über 21.000 - das hat mehrere Stunden gedauert. Solange wollte ich die GUI ungern blockiert haben, wenn es denn überhaupt durchläuft.
 
Normal testet man in einem Parallelsystem und bügelt das dann rüber auf die Produktivseite.

Mir pers. für mich gesprochen wäre das mit dem Scripting schon zu viel Aufwand, mit Schreiben, testen, korrigieren, testen, ... und dann musst jedes Addon ja doch ggf, alle Einstellungen prüfen.

Hut ab wenn du dass alles automatisieren kannst, mir wäre das zu heikel.
 
Normal testet man in einem Parallelsystem und bügelt das dann rüber auf die Produktivseite.
Und dann vergisst Du was oder beschliesst spontan ein Setting anders zu machen und schon sitzt Du in der scheisse. Wenn Du das bei einem Forum machst ist das ja noch überschaubar - wenn Du das z.B. auf 80 Firewalls oder anderen gehärteten Hochseicherheitssystem machst kannst du nie sicher sein, einen wirklich gleichen, zuvor definierten Zustand zu haben und im schlimmsten Fall hast entweder ein Loch drin oder Dich komplett ausgesperrt und dann muss im allerschlimmsten Fall einer auf einen anderen Kontinent fliegen und das manuell wieder grade ziehen. Mal ganz abgesehen vom zeitaufwand sowas bei x Systemen manuell einzeln zu machen.
Mir pers. für mich gesprochen wäre das mit dem Scripting schon zu viel Aufwand, mit Schreiben, testen, korrigieren, testen, ... und dann musst jedes Addon ja doch ggf, alle Einstellungen prüfen.
Das Skripting ist keine Rocket Science, wenn es die entsprechenden Befehle in sinnvoller Ausprägung gibt. Deshalb ja die Frage danach und auch danach, die Settings per Skript reinzuschiessen statt rumzuklicken. Ist halt eine Frage der Risikoabwägung: Wie wichtig ist mir ein eindeutig definierter Zustand? Wie viel Aufwand bin ich bereit dafür in Kauf zu nehmen? Was ist das Risiko, wenn der Zustand nicht eindeutig ist? Und was der daraus entstehende Zeitaufwand? Ich kenne kein professionelles Deployment, wo irgendwer manuell hinterher rumklicken müsste - viel zu aufwändig, viel zu risikoreich.
Hut ab wenn du dass alles automatisieren kannst, mir wäre das zu heikel.
Wie gesagt: Das Gegenteil ist der Fall und das mehr als eindeutig. Seit Dekaden. Ob das bei einem Forum nötig und gerechtfertigt ist darüber wiederum kann man lange diskutieren.
 
Zurück
Oben