UCS@school App mit anderer Version als auf DC Master installieren

ucs-4
ucsschool

#1

In dieser FAQ werden zwei Dinge beschrieben:

  • Behandlung unterschiedlicher UCS@school Versionen auf DC Master und DC Slave
  • Installation einer bestimmten UCS@school Version

UCS@school App-Versionen

In einer UCS@school Multi-Server-Umgebung sind diverse Komponenten auf edukativen DC Slaves und dem DC Master eng miteinander verzahnt. Ein reibungsloser Betrieb ist daher nur mit bestimmten Kombination der UCS@school-App auf DC Master, Backup und Slave möglich.

Prinzipiell gelten folgende Regeln:

  • Die Version der App auf dem Master muss die höchste in der Domäne sein.
  • Die Version der App auf den Backups sollte exakt (inkl. Point-Release) mit der auf dem Master übereinstimmen, muss aber mindestens das gleiche Release sein.
  • Die Version der App auf den Slaves darf bis zu einem Release hinter dem auf dem Master liegen. Es wird jedoch empfohlen das gleiche Release zu verwenden.

Daraus ergeben sich folgende zur Zeit unterstütze Kombinationen:

Master 	     Backup 	  Slave
4.1 R2 	     4.1 R2 	   4.1 & 4.1 R2

In der Tabelle sind die Point-Releases (die v8 in “4.1 R2 v8”) nicht aufgeführt. Sie werden jedoch beim Vergleich beachtet: ist die Version auf dem Master “4.1 R2 v3”, darf auf einem Slave nicht “4.1 R2 v4” installiert werden.

Installation einer höheren App-Version als auf dem DC Master

Der Versuch die UCS@school App auf einem DC Backup oder Slave in einer höheren Version zu installieren als auf dem Master läuft, wird ab Version 4.1 R2 v9 vom join Skript 00ucs-school-app-version-check.inst verhindert. Um die Prüfung zu umgehen, muss sowohl die genaue Version auf dem DC Master, als auch auf dem DC Backup/Slave in einer UCR-Variable angegeben werden:

# ucr set ucsschool/join/ignore-version-mismatch/<MASTERVERSION>/<SLAVEVERSION>=true

Um die genauen Versionsbezeichnungen zu erfahren, kann das Skript das den Test durchführt gestartet werden:

# /usr/share/ucs-school-metapackage/scripts/app_version.py -v ucsschool && echo "Erfolgreich"
Version of app "ucsschool" on this host: "4.1 R2 v8"
Version of app "ucsschool" on DC master: "4.1 R2 v7"
Error: local version of app "ucsschool" higher than DC masters versions!

Wird nun die UCR-Variable gesetzt, gelingt der Test. Der UCR-Varialenname muss wegen der Freizeichen in der Version in Anführungszeichen eingeschlossen werden:

# ucr set "ucsschool/join/ignore-version-mismatch/4.1 R2 v7/4.1 R2 v8"=true
Create ucsschool/join/ignore-version-mismatch/4.1 R2 v7/4.1 R2 v8
# /usr/share/ucs-school-metapackage/scripts/app_version.py -v ucsschool && echo "Erfolgreich"
Version of app "ucsschool" on this host: "4.1 R2 v8"
Version of app "ucsschool" on DC master: "4.1 R2 v7"
Error: local version of app "ucsschool" higher than DC masters versions!
Ignoring version mismatch, because "ucsschool/join/ignore-version-mismatch/4.1 R2 v7/4.1 R2 v8" is set.
Erfolgreich

Nun wird das join Skript 00ucs-school-app-version-check.inst erfolgreich durchlaufen.

Installation der UCS@school App in einer bestimmten Version

Um eine bestimmte Version der UCS@school app zu installieren, kann folgendes ausgeführt werden:

# univention-app install ucsschool=<version>

Existierende Versionen werden so aufgelistet:

# univention-app list --with-repository ucsschool

Um die Version 4.1 R2 v7 zu installieren wird dann folgendes ausgeführt:

# univention-app install ucsschool="4.1 R2 v7"

Anschließend kann der UCS@school-Konfigurationsassistent in der UMC ausgeführt werden.