opsi Version 4.0.7 Release Notes

uib gmbh


Inhaltsverzeichnis

1. Copyright
2. Übersicht der Neuerungen
3. Wichtige Hinweise - Unbedingt Beachten
3.1. Ubuntu 16.04 (Xenial) und mysql-Backend
3.2. Aktuelle Netbootprodukte mit 4.0.7 verwenden
3.3. opsi-client-agent Option: verify_server_cert
3.4. Configed Verbindungsprobleme
3.5. Sortieralgorithmus1 repariert
3.6. opsi-product-updater Verhalten
3.7. Konfiguration der Samba-Shares
4. Hinweise zur Installation
4.1. Hinweise zum Aktualisieren von opsi-Paketen
5. Paketliste
6. Was fehlt noch (und ist in Arbeit)
7. Known Bugs / Known Problems
8. Abkündigung
8.1. Abkündigung: Distributionen für opsi-server
8.2. Abkündigung Clients: Windows Versionen
8.3. Abkündigung Clients: Linux Versionen
9. opsi Support Matrix
9.1. Unterstützte Distributionen für Server
10. Verbesserungen am opsi-configed
10.1. WakeOnLan-Scheduler
10.2. Passwörter in Properties
10.3. Auswahlliste opsi-Server beim Login
10.4. Neuer Hauptmenue-Punkt "Fenster"
10.5. Erweiterte Client-Suchfunktion innerhalb der Client-Tabelle
10.6. Erweiterte Gruppenbearbeitungsmoeglichkeiten in der Client-Baumansicht
11. Linuxsupport
11.1. Supportmatrix
11.1.1. Unterstützt als opsi-client: Linux :
11.2. opsi-linux-client-agent: 15 Freistarts
11.3. Neue boolsche Funktion waitForPackageLock
11.4. Erweiterung der Funktion getLinuxVersionMap
11.5. Das Produkt l-opsi-server
11.6. Einrichtung eines lokalen deb http Repository
11.6.1. debian8
11.6.2. ubuntu16-04
12. Neuer opsi-client-agent
12.1. Konfiguration
12.1.1. Proxysupport-Konfiguration
12.1.2. Steuerung der Produkte die ausgeführt werden pro Event
12.2. Neue opsi Client Kiosk Anwendung
12.2.1. Client Kiosk: Verwendung
12.2.2. Besonderheiten
13. Wiederherstellung von opsi Metadaten aus Images (opsi-wim-capture, opsi-local-imagecapture)
14. opsi-script / opsi-winst 4.11.6
14.1. opsiservicecall und JSON Funktionen [W/L]
14.2. Prozess und Script Funktionen [W/L]
14.3. Crypt / Hash related functions [W/L]
14.4. time / date related functions
14.5. Misc news
15. Installationsreihenfolge / Sortieralgorithmus1
16. opsi-Logviewer
17. opsi Support Matrix Windows Clients
17.1. Unterstützt als opsi-client: Windows :
18. opsi clonezilla
19. Sonstiges
19.1. Changelogs:
19.1.1. Changelog opsi-configed
19.1.2. Changelog opsi-client-agent
19.1.3. Changelog opsiclientkiosk
19.1.4. Changelog opsiclientd
19.1.5. Changelog opsi-script / opsi-winst
19.1.6. Changelog windows netboot products
19.1.7. Changelog linux netboot products
19.1.8. Changelog opsi-linux-client-agent
19.1.9. Changelog l-opsi-server
19.1.10. Changelog l-system-update
19.1.11. Changelog l-jedit
19.1.12. Changelog opsi-local-image
19.1.13. Changelog opsi-clonezilla
19.1.14. Changelog python-opsi
19.1.15. Changelog opsiconfd
19.1.16. Changelog opsipxeconfd
19.1.17. Changelog opsi-utils
19.1.18. Changelog opsi-linux-bootimage
19.1.19. Changelog opsi-linux-support
19.1.20. Changelog jedit
19.1.21. Changelog opsi-logviewer
19.1.22. Changelog opsi-wim-capture
19.1.23. Changelog opsi-wim-info
19.1.24. Changelog opsi-nagios-plugins

Abbildungsverzeichnis

10.1. opsi-configed: Scheduler für Wake On Lan
10.2. Loginmaske des opsi-configed
10.3. opsi-configed: Hauptmenü mit "Fenster"-Aufrufen
12.1. opsi-client-kiosk: Hauptfenster
12.2. opsi-client-kiosk: Aktionsbestätigung

Tabellenverzeichnis

11.1. Unterstützte Linux-OS als Client in opsi 4.0.7
11.2. Linux Netboot-Produkte nach Installer-Typ in opsi 4.0.7

Kapitel 1. Copyright

Das Copyright an diesem Handbuch liegt bei der uib gmbh in Mainz.

Dieses Handuch ist veröffentlicht unter der creative commons Lizenz
Namensnennung - Weitergabe unter gleichen Bedingungen (by-sa).

CC by sa

Eine Beschreibung der Lizenz finden Sie hier:
http://creativecommons.org/licenses/by-sa/3.0/de/

Der rechtsverbindliche Text der Lizenz ist hier:
http://creativecommons.org/licenses/by-sa/3.0/de/legalcode

Die Software von opsi ist in weiten Teilen Open Source.
Nicht Open Source sind die Teile des Quellcodes, welche neue Erweiterungen enthalten die noch unter Kofinanzierung stehen, also noch nicht bezahlt sind.
siehe auch: http://uib.de/de/opsi-erweiterungen/erweiterungen/

Der restliche Quellcode ist veröffentlicht unter der AGPLv3:

agplv3

Der rechtsverbindliche Text der AGPLv3 Lizenz ist hier:
http://www.gnu.org/licenses/agpl-3.0-standalone.html

Deutsche Infos zur AGPL: http://www.gnu.org/licenses/agpl-3.0.de.html

Für Lizenzen zur Nutzung von opsi im Zusammenhang mit Closed Source Software kontaktieren Sie bitte die uib gmbh.

Die Namen opsi, opsi.org, open pc server integration und das opsi-logo sind eingetragene Marken der uib gmbh.

Kapitel 2. Übersicht der Neuerungen

Schwerpunkte dieser Freigabe sind:

  • Unterstützung Ubuntu 16.04 Xenial
  • Neues opsi Bootimage
  • Erweiterte Linuxunterstützung mit neuen opsi-linux Netboot Produkte, neuem Client-agent mit 15 Freistarts und einigem mehr
  • Ausrichtung von opsi auch auf die Bereiche Konfigurationsmanagement und Unterstützung von Automatisierung in Continous Integration Prozessen in heterogenen Umgebungen (Windows / Linux).
  • Sortierung der Installationsreihenfolge nach Algorithmus 1 ist repariert
  • Neuer opsi-client-agent

Das opsi Service Release 4.0.7 weist eine Fülle von Neuerungen und Detailverbesserungen auf.

Hier eine Übersicht:

  • Neues opsi Bootimage

    • Basiert auf Ubuntu 16.04 Xenial
    • Kernel 4.4.11
  • opsi-server Pakete jetzt auch für:

  • opsi-configed:

    • integrierter Scheduler für WakeOnLan
    • WakeOnLan auch für Clients an Depotservern
    • Passwörter in Properties werden nicht mehr angezeigt
    • Auswahlliste für opsi-Server beim Login
    • neuer Hauptmenü-Eintrag "Fenster"
    • erweiterte Suchfunktion
    • erweiterte Funktionen für Gruppen im Treeview
    • diverse Bugfixes
  • opsi-client-agent:

    • Neuer Client für den Kioskmode
    • Komplett neuer Build von opsiclientd basierend auf python 2.7 und NT6
    • NT5: Der Support für NT5 wurde eingefrohren auf opsiclientd 4.0.83 (Mit OpenSSL 1.0.2f)
    • Proxysupport für alle HTTP(S)-Verbindung vom opsiclientd
    • Neues Feature um über Produktpruppen die Ausführung von Produkten der Events zu steuern (include und exclude von Produkten pro Event)
    • Unterstützung für Windows 10 im WAN-Modus für die mshotfix-Abopakete
    • Upgrade de SSL libraries zu 1.0.2h
    • Siehe auch gesondertes Kapitel: Kapitel 12, Neuer opsi-client-agent
  • opsi-winst / opsi-script (4.11.6.1)

  • Installationsreihenfolge repariert

    • Der Sortieralgorithmus 1, der eine Reihenfolge für die Produkte auf der Basis der gesetzten Produktprioritäten und Produktabhängigkeit, mit Vorrang für die Produktabhängigkeiten als Spezifikum, konstruiert, arbeitet jetzt wieder entsprechend dem Handbuch. Die Produktreihenfolge, die je nach Einstellung im Server-Config mit Algorithmus 1 oder 2 berechnet ist, wird jetzt bei der Produktinstallation durch den opsi-winst (konstant) eingehalten.
      Siehe auch gesondertes Kapitel Kapitel 15, Installationsreihenfolge / Sortieralgorithmus1
  • opsi-clonezilla:

  • opsi-linux-support:

    • Aktualisierter opsi-linux-client-agent (mit 15 Freistarts)
    • debian8 Produkt mit Installation auch aus lokalem http Repository
    • ubunt16-04 Produkt mit Installation auch aus lokalem http Repository
    • Bereitstellung von lokalen http Repositories für die Linuxinstallation
    • Serverpaket opsi-linux-support stellt jetzt auch die Basis für statische http-Repositories für Debianartige Netbootprodukte (debian8/ubuntu16-04) bereit
    • Produkt l-opsi-server für die automatisierte Installation von opsi-server Paketen auf einer Linux Maschine (z.B. zur Erstellung eines neuen Depotservers)
    • Siehe auch gesondertes Kapitel Kapitel 11, Linuxsupport
  • opsi-logviewer:

    • Das von uib erstellte Tool opsi-logviewer öffnet jetzt auch komprimierte Dateien.
    • Das Produkt opsi-logviewer ist jetzt auch Linux-geeignet.
    • Die neue before-Abhängigkeit zu javavm sichert die Funktion des Startaufrufs.
  • Sonstiges

    • Es gibt eine neue Konfigurationsdatei für die Hardware-Inventur. Mit dieser ist es möglich, Daten über die Anzahl der physikalischen und logischen Kerne eines Systems zu erheben und zu speichern.
    • Bei der Verwendung der Option resolveHostAddress bei den Backends HostControl und HostControlSafe
      wird bei einem fehlgeschlagenen Versuch der Namensauflösung eine eventuell hinterlegte IP-Adresse verwendet.
    • Zahlreiche Verbesserungen und Features in der Python-Library von opsi

Kapitel 3. Wichtige Hinweise - Unbedingt Beachten

3.1. Ubuntu 16.04 (Xenial) und mysql-Backend

Achtung

Ubuntu Xenial (16.04) verwendet MySQL in der Version 5.7. Diese Version verwendet den vorher optionalen strict mode nun standardmäßig. Dies führt zu einem Fehlschlag des Befehls opsi-setup --configure-mysql. Dementsprechend sollte vor dem Befehlsaufruf folgende Datei editiert werden:

/etc/mysql/mysql.conf.d/mysqld.cnf

In der [mysqld] Sektion muss nun folgende Zeile eingefügt werden:

sql_mode=NO_ENGINE_SUBSTITUTION

Danach muß der Dienst mysql neu gestartet werden:

service mysql restart

Es ist nun möglich unter Ubuntu Xenial fort zu fahren.

3.2. Aktuelle Netbootprodukte mit 4.0.7 verwenden

Im Fehlerfall updaten Sie bitte Ihre Netbootprodukte!
Nur für den Notfall finden sie alte bootimages unter http://download.uib.de/opsi4.0/archiv/opsi-linux-bootimage/

3.3. opsi-client-agent Option: verify_server_cert

Es gibt ein Problem bei der Überprüfung der Server Zertifikate, so dass wir vorerst empfehlen, diese Option im opsiclientd vor einem Upgrade zu deaktivieren, was auch der Default Konfiguration entspricht. Gegebenenfalls muß der Hostparameter für den opsiclientd wie folgt geändert werden:

opsiclientd.global.verify_server_cert : false

Und vor dem Upgrade sollten die Clients die geänderte Konfiguration auch erhalten haben.

3.4. Configed Verbindungsprobleme

Aufgrund der Verwendung eines neuen Default-Protokolls für die HTTPS-Verbindung TSLv1.2 kann es zu unterschiedlichen Fehlerbildern im Configed kommen. Folgende Probleme sind beobachtet worden.

  • Fehlermeldung bei der Anmeldung, Anmeldung nicht möglich
  • Absturz beim Aufrufen von größeren Logdateien
  • Absturz beim Aktualisieren der Clientliste

Als vorübergehende Lösung empfehlen wir für den Aufruf das bisherige HTTPS-Protokoll TLSv1 zu verwenden. Hierfür gibt es die folgenden Lösungsansätze:

  • Im opsi-Paket opsi-configed das Property fallback_tlsv1 [true] setzen.
  • Für den Fall das der Configed sich nicht mehr starten läßt, gibt es hier eine lauffähige Version als setup.exe:
    http://download.uib.de/opsi4.0/helper/opsi-configed-setup.exe
  • Der lokale configed kann durch den Java-Aufrufparameter -Dhttps.protocols=TLSv1 auf die vorherige Protokollversion zurückgesetzt werden, der Aufruf heißt dann (je nach sonstiger Konfiguration)
...javaw -Dhttps.protocols=TLSv1 -Xmx1024m -jar "C:\Program Files (x86)\opsi.org\configed\configed.jar ...

3.5. Sortieralgorithmus1 repariert

Achtung

Durch die Reperatur dieses länger vorhandenen Bugs ändern sich evtl. sich die Installationsreihenfolgen im Vergleich zu der fehlerhaft berechneten Reihenfolge in 4.0.6

3.6. opsi-product-updater Verhalten

Bisher wurden die Windows Netboot-Produkte nur aktualisiert, wenn man den opsi-product-updater mit der Option -i aufgerufen hat. Dieses Verhalten wurde nun geändert. Die Windows Netboot-Produkte werden nicht mehr bei einem Update der Produkte ausgeschlossen. Diese Produkte werden wie die Localboot-Produkte upgedatet. Falls Sie weiterhin Ausnahmen beibehalten möchten, pflegen Sie bitte den excludes-Eintrag entsprechend.

Ein ensprechender Hinweis bei der Paketinstallation weist auf eine geänderte Konfigurationsdatei hin. Falls Sie die geänderte Konfigurationsdatei übernehmen, müssen Sie eventuell anschließend ihre Zugangsdaten in der Konfigurationsdatei erneuet eintragen.

3.7. Konfiguration der Samba-Shares

In bestehenden opsi Installationen wurde die Shares bisher mit oplock Parametern angelegt. Dies führt zu einem Bug zwischen Linux Rechnern. Wir empfehlen daher die oplock Parameter aus der Konfiguration für alle Shares zu entfernen und den Samba Dienst neu zu starten. Bei einer Neuinstallation des opsi-Servers werden die Shares ohne den oplock Parameter angelegt.

Kapitel 4. Hinweise zur Installation

Wir empfehlen vor der Installation des Updates eine Sicherung Ihres Backends
mittels opsi-backup durchzuführen:

opsi-backup create

Die Produkte welche im Rahmen dieses Releases veröffentlicht werden,
sind in etlichen Teilen voneinander abhängig.
Sie sollten daher nicht versuchen, nur Teile zu installieren.

Wir empfehlen zuerst den Server und danach die opsi-Produkte zu aktualisieren.

Beim Update eines bestehenden opsi-Servers kann es vorkommen, dass eine neue
Version der Datei /etc/opsi/opsi-product-updater.conf eingespielt werden kann und der
Paketmanager Ihres Systems Sie fragt, wie vorgegangen werden soll. Falls eine solche Nachfrage kommt und Sie diese Datei nicht geändert haben,
so können Sie diese Datei gefahrlos durch die neue Version ersetzen. Falls Sie die Datei geändert haben oder sich unsicher sind,
verweigern Sie das Ersetzen bitte.

Da bei diesem Update eine neue Konfigurationsdatei für Hardware-Inventur eingespielt wird, empfehlen wir die Ausführung von opsi-setup --init-current-config zur Übernahme dieser Felder.

Wir empfehlen nach dem Update die Ausführung von opsi-setup --set-rights,
um sicher zu stellen, dass die Zugriffsberechtigungen korrekt gesetzt sind.
Die Ausführung des Befehls kann mehrere Minuten in Anspruch nehmen.

4.1. Hinweise zum Aktualisieren von opsi-Paketen

Sollten Sie eine Multidepot Umgebung haben, so machen Sie zunächst das Upgrade auf Ihrem config-server, bevor Sie die Depots upgraden.

Die Installation erfordert ansonsten keine besonderen Arbeiten. Sie erfolgt im Rahmen der normalen Updates ihres Servers und der opsi-Produkte. Sie sollten Ihre Server updaten bovor Sie die Clients Updaten. Benutzen Sie dazu die Befehle entsprechend Ihrer Linux-Distribution.
Sollten Sie eine Multidepot Umgebung haben, so machen Sie zunächst das Upgrade auf Ihrem config-server, bevor Sie die Depots upgraden.

Wir empfehlen in der Datei /etc/opsi/opsi-product-updater.conf in der Sektion [repository_uib] den Eintrag excludes wie folgt zu modifizieren, damit Sie auch Produkte bekommen welche mit win* anfangen::

excludes =

Wenn Sie die opsi-linux Produkte benötigen so hängen Sie an den dirs Eintrag:
den Pfad opsi4.0/products/opsi-linux an.

Wenn Sie die opsi-local-image Produkte benötigen so hängen Sie an den dirs Eintrag den Pfad opsi4.0/products/opsi-local-image an.

Danach die opsi-Produkte. Dies erledigt der opsi-product-updater:

opsi-product-updater -i -vv

Um nur Updates zu installieren:

opsi-product-updater -vv

Sollten Sie eine Multidepot Umgebung haben, so machen Sie zunächst das Upgrade auf Ihrem config-server, bevor Sie die Depots upgraden.

Falls Sie Produkt-IDs mit einer Länge von mehr als 32 Zeichen verwenden wollen und das MySQL-Backend einsetzen, so führen Sie bitte ein Update der Tabellen-Definition auf Ihrem Config-Server mittels opsi-setup durch:

opsi-setup --update-mysql

Kapitel 5. Paketliste

Server-Pakete:

  • opsi-linux-support_4.0.7-5
  • opsi-utils 4.0.7.5-1
  • opsiconfd 4.0.7.4-1
  • opsipxeconfd_4.0.7.1-1
  • python-opsi 4.0.7.17-1
  • opsi-linux-bootimage-20160706-1
  • opsi-configed_4.0.7.1.3-1
  • opsi-nagios-plugins 4.0.7.2-1
  • opsi-atftp 0.7.dfsg-6

opsi-Pakete (Localboot):

  • opsi-client-agent_4.0.7.3-1
  • opsi-configed_4.0.7.1.3-3
  • opsi-winst 4.11.6.1-1
  • opsi-winst-test_4.11.6.1-1
  • jedit_5.3.0-1
  • opsi-logviewer 2.2-2
  • opsi-wim-capture_4.0.7.1-1
  • opsi-wim-info_4.0.7.1-1

opsi-Pakete (netboot):

  • win* (NT6) 4.0.7.1-1
  • opsi-clonezilla_4.0.7.2-2

opsi-Pakete (opsi-linux):

  • Ubuntu16-04_4.0.7.1-1
  • Ubuntu14-04_4.0.7.1-1
  • debian8_4.0.7.1-1
  • debian7_4.0.7.1-1
  • centos70_4.0.7.1-1
  • redhat70_4.0.7.1-3
  • sles11sp4_4.0.7.1-1
  • sles12sp1_4.0.7.1-2
  • sles12_4.0.7.1-3
  • opensuse41-1_4.0.7.1-1
  • opensuse13-2_4.0.7.1-1
  • ubuntu_4.0.7.1-1
  • debian_4.0.7.1-1
  • opsi-linux-client-agent_4.0.7.2-1
  • l-system-update_4.0.7.1-1
  • l-opsi-server_4.0.7.1-4
  • l-jedit 5.3-6

opsi-Pakete (opsi-local-image):

  • opsi-local-image-win* 4.0.7.1-1
  • opsi-local-image-backup_4.0.7.2-2
  • opsi-local-image-restore_4.0.7.1-2
  • opsi-local-image-ubuntu_4.0.7.1-1
  • opsi-local-image-delimage_4.0.7.1-1
  • opsi-local-image-capture_4.0.7.1-1
  • opsi-local-image-prepare_4.0.7.1-1
  • opsi-local-image-opensuse13-2_4.0.7.1-1

Kapitel 6. Was fehlt noch (und ist in Arbeit)

  • opsi-client-agent:

    • Die Möglichkeit im Rahmen User Profile Management den opsi-winst komplett im Kontext des eingeloggten Users laufen zu lassen.
  • opsi-linux-client-agent:

    • Noch kein echter opsiclientd für folgende Distributionen:
      RedHat 7
      CentOS 7
  • opsi-linux 4.0.7 Netboot Produkte: UEFI support

Kapitel 7. Known Bugs / Known Problems

KNOWN BUGS:

  • opsi-winst 4.11.6.1:
    Im interaktiven Modus geht der Logviewer zur Zeit nicht.
  • opsi-client-agent:
    Die Option verify_server_cert=true funktioniert derzeit nicht.
    Siehe hierzu auch unter Wichtige Hinweise
  • configed
    Fehlermeldung beim Starten oder arbeiten mit dem Configed, die sich durch die Verwendung des bisherigen HTTPS-Protokolls TLSv1 beheben lassen.
    Siehe hierzu auch unter Wichtige Hinweise

KNOWN PROBLEMS:

  • Keine

Kapitel 8. Abkündigung

8.1. Abkündigung: Distributionen für opsi-server

In diesem Kapitel werden die Abkündigungen aufgelistet. Diese Distributionsversionen werden aus verschiedenen Gründen nicht weiter
von opsi unterstützt.

  • sles11sp3
  • ubuntu15-10

Siehe auch gesondertes Kapitel: Kapitel 9, opsi Support Matrix.

8.2. Abkündigung Clients: Windows Versionen

Ab opsi v4.0.7 werden wir die Netbootpakete für

  • Windows 8

nicht weiter pflegen. Ebenso planen wir für diese Windowsversionen die
Unterstützung in den Update Abo’s einzustellen.
Falls Sie hierzu Fragen oder Probleme haben, melden Sie sich bitte bei uns.

Siehe auch gesondertes Kapitel: Kapitel 17, opsi Support Matrix Windows Clients.

8.3. Abkündigung Clients: Linux Versionen

Ab opsi v4.0.7 werden wir die Netbootpakete für

  • centos65
  • redhat65
  • opensuse13-1
  • sles11sp3
  • ubuntu14-10
  • ubuntu15-04
  • ubuntu15-10

nicht weiter pflegen.
Falls Sie hierzu Fragen oder Probleme haben, melden Sie sich bitte bei uns.

Kapitel 9. opsi Support Matrix

Im folgenden finden Sie eine Übersicht auf welchen Plattformen opsi als Server läuft.

9.1. Unterstützte Distributionen für Server

Stand: 17.07.2017

Distribution

Opsi 4.0.7

Anmerkung

Debian 9 Stretch

develop.png

Debian 8 Jessie

supported.png

Debian 7 Wheezy

supported.png

Ubuntu 16.04 LTS Xenial Xerus

supported.png

Ubuntu 14.04 LTS Trusty Tahir

supported.png

Ubuntu 12.04 LTS Precise Pangolin

supported.png

RHEL 7

supported.png

RHEL 6

supported.png

CentOS 7

supported.png

CentOS 6

supported.png

SLES 12SP2

supported.png

SLES 12SP1

supported.png

SLES 12

supported.png

SLES 11SP4

supported.png

SLES 11SP3

discontinued.png

openSuse Leap42.1

supported.png

openSuse Leap42.2

supported.png

openSuse 13.2

discontinued.png

UCS 4.2

develop.png

nicht auf Role Member

UCS 4.1

supported.png

UCS 4.0

supported.png

nicht auf Role Member

UCS 3.3

unsupported.png

UCS 3.2

supported.png

nicht auf Role Member

supported.png: Unterstützt unsupported.png: Nicht unterstützt develop.png: In Entwicklung discontinued.png: Abgekündigt

Sollten Sie den opsi-server auf einer Betriebssystemversion einsetzen,
welche im vorigen Abschnitt nicht als Unterstützt aufgeführt ist, so empfehlen wir Ihnen ein Betriebssystem-Update bevor Sie opsi v4.0.7 einspielen.

Kapitel 10. Verbesserungen am opsi-configed

10.1. WakeOnLan-Scheduler

Bei der WakeOnLan-Funktion kann ab opsi-configed Version 4.0.7 gewählt, werden

  • ob das Netzwerksignal direkt an alle ausgewählten Clients geschickt wird
  • ob es mit einem Abstand je zwischen zwei Clients versandt werden soll
  • wann der Prozess starten soll (Scheduler).

Wenn der Client einem mit dem configserver nicht identischen Depotserver zugeordnet ist, wird das WakeOnLan-Signal nicht direkt an den Client geschickt, sondern es wird eine Verbindung zum opsiconfd auf dem Depotserver aufgebaut und dieser veranlasst, in seinem Netz das Netzwerkpaket zu schicken.

Wenn der Client einem mit dem configserver nicht identischen Depotserver zugeordnet ist, wird das WakeOnLan-Signal nicht direkt an den Client geschickt, sondern es wird eine Verbindung zum opsiconfd auf dem Depotserver aufgebaut und dieser veranlasst, in seinem Netz das Netzwerkpaket zu schicken.

Abbildung 10.1. opsi-configed: Scheduler für Wake On Lan

opsi-configed: Scheduler für Wake On Lan

Zu beachten ist, dass es der opsi-configed ist, der die Aktionen auslöst, d.h. das Programm darf in diesem Zeitraum nicht beendet werden.

10.2. Passwörter in Properties

Property-Werte, die als Passwörter dienen, sollten nicht direkt angezeigt werden.

Solange bis dieses Feature in einer künftigen opsi-Version als spezifischer Datentyp konstruiert ist, wird der folgende Hack implementiert:

In den Fällen, dass der Property-Schlüsseltext

  • entweder den String password enthält
  • oder mit dem String secret beginnt,

wird der Property-Wert erst sichtbar, wenn der User auf das Werte-Feld klickt und im aufpoppenden Dialog der Anzeige des Wertes zustimmt.

Z.B. zeigt der opsi-configed für das Property root_password bei den Linux-Netbootprodukten standardmäßig, solange der User die Anzeige nicht anfordert, nur eine Sternchenfolge.

10.3. Auswahlliste opsi-Server beim Login

Der opsi-configed speichert im lokalen Benutzerprofil einige Information über die jeweilige Session, damit beim erneuten Login die Arbeitsumgebung wiederhergestellt werden kann. Seit Version 4.0.7 werden die Session-Informationen auch genutzt, um eine Auswahlliste der zuletzt verbundenen opsi-Server (z.B. produktiver und Test-Server) zu erzeugen. An oberster Stelle steht der zuletzt genutzte, der damit ohne explizite Auswahlaktion wieder verwendet werden kann.

Abbildung 10.2. Loginmaske des opsi-configed

Login des opsi-configed

10.4. Neuer Hauptmenue-Punkt "Fenster"

Über den neuen Hauptmenü-Punkt "Fenster" können statt über die Schaltflächen in der Menüleiste rechts oben die Seiten für das Lizenzmanagement sowie die Gruppen- und Produktspezialfunktionen geöffnet werden. Außerdem befindet sich hier ein neuer Menüpunkt "Fenster anordnen", mit dem auf dem Desktop hinter anderen Fenstern "verloren gegangene" configed-Fenster wieder in den Vordergrund geholt werden können.

Abbildung 10.3. opsi-configed: Hauptmenü mit "Fenster"-Aufrufen

opsi-configed: Haupmenü mit Fenster-Aufrufen

10.5. Erweiterte Client-Suchfunktion innerhalb der Client-Tabelle

Die Funktion für die Suche innerhalb der Client-Tabelle mittels Suchstring-Eingabe ist erweitert:

Wie die Suche ausgeführt wird, ist durch die Auswahl in den Drop-down-Listen zu den Feldern und die erweiterte Liste zum Suchverfahren bestimmt:

  • "Volltext": die Sucheingabe wird verwendet wie beim Standard-Googlen; d.h. wenn die Eingabe mehrere (durch Leerzeichen getrennte) Suchstrings enthält, muss mindestens einer in einer Spalte gefunden werden.
  • "Volltext (Komplettstring)": die Sucheingabe wird verwendet, als würde man beim Googlen den Text in Anführungszeichen setzen; d.h. der Gesamttext muss irgendwo in einer Spalte gefunden werden.
  • "Anfangstext": der Suchstring muss als Beginn einer Spalte vorkommen.
  • "regulärer Ausdruck": Suchstring wird als sog. regulärer Ausdruck interpretiert, d.h. es werden Zeilen gesucht, bei denen der Text einer Spalte nach den Prinzipien der Regulären Ausdrücke (vgl. die Java-Dokumentation für java.util.regex.Pattern) "matcht"

Betätigen der Return-Taste springt auf den nächsten Treffer der Suche (ohne Treffer: auf die nächste Zeile). Weitere Auswahlfunktionen basierend auf der Suche zeigt das Kontextmenü des Suchfeldes:

10.6. Erweiterte Gruppenbearbeitungsmoeglichkeiten in der Client-Baumansicht

Mittels dem etwas erweiterten Kontextmenü einer Gruppe ist es jetzt möglich,

  • Untergruppen zu erzeugen;
  • die Gruppeneigenschaften zu bearbeiten;
  • bei Bedarf die Gruppen samt ihrer Untergruppen und aller Clientzuordnungen zu löschen;
  • alle Clientzuordnungen unter Beibehaltung der Gruppe und ihrer Untergruppen zu entfernen;
  • die enthaltenen Clients anzuzeigen und in einem Schritt auszuwählen.

Kapitel 11. Linuxsupport

11.1. Supportmatrix

11.1.1. Unterstützt als opsi-client: Linux :

(Stand 28.4.2017)

Tabelle 11.1. Unterstützte Linux-OS als Client in opsi 4.0.7

Distribution

OS-Installation

netbootprodukte

client-agent

opsiclientd

Debian 8 jessie

supported.png

debian, debian8

supported.png

supported.png

Debian 7 wheezy

supported.png

debian, debian7

supported.png

supported.png

Debian 6 squeeze

discontinued.png

Ubuntu Xenial 16.04 LTS

supported.png

ubuntu, ubuntu16-04

supported.png

supported.png

Ubuntu Wily 15.10

discontinued.png

ubuntu,ubunt15-10

discontinued.png

unsupported.png

Ubuntu Vivid 15.04

discontinued.png

ubuntu, ubunt15-04

discontinued.png

unsupported.png

Ubuntu Utopic 14.10

discontinued.png

ubuntu

discontinued.png

unsupported.png

Ubuntu Trusty 14.04 LTS

supported.png

ubuntu, ubunt14-04

supported.png

supported.png

Ubuntu Precise 12.04 LTS

supported.png

ubuntu

supported.png

supported.png

Ubuntu Lucid 10.04 LTS

discontinued.png

RHEL 7

supported.png

rhel70

supported.png

develop.png

RHEL 6

discontinued.png

CentOS 7

supported.png

centos70

supported.png

develop.png

CentOS 6

discontinued.png

SLES 12.2

supported.png

sles12sp2

supported.png

develop.png

SLES 12.1

supported.png

sles12sp1

supported.png

supported.png

SLES 12

supported.png

sles12

supported.png

supported.png

SLES 11SP4

supported.png

sles11sp4

supported.png

develop.png

SLES 11SP3

discontinued.png

sles11sp3

supported.png

unsupported.png

openSuse Leap 42.2

supported.png

opensusel42-2

supported.png

develop.png

openSuse Leap 42.1

supported.png

opensusel42-1

supported.png

supported.png

openSuse 13.2

supported.png

opensuse13-2

supported.png

supported.png

openSuse 13.1 RC2

discontinued.png

openSUSE 12.3

discontinued.png

openSuse Tumbleweed

unsupported.png

unsupported.png

unsupported.png

UCS 4.2

develop.png

ucs42

develop.png

develop.png

UCS 4.1

supported.png

ucs41

supported.png

supported.png

UCS 4.0

develop.png

supported.png

supported.png

UCS 3.2

unsupported.png

unsupported.png

unsupported.png

UCS 3.0

unsupported.png

unsupported.png

unsupported.png


supported.png: Unterstützt unsupported.png: Nicht unterstützt develop.png: In Entwicklung discontinued.png: Abgekündigt

Tabelle 11.2. Linux Netboot-Produkte nach Installer-Typ in opsi 4.0.7

Netbootproduct

Installer

Status

Anmerkung

debian

opsi

supported.png

squeeze - jessie

debian8

distribution

supported.png

debian7

distribution

supported.png

ubuntu

opsi

supported.png

precise - xenial

ubuntu16-04

distribution

supported.png

ubuntu15-10

distribution

discontinued.png

ubuntu15-04

distribution

discontinued.png

ubuntu14-04

distribution

supported.png

centos70

distribution

supported.png

redhat70

distribution

supported.png

sles12sp2

distribution

supported.png

sles12sp1

distribution

supported.png

sles12

distribution

supported.png

sles11sp4

distribution

supported.png

sles11sp3

opsi

discontinued.png

opensusel42-2

distribution

supported.png

opensusel42-1

distribution

supported.png

opensuse13-2

distribution

supported.png

opensuse13-1

opsi

discontinued.png

ucs42

distribution

develop.png

ucs41

distribution

supported.png


11.2. opsi-linux-client-agent: 15 Freistarts

Seit opsi 4.0.7 beinhaltet der opsi-linux-client-agent 15 Freistarts bei denen der Agent auch ohne Freischaltung verwendet werden kann.

Genauer formuliert: Nach der initalen Installation des opsi-linux-client-agent kann der der opsi-script 15 mal im Servicekontext gestartet werden ohne eine Freischaltung zu fordern.
Dies gibt Ihnen die Möglichkeit einen Linuxrechner aufzusetzen und mit den entsprechenden opsi-Produkten für den geplanten Einsatz zu konfigurieren. Beispielsweise können Sie nach der Installation das Produkt l-opsi-server aufrufen um aus dem frisch installierten Rechner einen opsi-server zu machen.

Für eine dauerhafte Pflege des installierten Linuxrechners über diese 15 Freistarts hinaus benötigen Sie aber eine Freischaltung dieses Features.

11.3. Neue boolsche Funktion waitForPackageLock

Bei Installationen unter Linux kann es gerade nach einem Neustart vorkommen, dass ein Installationsversuch über das Paketsystem der Distribution scheitert, da diese gerade durch einen anderen Prozess belegt ist.

Für diese Problematik gibt es jetzt die neue boolsche Funktion:
waitForPackageLock(<seconds timeout string>,<bool should we kill>)
Liefert true zurück wenn das Linux Packagesystem nicht gesperrt ist.
Ist es gesperrt, so wird <seconds timeout string> Sekunden auf die Freigabe gewartet.
Ist der Timeout erreicht, so wird der Prozess welcher den Lock erzeugt hat abgeschossen wenn <bool should we kill> gleich true ist. Dieses Vorgehen ist aber nicht empfohlen.

Beispiel:

Message "Try to get Package Lock..."
if waitForPackageLock("60","false")
        comment "we got the package lock."
else
        LogError "could not get Package Lock"
        isFatalError "package lock failed"
endif

11.4. Erweiterung der Funktion getLinuxVersionMap

Die Funktion getLinuxVersionMap liefert als weiteren Key SubRelease. Dem Key SubRelease wird auf SLES Systemen der Patchlevelstand als Wert zugewiesen. Also bei SLES11SP4: SubRelease=4.

11.5. Das Produkt l-opsi-server

Das Produkt l-opsi-server dient dazu automatisiert auf einer Linuxmaschine per opsi-linux-client-agent einen opsi-server zu installieren. Dies kann dazu dienen um schnell einen neuen opsi-depot-server zu installieren oder z.B. ein opsi Testsystem.

Das Produkt l-opsi-server hat folgende Properties:

  • opsi_online_repository:
    (Base-) Repository for opsi-server installation. (Default="http://download.opensuse.org/repositories/home:/uibmz:/opsi:/opsi40")
    siehe auch repo_kind
  • opsi_noproxy_online_repository:
    (Base-) Repository for opsi-server installation (without any cache proxy). (Default="http://download.opensuse.org/repositories/home:/uibmz:/opsi:/opsi40")
    Sollten Sie bei opsi_online_repository einen Proxy oder deb-cacher mit angegeben haben (z.B. 'http://mydeb-cacher:9999/download.opensuse.org/repositories/home:/uibmz:/opsi:/opsi40"), dann geben Sie hier die URL nochmal ohne den Proxy an. Ansonsten geben Sie hier das selbe an wie bei opsi_noproxy_online_repository.
  • repo_kind:
    From which repo kind ["experimental", "stable", "testing"] should be installed ?. (Default=stable)
    Aus dem Client OS, opsi_online_repository und repo_kind wird die URL zusammengebaut welche verwendet um dem Client ein opsi Repository hinzuzufügen.
  • backend:
    Which backend should be installed ? (mysql needs valid activation file). (Default=file)
    Eine modules Datei mit den benötigten Freischaltungen kann im custom Verzeichnis des Produktes abgelegt werden. Wird dort eine modules gefunden so wird diese verwendet.
  • opsi_admin_user_name:
    What is the name of the opsi_admin_user to create (empty= nothing created). (Default=adminuser)
    Wird hier ein user angegeben, so wird dieser angelegt, wird Mitglied der Gruppen opsiadmin, pcpatch/opsifileadmin und bekommt als unix- und samba Passwort den Wert von opsi_admin_user_password
  • opsi_admin_user_password:
    What is the name of the opsi_admin_user to create (empty= nothing created). (Default=linux123)
    siehe opsi_admin_user_name
  • setup_after_install:
    Which opsi product(s) should we switch to setup after l-opsi-server installation is done ?. (Default="")
  • allow_reboot:
    May the server reboot if script is finished ?. (Default=true)
  • install_and_configure_dhcp:
    Should we run the dhcp server on this machine ?. (Default=False)
    If this property is false then the following properties: netmask, network, dnsdomain,nameserver and gateway are meaningless because thy only used for dhcp configuration.
  • netmask:
    Netmask (for dhcp). (Default="255.255.0.0")
    Meaningless if install_and_configure_dhcp=false
  • network:
    network address (for dhcp). (Default="192.168.0.0")
    Meaningless if install_and_configure_dhcp=false
  • dnsdomain:
    DNS domain (for dhcp). (Default="uib.local")
    Meaningless if install_and_configure_dhcp=false
  • nameserver:
    Primary nameserver (for dhcp). (Default="192.168.1.245")
    Meaningless if install_and_configure_dhcp=false
  • gateway:
    gateway (option routers for dhcp). (Default="192.168.1.245")
    Meaningless if install_and_configure_dhcp=false
  • update_test:
    Do not use: Internal Debuging. (Default=False)
  • ucs_master_admin_password:
    On a UCS machine the roles Slave, Backup and Member have to be joined correctly with the Master. This property takes the password to perform the join.

Das Produkt hat eine setup required before Abhängigkeit zu dem Produkt l-system-update. D.h. wenn Sie l-opsi-server auf setup stellen wird automatisch l-system-update auch auf setup gestellt und vorher installiert.

In dem Verzeichnis custom des Produktes l-opsi-server kann eine Freischaltdatei (modules) abgelegt werden, welche bei der Installation durch das Produkt l-opsi-server verwendet wird und beim Einspielen einer neuen Version des Produktes erhalten bleibt.

Achtung

Derzeit kann eine Maschine nicht gleichzeitig am selben opsi-config-server opsi-client und opsi-depot-server sein.
Wenn also ein per l-opsi-server installierter opsi-server zum Depotserver an seinem Config-Server werden soll, so müssen Sie vorher im configed die Maschine als Client löschen.

11.6. Einrichtung eines lokalen deb http Repository

Mit dem debian8 und ubuntu16-04 Paket ist es nun möglich von einem lokalen Apache2 Repository zu installieren.
Dazu müssen bei dem Produkt im Property '' die entsprechende Adresse angeben nach dem Muster http://<opsi-server>/opsi/<productId> z.B http://opsiserver/opsi/debian8
Weiterhin muss das lokale Repository natürlich erstellt werden.
Stellen Sie dazu sicher, dass das Produkt opsi-linux-support auf Ihrem opsi-server installiert ist. Dieses Paket installiert die hierfür benötigten Distributions-Pakete (apache2) und erstellt auch die benötigten Ordner. Dieser muss danach mit einem passenden distributions Repository gefüllt werden.
Hierfür gibt es zwei Möglichkeiten:

  1. Einfach: Sie laden sich ein von uns gebautes und getestetes Repository herunter und packen aus
  2. Aufwendiger: Sie bauen es sich selbst

Einfach:
Führen Sie das nachfolgende Script als root aus.
Beachten Sie das der Pfad zum Apache2 DocumentRoot zum einen Distributiontypisch unterschiedliche Defaults hat und darüberhinaus abweichend vom Default konfiguriert sein kann.
Daher müssen Sie evtl. die zweite Zeile des Scriptes anpassen !

11.6.1. debian8

#! /bin/bash
DOCUMENTROOT=/var/www/html
URL=http://download.uib.de/opsi4.0/products/opsi-linux
FILE=debian8.tgz
mkdir -p ${DOCUMENTROOT}/opsi
cd ${DOCUMENTROOT}/opsi
wget ${URL}/${FILE}
tar xzf ${FILE}
opsi-set-rights .

11.6.2. ubuntu16-04

#! /bin/bash
DOCUMENTROOT=/var/www/html
URL=http://download.uib.de/opsi4.0/products/opsi-linux
FILE=ubuntu16-04.tgz
mkdir -p ${DOCUMENTROOT}/opsi
cd ${DOCUMENTROOT}/opsi
wget ${URL}/${FILE}
tar xzf ${FILE}
opsi-set-rights .

Die von uns bereitgestellten Repositories beinhalten alle nötigen Pakete für eine erfolgreiche Installation. Unter Ubuntu-16.04 werden weitere Pakete nachgeladen, da diese nicht Inhalt einer Installations-CD sind. Nach einer erfolgreichen Installation verbleibt die Apache Freigabe in den Paketquellen. Des weiteren werden die offiziellen Paketquellen während des Installation in die Datei /etc/apt/sources.list.d/original.list kopiert. Somit haben Sie nach der Installation direkt die Möglichkeit weitere Pakete zu installieren. In den von uns bereitgestellten Repositories findet sich für jede der beiden Distributionen im jeweiligen Verzeichnis der Architektur eine sources.list. Diese können Sie führ Ihre Ansprüche anpassen.

Aufwendiger:
Erstellen Sie sich ein Verzeichnis in der Apache2 Freigabe. Üblicherweise findet sich das Verzeichnis unter /var/www/html/. Unter SLES12 ist dieser Verzeichnis an folgender Stelle /srv/www/htdocs/. In dieses Verzeischnis kopieren Sie nun den Inhalt einer Ubuntu-16.04 CD oder Debian8 DVD. Unter Ubuntu16.04 werden während der Installation noch weitere Pakete aus dem Internet nachgeladen. DVD-1 von Debian8 beinhaltet in der Regel alle Pakete für eine erfolgreiche Installation. Sollten Sie noch weitere Pakete in den Paketpool hinzufügen wollen, müssen Sie die jeweiligen Checksummen (SHA1, SHA256 und SHA512) sowie die Dateigröße in die Packages.gz eintragen und diese aktualisieren. Dies machen Sie mit dem dpkg-dev Paket. Analog müssen Sie es machen, wenn Sie den Inhalt mehrerer Debian8 DVDs in einen Paketpool zusammenschliessen.

Kapitel 12. Neuer opsi-client-agent

  • Neuer opsiclientd
  • Neuer Client Kiosk

Achtung

Die genannten Neuerungen stehen erst ab NT6 zur Verfügung. Unter NT5 (z.B. Windows XP wird der alte 4.0.6 basierte opsiclientd und Kioskclient installiert.

Der aktuelle opsi-client-agent hat keine Property UAC-Level mehr und läßt bei der Installation den UAC-Level unverändert.
Möchten Sie den UAC-Level per opsi setzen so können Sie hierfür folgendes Produkt verwenden:
http://download.uib.de/opsi4.0/products/localboot/opsi-set-win-uac_1.0-2.opsi

12.1. Konfiguration

Hier folgen die neuen Konfigurationsoptionen, die der 4.0.7 opsi-client-agent mitbringt.

12.1.1. Proxysupport-Konfiguration

In der global-Sektion von der opsiclientd.conf gibt es jetzt die Möglichkeit, den opsi-client-agent einen Proxyserver mit zu konfigurieren. Wenn ein Proxy konfiguriert wurde, werden alle HTTP- und HTTPS-Verbindungen vom opsiclientd über diesen Proxy umgeleitet.

# Use a proxy for connecting configservice
# proxy_mode:
#   'system' will try to check the system setting,
#   'static' to use proxyurl from configfile/hostparameter
# proxy_url usage: http://<user>:<password>@<proxy-url>:<proxy-port>
# Example: http://proxyuser:proxypass123@proxy.domain.local:8080
proxy_mode = static
proxy_url =

Die Proxyeinstellungen erlauben auch einen Proxy zu benutzen, der eine Authentifizierung erfordert. Dazu muss die Proxy_url wie oben im Beispiel angegeben werden.

Warnung

Der proxy_mode ist vorgesehen, dass bei der Einstellung system, der proxy aus dem laufenden Client-System ausgelesen werden. Dies ist im Moment nicht implementiert, deshalb funktioniert momentan nur die Einstellung static.

12.1.2. Steuerung der Produkte die ausgeführt werden pro Event

Mit diesem neuen Feature ist es über die Konfiguration möglich, die Liste der ab zu bearbeitenden Produkte über Produktgruppen zu steuern.

Dazu gibt es Grundsätzlich zwei Vorgehensweise:

Blacklisting (Ausschliessen):

Mit der Option exclude_product_group_ids kann man nun eine Kommaseparierte Liste von Produktgruppen-Ids mitgeben, dessen Mitglieder vom aktuellen Event ausgeschlossen werden. Auch wenn Sie eigentich auf setup stehen. Diese Produkte werden zwar ignoriert, aber bleiben auf setup stehen.

Whitelisting (Liste von Produkten ausschliesslich freigeben):

Mit der Option `include_product_group_ids`kann man nun eine Kommaseparierte Liste von Produktgruppen-Ids festlegen, dessen Mitglieder überhaupt bearbeitet werden dürfen, vorausgesetzt Sie eine Aktion ist auch gesetzt.

Diese Einstellung kann man entweder Global im Default-Event angeben, damit das für jedes Event gilt. Man kann diese Optionen aber auch Zum Beispiel nur im Event_on_demand einsetzen, somit kann man Pakete die auf setup stehen von Push-Installationen ausschliessen, obwohl Sie auf setup stehen. Bei einem normalen Neustarts des Clients mit gui_startup (default) würden diese ausgeschlossenen Pakete trotzdem auf dem Client installiert werden.

Achtung

Für Clients, die das Modul WAN/VPN aktiviert haben, muss man diese Optionen neben dem Sync-Event auch in der CacheService-Sektion mit aufgenommen werden, da der CacheService zwar vom Sync-Event getriggert wird, aber selbst keinen Zugriff auf das sync-Event hat.

Warnung

Produktabhängigkeiten werden bei diesem Feature nicht berücksichtigt. Bitte achten Sie darauf, dass Sie bei der Konfiguration keine Abhängigkeiten ausser Kraft setzen.

12.2. Neue opsi Client Kiosk Anwendung

Mit opsi 4.0.7 wird die bisherige webbasierte Darstellung des Kioskclients (ehemals kofinanzierte Erweiterung "Software on Demand") durch eine Applikation abgelöst. Hintergrund dieses Wechsels sind:

  • Beseitigung des Problems das ein selbstsigniertes Zertifikat akzeptiert werden muß.
  • Größere Funktionalität des neuen Clients

Achtung

Der alte (webseitenbasierte) Kioskclient funktioniert mit dem neuen opsi-client-agent/opsiclientd nicht mehr.

12.2.1. Client Kiosk: Verwendung

Wenn der opsi-client-agent während der Installation merkt, dass die Konfiguration: software-on-demand.active auf true gesetzt wurde, wird automatisch während der Installation auf dem Client ein Startmenü-Eintrag erstellt, über den die Kioskanwendung direkt aufgerufen werden kann. Diesen findet man dann unter: Start → Programme → opsi.org → software-on-demand.

Nach dem Start der Anwendung zeigt sich folgendes Hauptfenster:

Abbildung 12.1. opsi-client-kiosk: Hauptfenster

opsi-client-kiosk: Hauptfenster

Elemente:

  1. Headerleiste (Kundenspezifisch anpassbar)
  2. Info Button: Version und geladenen Sprache
  3. Datenladeanzeige
  4. Button zum Anzeigen der gesetzten Aktionen
  5. Button zum speichern und anzeigen der gesetzten Aktionen
  6. Button zum Beenden des Programms
  7. Anzeige der Gruppenliste
  8. Neuladen der Daten (z.B. nachdem Aktionen ausgeführt wurden)
  9. Gesetzten Filter löschen und alle Daten anzeigen
  10. Suchmaske (Filter Eingabefeld)
  11. Filter aktivieren
  12. Nach mögliche Produktupgrades filtern
  13. Produktanzeige
  14. Spalte zum Setzen der Aktionsanforderungen
  15. Tab: Produktdetailinfo: Beschreibung / Hinweis / Versionen
  16. Tab: Produktdetailinfo: Abhängigkeiten / Prioritäten
  17. Statusleiste mit Meldungen

Das Hauptfenster zeigt auf der linken Seite eine Liste der Produktgruppen (7) welche über die Config software-on-demand.product-group-ids für diesen Client freigegeben sind. Findet sich hier mehr wie eine Gruppe, so gibt es hier den zusätzlichen Eintrag Alle Gruppen an erster Stelle. In dieser Liste kann ausgewählt werden aus welchen Produktgruppen Produkte angezeigt werden sollen. Per Default wird der erste Eintrag ausgewählt, also Alle Gruppen oder die einzige Gruppe.
Beim Start oder bei Veränderung der Auswahl werden die benötigten Daten eingelesen. Dies kann etwas dauern und der Lagevorgang wird im oberen Teil des Fensters (3) angezeigt.
Die Produkte werden in der zentralen Tabelle (13) angezeigt. Sobald ein Produkt angeklickt ist werden unten Detailinformationen zu diesem Produkt eingeblendet (15/16). In der rechten Spalte ActionRequest (14) kann eine Aktionsanforderung gesetzt werden.
Über den Button Zeige Aktionen (4) werden die bisher der Anwendung bekannten Aktionen gezeigt aber noch nicht gespeichert. Erst der Button Aktionen Speichern (5) sendet die gesetzten Aktionen an den Server. Dieser prüft ob über Produktabhängigkeiten noch weitere Produkte auf setup gesetzt werden müssen. Abschließend wird in einem gesonderten Fenster die Gesamtliste der anstehenden Aktionen angezeigt.

Abbildung 12.2. opsi-client-kiosk: Aktionsbestätigung

opsi Client Kiosk: Aktionsbestätigung

In diesem Fenster kann nun über den oberen Button Installiere jetzt eine sofortige Installation ausgelöst werden. In diesem Fall ist es schlau möglichst alle Applikationen zu schließen (bzw. zumindest Daten abzuspeichern) da die gestarteten Installationen mit laufenden Anwendungen in Konflikt geraten können.
Über den unteren Button Installiere bei nächster Standard-Gelegenheit wird das Programm an dieser Stelle beendet und die gespeicherten Aktionen werden später ausgeführt.

Der config software-on-demand.show-details aus opsi vor 4.0.7 hat in der Kioskanwendung keinen Einfluß mehr und kann gelöscht werden.

Auf das Modul kann auch über das Netzwerk zugegriffen werden, hierbei ist jedoch eine Authentifizierung notwendig.

12.2.2. Besonderheiten

Folgende Besonderheiten gelten für das Software On Demand Modul / den opsi Client Kiosk:

  • Abhängigkeiten werden automatisch aufgelöst

    • Software, die von Software aus der Demand-Gruppe abhängig ist, wird automatisch falls benötigt auf setup gesetzt, ohne Einfluss des Anwenders.
  • Software die schon auf setup steht

    • In diesem Fall, wird die Checkbox: installieren, schon bei der Übersichtsseite aktiviert.

Client Kiosk: Anpassung an Corporate Identity

Die Headerleiste des Hauptfensters (1) ist Kunden spezifisch anpassbar. Dabei spielen zwei Dateien eine Rolle:

  • opsiclientkiosk.png
  • opsiclientkiosk.ini

Die opsiclientkiosk.png enthält das Bild welches in diesen Bereich geladen wird.

Die opsiclientkiosk.ini definiert den Text und dessen Darstellung die in diesem Bereich angezeigt wird.

Beispiel:

[TitleLabel]
Text= opsi Client Kiosk
FontName = Arial
FontSize = 20
FontColor = $00000000
FontBold = true
FontItalic = false
FontUnderline = false

Templates für diese Dateien finden Sie unter /var/lib/opsi/depot/opsi-client-agent/files/opsi/opsiclientkiosk/opsiclientkioskskin bzw. C:\Program Files (x86)\opsi.org\opsi-client-agent\opsiclientkiosk\opsiclientkioskskin

Möchten Sie Änderungen, welche Sie an den oben genannten Dateien durchgeführt haben, davor schützen, dass selbige beim Einspielen einer neuen Version des opsi-client-agenten verloren gehen, so können Sie hierfür das custom Verzeichnis (/var/lib/opsi/depot/opsi-client-agent/files/opsi/custom) verwenden. Das komplette custom Verzeichnis wird bei der Installation einer neuen Version des opsi-client-agenten gesichert und wieder hergestellt, so dass hier gemachte Änderungen bei einem Update nicht verloren gehen.

  • custom/opsiclientkioskskin/. Alle Dateien aus diesem Verzeichnis werden bei der Installation des opsi-client-agent auf dem Client nach C:\Pro gram Files (x86)\opsi.org\opsi-client-agent\custom\opsiclientkioskskin kopiert. Falls vorhanden, wird dieses opsiclientkioskskin Verzeichnis bevorzugt verwendet.

Ein nachträgliches Rechte nachziehen hilft Folgefehler zu vermeiden:

opsi-setup --set-rights /var/lib/opsi/depot/opsi-client-agent

Kapitel 13. Wiederherstellung von opsi Metadaten aus Images (opsi-wim-capture, opsi-local-imagecapture)

Wiederherstellung der opsi Metadaten zu installierten Produkten

Das Problem:

Wenn Sie ein Windows mit opsi neu installieren, z.B. aus win7-x64, dann werden bei der Installation des opsi-client-agent alle Localboot-Produkte, welche bei diesem Rechner vorher auf installed standen, automatisch auf setup gestellt und damit später erneut installiert.
Dies kann beim Ausrollen eines gecapturten Images nicht ganz genauso durchgeführt werden.
Im Image befindet sich das Backup der opsi-Daten, das dort während des capture Vorgangs abgelegt wurde. Dieses wird bei der Installation des opsi-client-agent entdeckt, und wieder in den opsi-server eingespielt. Damit stehen die Produkte, die in dem gecapturten Image installiert waren, jetzt für den frisch installierten Rechner auf installed. Würden jetzt alle Produkte, welche auf installed stehen auf setup gesetzt, würde dies dazu führen, dass alle schon im Image installierten Produkte nochmal installiert werden. Dies ist nicht erwünscht.

Bei der Wiederherstellung der opsi Metadaten zu installierten Produkten gibt es ab opsi 4.0.7 zwei Varianten:

  • Variante 1:
    Zurückspielen der Metadaten und Beibehaltung von setup-Actionrequests.
    Produkte die auf installed stehen werden nicht auf setup gestellt.
    Dies ist der Default und das Verhalten vor opsi 4.0.7
  • Variante 2:
    Zurückspielen der Metadaten. Produkte die auf installed stehen werden auf setup gestellt ausser denen welche in den restorten Metadaten enthalten waren.

Variante 1
Beim Ausrollen eines gecapturten Images werden nach der Installation des Images nur die Produkte automatisch installiert, welche schon vor dem Beginn der Betriebssystem-Installation auf setup standen. Dies kann durch Ihren Eingriff oder das Property setup_after_install erfolgt sein. Daher werden in diesem Fall auch nur die Produkte installiert, welche vor der Installation des Betriebssystems auf setup standen.
Dies ist der Default und das Verhalten vor opsi 4.0.7

Variante 2
Die Variante 2 verhält sich vom Ergebnis ähnlich wie es bei Installationen aus nicht gecapturten Images der Fall ist:
* Zurückspielen der Metadaten.
* Produkte die auf installed stehen werden auf setup gestellt ausser denen welche in den restorten Metadaten enthalten waren.
Diese Verhalten steht erst ab opsi 4.0.7 zur Verfügung und ist nicht der Default. Variante 2 ist durch Erweiterungen am opsi-script möglich geworden und ist Bestandteil des opsi-client-agent von 4.0.7.
Um dieses Verhalten zu verwenden muss ein config (Hostparameter) gesetzt werden:
Der boolsche Konfigurationseintrag: clientconfig.capture.switch_installed_products_to_setup. Hat dieser Eintrag für den Client den Wert true dann wird Variante 2 verwendet, ansonsten Variante 1.

Über diese Hostparameter können dann Events Client-spezifisch aktiviert bzw. deaktiviert werden. Die Hostparameter können über den opsi-configed oder opsi-admin angelegt werden.

Zum Anlegen der Hostparameter über opsi-admin sind die folgenden Befehle auf dem opsi-configserver auszuführen:

opsi-admin -d method config_createBool clientconfig.capture.switch_installed_products_to_setup "capture.switch_installed_products_to_setup" true

Damit stellen Sie für alle Rechner Variante 2 ein.

Zum Anlegen der Hostparameter über den opsi-configed wählen Sie dort Serverkonfiguration / clientconfig / Auf der Rechten Seite mit der rechten Maustaste: Boolschen Konfigurationseintrag hinzufügen.

Kapitel 14. opsi-script / opsi-winst 4.11.6

  • Logdateien:

    • sind nun immer in dem Encoding UTF-8.
    • heißen opsi-script.log; ältere Versionen werden als opsi-script_0.log bis opsi-script_8.log gesichert.
  • Security Upgrade zu Windows SSL Libraries 1.0.2h (libeay32.dll, ssleay32.dll)
    Update des SSL Protokolls auf TLS autonegotiation
  • Neue Dokumentationen:

    • opsi-winst-refrence-card mit Themen bezogener Funktionsübersicht (by topic)
  • Neue Stringlisten Funktion:

setStringInListAtIndex(<newstring>,<list>,<indexstr>) : stringlist //since 4.11.6 [W/L]

removeFromListByMatch(<searchstring>,<list>) : stringlist //since 4.11.6 [W/L]

  • Durch einen fix im opsi-script ist der Umgang mit objekt bezogenen Service Methoden per opsiservicecall jetzt möglich:

Der Umgang mit JSON Objekten aus dem Webservice erfordert ein Grundverständnis von JSON, den opsi Objekten und den JSON bezogenen Methoden in opsi-script. Siehe dazu auch : opsi-manual: Kapitel: "Web service / API Methoden seit opsi 4.0" und siehe nächstes Kapitel

Gemäß folgendem Code Beispiel können Sie Objekte vom Service holen. In diesem Beispiel werden Alle productOnClient Objekte geholt, welche zum aktuellen Rechner gehören (%opsiserviceUser% ist im Service Kontext der FGDN des Clients), Localboot Produkte sind und bei denen der Actionrequest auf setup steht.

DefStringlist $resultlist$
set $resultlist$ = getReturnListFromSection("opsiServiceCall_get_productOnClient_setup_objects")
[opsiServiceCall_get_productOnClient_setup_objects]
"method": "productOnClient_getObjects"
"params": [
          "[]",
          '{"clientId":"%opsiserviceUser%","productType":"LocalbootProduct","actionRequest":"setup"}',
          ]

Das Ergebnis ist ein JSON Array String welcher in der ersten Zeile von $resultlist$ steht.

Sie können auch (veränderte) Objekte wieder zurückschreiben. Folgendes Beispiel zeigt das Prinzip: Die String Variable $ArrayStr$ muss ein gültiges JSON Array enthalten.

DefVar $ArrayStr$
(...)
[opsiServiceCall_updatePOC]
"method": "productOnClient_updateObjects"
"params": [
          '$ArrayStr$'
          ]

14.1. opsiservicecall und JSON Funktionen [W/L]

Diese Funktionen dienen dazu JSON Ausdrücke auf String oder Stringlisten zu analysieren und zu modifizieren. Notwendig ist hierfür, die Struktur des zu bearbeitenden JSON-Ausdrucks zu kennen und zu verstehen. Dies kann dazu verwendet werden, um über opsiservicecall Sektionen mit den objektorientierten opsi-webservice Methoden zu arbeiten.

jsonIsValid(<jsonstr>) : boolean //since 4.11.6: [W/L]
Liefert true zurück wenn, <jsonstr> einen gültigen JSON Ausdruck enthält.

jsonIsArray(<jsonstr>) : boolean //since 4.11.6: [W/L]
Liefert true zurück wenn, <jsonstr> ein gültiges JSON Array enthält.

jsonIsObject(<jsonstr>) : boolean //since 4.11.6: [W/L]
Liefert true zurück wenn, <jsonstr> ein gültiges JSON Object enthält.

jsonAsObjectHasKey(<jsonstr>,<keystr>) : boolean //since 4.11.6: [W/L]
Liefert true zurück wenn, <jsonstr> ein gültiges JSON Object welches <keystr> als key enthält.
Folgendes Beispiel würde true zurückliefern:

jsonAsObjectHasKey('{"productVersion" : "4.4.1","packageVersion" : "2","productId" : "jedit"}','productId')

jsonAsArrayCountElements(<jsonstr>) : intstr //since 4.11.6: [W/L]
Wenn <jsonstr> ein gültiges JSON Array enthält ist der Rückgabewert ein String mit der Zahl der Elemente des Arrays.
Im Fehlerfall = "0"

jsonAsObjectCountElements(<jsonstr>) : intstr //since 4.11.6: [W/L]
Wenn <jsonstr> ein gültiges JSON Object enthält ist der Rückgabewert ein String mit der Zahl der Elemente des Objects.
Im Fehlerfall = "0"

jsonAsArrayGetElementByIndex(<jsonstr>, <indexstr>) : jsonstring //since 4.11.6: [W/L]
Liefert vom JSON Array <jsonstr> das Element mit dem Index <indexstr>
Der Index beginnt bei 0.
Im Fehlerfall = ""

jsonAsObjectGetValueByKey(<jsonstr>, <keystr>) : valuestring //since 4.11.6: [W/L]
Liefert vom JSON Object <jsonstr> den Wert des Key <keystr>
Im Fehlerfall = ""

jsonAsObjectSetValueByKey(<jsonstr>, <keystr>,<valuestring>) : jsonstring //since 4.11.6: [W/L]
Liefert einen String mit dem in <jsonstr> übergebenen JSON Object bei dem für den Key <keystr> der Wert <valuestring> gesetzt ist. Ist der Key nicht vorhanden, so wird er erzeugt.
Wenn <valuestring> als Stringwert erzeugt werden soll (also in doppelten Anführungszeichen), dann verwenden Sie besser die folgende Funktion: jsonAsObjectSetStringtypeValueByKey.
Im Fehlerfall = ""

jsonAsObjectSetStringtypeValueByKey(<jsonstr>, <keystr>,<valuestring>) : jsonstring //since 4.11.6: [W/L]
Liefert einen String mit dem in <jsonstr> übergebenen JSON Object bei dem für den Key <keystr> der Wert <valuestring> als String (also in doppelten Anführungszeichen) gesetzt ist. Ist der Key nicht vorhanden, so wird er erzeugt.
Wenn <valuestring> nicht als Stringwert erzeugt werden soll , dann verwenden Sie besser die vorherige Funktion: jsonAsObjectSetValueByKey.
Im Fehlerfall = ""

jsonAsArrayPutObjectByIndex(<jsonstr>, <indexstr>, <objectstr>) : jsonstring //since 4.11.6: [W/L]
Liefert einen String mit dem in <jsonstr> übergebenen JSON Array bei dem am Index <indexstr> das Object <objectstr> gesetzt ist.
Im Fehlerfall = ""

jsonAsArrayToStringList(<jsonstr>) : stringlist //since 4.11.6: [W/L]
Liefert einen String mit dem in <jsonstr> übergebenen JSON Array als Stringliste mit einem Arrayelement pro Zeile.

jsonStringListToJsonArray(<strlist>) : jsonstr //since 4.11.6: [W/L]
Liefert einen String mit einem JSON Array der die Zeilen der Stringliste <strlist> als Elemente enthält.

jsonAsObjectGetKeyList(<jsonstr>) : stringlist //since 4.11.6: [W/L]
Liefert eine Stringliste mit den Keys der im JSON Object <jsonstr> vorhandnen Keys.

Beispiel:
Lese productOnClients Objekte aus einer Datei, ändere die clientId auf den Wert der aktuellen Maschine und schreibe die Objekte über den opsi-webservice zurück.

[Actions]
requiredWinstVersion >= "4.11.6"

DefVar $ProductId$
DefVar $poc_file$
DefVar $objectStr$
DefVar $ArrayStr$

DefStringlist $pocList$

set $poc_file$ = "c:\tmp\product_on_client.json"

Message "Restore productOnClient from file ..."
comment " get Restore data from file ..."
Set $ArrayStr$ = strLoadTextFile($poc_file$)
if not(jsonIsValid($ArrayStr$))
        LogError "got no valid json from file"
        isFatalError
endif
if not(jsonIsArray($ArrayStr$))
        LogError "got no json Array from file"
        isFatalError
endif

comment "get list from array"
set $pocList$ = jsonAsArrayToStringList($ArrayStr$)
comment "loop over list"
for %pocindex% = "0" to calculate(count($pocList$)+"-1") do sub_set_clientid_in_poclist
comment "convert modified list to json array"
set $ArrayStr$ = jsonStringListToJsonArray($pocList$)
comment "write back"
opsiServiceCall_updatePOC

[sub_set_clientid_in_poclist]
set $objectStr$ = takeString("%pocindex%", $poclist$)
set $objectStr$ = jsonAsObjectSetStringtypeValueByKey(($objectStr$, "clientId","%opsiserviceUser%")
set $poclist$ = setStringInListAtIndex($objectStr$,$poclist$,"%pocindex%")

[opsiServiceCall_updatePOC]
"method": "productOnClient_updateObjects"
"params": [
                                        '$ArrayStr$',
                                        ]

14.2. Prozess und Script Funktionen [W/L]

waitForPackageLock(<seconds timeout string>,<bool should we kill>) : bool //since 4.11.6.1 [L]
Liefert true zurück wenn das Linux Packagesystem nicht gesperrt ist.
Ist es gesperrt, so wird <seconds timeout string> Sekunden auf die Freigabe gewartet.
Ist der Timeout erreicht, so wird der Prozess welcher den Lock erzeugt hat abgeschossen wenn <bool should we kill> gleich true ist. Dieses Vorgehen ist aber nicht empfohlen.

processIsRunning(<process name>) : boolean //since 4.11.6.1 [W/L]
Liefert true wenn der Prozess <process name> in der aktuellen Prozessliste ist.

Es gibt drei Varianten des shellCall Befehls:

  • shellCall (<command string>) : stringlist (output)
  • shellCall (<command string>) : noresult
  • shellCall (<command string>) : string (exitcode)

Alle drei führen <command string> in der standard shell (cmd.exe / bash) aus. Die Funktionen unterscheiden sich aber bezüglich des Rückgabewertes

  • shellCall (<command string>) : stringlist (output) //since 4.11.4.2 [W/L]
    Liefert den output von <command string> als Stringliste.
set $list$= shellCall('net start')

Ist eine Abkürzung für den Ausdruck:

set $list$ = getOutStreamFromSection ('DosInAnIcon_netstart winst /sysnative')

[DosInAnIcon_netstart]
net start
  • shellCall (<command string>) : noresult //since 4.11.6.1 [W/L]
    Liefert keinen output.
shellCall('net start')

Ist eine Abkürzung für den Ausdruck:

DosInAnIcon_netstart winst /sysnative

[DosInAnIcon_netstart]
net start
  • shellCall (<command string>) : string (exitcode) //since 4.11.6.1 [W/L]
    Liefert den Exitcode von <command string> als String.
set $exitcode$ = shellCall('net start')

Ist eine Abkürzung für den Ausdruck:

DosInAnIcon_netstart winst /sysnative
set $exitcode$ = getLastExitcode

[DosInAnIcon_netstart]
net start
  • processCall(<string>) : string (exitcode) //since 4.11.6.1 [W/L]
    Startet das Programm <string> als Prozess und liefert den Exitcode zurück.
set $exitcode$ = processCall('setup.exe /S')

Ist eine Abkürzung für den Ausdruck:

Winbatch_setup
set $exitcode$ = getLastExitcode

[Winbatch_setup]
setup.exe /S

Tatsächlich basiert processCall intern auf den selben Routinen wie winbatch und verarbeitet daher auch die selben Modifier:

  • /LetThemGo
    Verschiebt den aufgerufenen Prozess in den Hintergrund und wartet nicht auf dessen Beendigung; d.h. das sofort die nächste Zeile der WinBatch-Sektion bzw. die nächste Zeile des übergeordneten Programms abgearbeitet werden.
  • /TimeOutSeconds <seconds>
    Bricht das Warten auf das Processende oder eine Wartebedingung (/WaitForProcessEnding) nach Ablauf von <seconds> ab, auch wenn das Prozessende oder die Wartebedingung noch nicht erfüllt ist.
    Der Prozess auf dessen Ende gewartet werden sollte wird nicht gestopt.
    Kann seit Version 4.11.3 auch alleine (z.B. ohne /WaitForProcessEnding) verwendet werden, aber nicht zusammen mit /WaitSeconds.
    Seit 4.11.4.6 wird der Zeitablauf bis zum Timeout über den Fortschrittsbalken angegeben.
  • /WaitSeconds [number of seconds]
    Die Parametrisierung /WaitSeconds [AnzahlSekunden] modifiziert das Verhalten dahingehend, dass opsi-winst/opsi-script jeweils erst nach [AnzahlSekunden] die Skriptbearbeitung fortsetzt. Die angegebene Zeit stoppt opsi-winst/opsi-script auf jeden Fall. In der Default-Einstellung wird zusätzlich auf das Ende der angestoßenen Prozesse gewartet. Ist letzteres nicht gewünscht, so kann der Parameter mit dem Parameter /LetThemGo kombiniert werden.
  • /WaitForProcessEnding <program name>
    Wartet darauf, das sich der Prozess mit dem Namen <program name> beendet.
    Kann und sollte mit /TimeOutSeconds kombiniert werden.
  • /32Bit //seit 4.11.3.5 [W]
    Das ist der Default. Die in der Sektion angegebene Pfade werden als 32 Bit Pfade interpretiert.
    Beispiel: c:\windows\system32\regedit.exe ruft (auch auf einem 64bit System) die 32 Bit regedit.exe auf.
  • /64Bit //seit 4.11.3.5 [W]
    Die in der Sektion angegebene Pfade werden als 64 Bit Pfade interpretiert.
    Beispiel: c:\windows\system32\regedit.exe ruft (auf einem 64bit System) die 64 Bit regedit.exe auf.
  • /SysNative //seit 4.11.3.5 [W]
    Die in der Sektion angegebene Pfade werden gemäß der OS Architektur interpretiert.
    Beispiel: c:\windows\system32\regedit.exe ruft auf einem 64bit System die 64 Bit regedit.exe und auf einem 32bit System die 32 Bit 'regedit.exe’auf.

14.3. Crypt / Hash related functions [W/L]

encryptStringBlow(<keystring>,<datastring>) : string //since 4.11.6 [W/L]
Verschlüsselt <datastring> mit dem Key <keystring> unter Verwendung von Blowfish und liefert den verschlüsselten Wert zurück.

decryptStringBlow(<keystring>,<datastring>) : string //since 4.11.6 [W/L]
Entschlüsselt <datastring> mit dem Key <keystring> unter Verwendung von Blowfish und liefert den entschlüsselten Wert zurück.

md5sumFromFile(<path to file>) : string //since 4.11.6 [W/L]
Liefert die md5summe der unter <path to file> gefundenen Datei zurück.
Im Fehlerfall ist der Rückgabewert ein Leerstring.

14.4. time / date related functions

timeStampAsFloatStr : string (Floating Number - format: days.decimal days) //since 4.11.6 [W/L]
Liefert einen aktuellen Timestamp als Fließkommazahlstring. Dabei ist Zahl vor dem Komma die Tage seit dem 30. Dezember 1899. Nach dem Komma kommt die Zeit in Bruchteilen des Tages.
Just for Fun: Warum nicht der 31. Dezember 1899: ?
siehe http://www.delphibasics.co.uk/RTL.asp?Name=TDateTime

14.5. Misc news

  • getMSVersionMap
  • Hat einen neuen Key Eintrag: ReleaseID. Der dazugehörige Wert gibt die Release von Windows 10 an wie z.B. 1511.
    Leerstring wenn nicht vorhanden.
    Der Wert kommt aus der Registry: "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" "ReleaseID"
  • Hat einen neuen Key Eintrag: prodInfoText.Der dazugehörige Wert gibt die verwendeten Windows Edition als String an wie z.B. PRODUCT_PROFESSIONAL.
  • Hat einen neuen Key Eintrag: prodInfoNumber.Der dazugehörige Wert gibt die verwendeten Windows Edition als Zahl an wie z.B. 48.

DecNum

HexNum

Text

00

00

An unknown product

01

01

Ultimate Edition"

02

02

Home Basic Edition

03

03

Home Premium Edition

04

04

Enterprise Edition

05

05

Home Basic Edition

06

06

Business Edition

07

07

Server Standard Edition (full installation)

08

08

Server Datacenter Edition (full installation)

09

09

Small Business Server

10

0A

Server Enterprise Edition (full installation)

11

0B

Starter Edition

12

0C

Server Datacenter Edition (core installation)

13

0D

Server Standard Edition (core installation)

14

0E

Server Enterprise Edition (core installation)

15

0F

Server Enterprise Edition for Itanium-based Systems

16

10

Business Edition

17

11

Web Server Edition (full installation)

18

12

Cluster Server Edition

19

13

Home Server Edition

20

14

Storage Server Express Edition

21

15

Storage Server Standard Edition

22

16

Storage Server Workgroup Edition

23

17

Storage Server Enterprise Edition

24

18

Server for Small Business Edition

25

19

Small Business Server Premium Edition

26

1A

PRODUCT_HOME_PREMIUM_N

27

1B

PRODUCT_ENTERPRISE_N

28

1C

PRODUCT_ULTIMATE_N

29

1D

PRODUCT_WEB_SERVER_CORE

30

1E

Windows Essential Business Server Management Server

31

1F

Windows Essential Business Server Security Server

32

20

Windows Essential Business Server Messaging Server

33

21

Server Foundation

34

22

PRODUCT_HOME_PREMIUM_SERVER

35

23

PRODUCT_SERVER_FOR_SMALLBUSINESS_V

36

24

Server Standard Edition without Hyper-V (full installation)

37

25

Server Datacenter Edition without Hyper-V (full installation)

38

26

Server Enterprise Edition without Hyper-V (full installation)

39

27

Server Datacenter Edition without Hyper-V (core installation)

40

28

Server Standard Edition without Hyper-V (core installation)

41

29

Server Enterprise Edition without Hyper-V (core installation)

48

30

PRODUCT_PROFESSIONAL

49

31

PRODUCT_PROFESSIONAL_N

50

32

PRODUCT_SB_SOLUTION_SERVER

51

33

PRODUCT_SERVER_FOR_SB_SOLUTIONS

52

34

PRODUCT_STANDARD_SERVER_SOLUTIONS

53

35

PRODUCT_STANDARD_SERVER_SOLUTIONS_CORE

54

36

PRODUCT_SB_SOLUTION_SERVER_EM

55

37

PRODUCT_SERVER_FOR_SB_SOLUTIONS_EM

56

38

PRODUCT_SOLUTION_EMBEDDEDSERVER

57

39

PRODUCT_SOLUTION_EMBEDDEDSERVER_CORE

59

3B

PRODUCT_ESSENTIALBUSINESS_SERVER_MGMT

60

3C

PRODUCT_ESSENTIALBUSINESS_SERVER_ADDL

61

3D

PRODUCT_ESSENTIALBUSINESS_SERVER_MGMTSVC

62

3E

PRODUCT_ESSENTIALBUSINESS_SERVER_ADDLSVC

63

3F

PRODUCT_SMALLBUSINESS_SERVER_PREMIUM_CORE

64

40

PRODUCT_CLUSTER_SERVER_V

65

41

PRODUCT_EMBEDDED

66

42

PRODUCT_STARTER_E

67

43

PRODUCT_HOME_BASIC_E

68

44

PRODUCT_HOME_PREMIUM_E

69

45

PRODUCT_PROFESSIONAL_E

70

46

PRODUCT_ENTERPRISE_E

71

47

PRODUCT_ULTIMATE_E

72

48

PRODUCT_ENTERPRISE_EVALUATION

84

54

PRODUCT_ENTERPRISE_N_EVALUATION

98

62

PRODUCT_CORE_N

99

63

PRODUCT_CORE_COUNTRYSPECIFIC

100

64

PRODUCT_CORE_SINGLELANGUAGE

101

65

PRODUCT_CORE

121

79

PRODUCT_EDUCATION

122

7A

PRODUCT_EDUCATION_N

125

7D

Windows Enterprise 2015 LTSB

126

7E

Windows Enterprise 2015 LTSB N

129

81

Windows Enterprise 2015 LTSB Evaluation

130

82

Windows Enterprise 2015 LTSB N Evaluation

  • getLinuxVersionMap
    Die Funktion getLinuxVersionMap liefert als weiteren Key SubRelease. Dem Key SubRelease wird auf SLES Systemen der Patchlevelstand als Wert zugewiesen. Also bei SLES11SP4: SubRelease=4.
  • ShellBatch /showoutput
    Shows the output of the called command in a seperate window.
    Now also available at Linux.
    Now moves the main Window to top/right and the ouptup window to left/down.
  • strLoadTextfile and strLoadTextFileWithEncoding
    Reads the firs line of the given file. Now without newline chars.
  • repaired product ordering for product_sort_algorithm 1

Kapitel 15. Installationsreihenfolge / Sortieralgorithmus1

  • Der Sortieralgorithmus 1, der eine Reihenfolge für die Produkte auf der Basis der gesetzten Produktprioritäten und Produktabhängigkeit bildet (mit Vorrang für die Produktabhängigkeiten als Spezifikum) macht jetzt (wieder), was er laut Handbuch machen soll.:

Produktabhängigkeit vor Priorität (Default)

Bei diesem Algorithmus werden zunächst die Produkte anhand Ihrer Prioritäten sortiert und dann aufgrund der Produktabhängigkeiten nochmals umsortiert. Hierdurch kann natürlich ein Produkt mit sehr niedriger Priorität weit nach vorne geschoben werden weil es von einem anderen Produkt als required before benötigt wird. Auf der anderen Seite wird vermieden das es zu Installationsproblemen aufgrund nicht aufgelöster Produktabhängigkeiten kommt.
Der Algorithmus 1 sorgt dafür, das die Installationsreihenfolge konstant ist, unabhängig davon wieviele Produkte auf setup stehen. Diese Reihenfolge entspricht der Reihenfolge welche im configed angezeigt wird wenn die Produkte nach der Spalte Position sortiert werden.
Damit ist gesichert, dass bei einer mit "ExitWindows /immediateReboot" nur unterbrochenen Abarbeitung eines setup-Skripts nach dem Reboot direkt die Bearbeitung des unterbrochenen Skripts weitergeführt wird.'

In Version 4.0.6 war er durch Überlappung mehrerer Fehler komplett außer Funktion, faktisch wurde immer der Sortieralgorithmus 2 angewendet.

Achtung

Durch die Reperatur dieses länger vorhandenen Bugs ändert sich die Installationsreihenfolge im Vergleich zu der fehlerhaften Reihenfolge in 4.0.6

  • Die Produktreihenfolge, die je nach Einstellung im Server-Config mit Algorithmus 1 oder 2 berechnet ist, wird jetzt bei der Produktinstallation durch den opsi-winst (konstant) eingehalten. Damit ist gesichert, dass bei einer mit "ExitWindows /immediateReboot" nur unterbrochenen Abarbeitung eines setup-Skripts nach dem Reboot direkt die Bearbeitung des unterbrochenen Skripts weitergeführt wird.

Kapitel 16. opsi-Logviewer

  • Das von uib erstellte Tool opsi-logviewer öffnet jetzt auch Dateien, die u.a. in den Archivformaten zip oder gzip komprimiert wurden. Damit können dann Logdateien, die platzsparend als Archiv zugeschickt werden, direkt betrachtet werden. (Enthält ein Archiv mehrere Dateien, werden die Inhalte aneinandergehängt.)
  • Das Setup.Skript ist um eine Linux-Unterstützung erweitert, so dass der opsi-logviewer auch auf einem Linux-Client automatisiert installiert werden kann.
  • Die neue before-Abhängigkeit zu javavm sichert die Funktion des Startaufrufs (weil javavm die javaw.exe ins Systemverzeichnis kopiert)

Kapitel 17. opsi Support Matrix Windows Clients

Im folgenden finden Sie eine Übersicht auf welchen Windows Plattformen opsi als Client läuft.

17.1. Unterstützt als opsi-client: Windows :

(Stand 10.3.2017)

Distribution

Opsi 4.0.7

Anmerkung

Windows 10

supported.png

Windows 2016

supported.png

Windows 2012 R2

supported.png

Windows 8.1

supported.png

Windows 2012

supported.png

Windows 8

discontinued.png

Windows 2008 R2

supported.png

Windows 7

supported.png

Windows 2008

discontinued.png

Windows Vista

discontinued.png

Windows 2003

supported.png

Windows XP

supported.png

Windows 2000

discontinued.png

supported.png: Unterstützt unsupported.png: Nicht unterstützt develop.png: In Entwicklung discontinued.png: Abgekündigt

Kapitel 18. opsi clonezilla

Das Produkt ist mit aktualisierten Bibliotheken (clonezilla und drbl) versehen worden.
Daraus ergeben sich evtl. Änderungen am zu verwendenden runcommand.
So prüft clonezilla inzwischen per default immer ob das Image restoreable ist. Und dieser Vorgang benötigt viel Zeit.
Diese Prüfung nach einem Backup durchzuführen ist sicherlich sinnvoll. Soll diese Prüfung aber nicht bei jedem Restore ausgeführt werden, so empfiehlt sich der zusätzliche Parameter: --skip-check-restorable-r im Restore runcommand.

Weiterhin hat opsi-clonezilla zwei neue Properties bekommen:

  • disk_number

    • editable: True
    • description: Number (first=1) of the disk ; if string diskdevice in the runcommand it will be replaced by valid device path (eg sda)
    • values: ["1", "2"]
    • default: ["1"]
  • part_number

    • editable: True
    • description: Number (first=1) of the partition of disk_number ; if string partdevice in the runcommand it will be replaced by valid device path (eg sda1)
    • values: ["1", "2", "3", "4", "5"]
    • default: ["1"]

Diese Properties dienen dazu den Umgang mit Platten zu erleichtern, welche nicht sda sondern anders heissen (z.B. nvme0n1 bei M2 SSD). Wird im runcommand der Platzhalter diskdevice verwendet, so wird dieser durch den korrekten Devicenamen der Platte die disk_num entspricht ersetzt (disk_num=1 entspricht z.B. sda).
Wird im runcommand der Platzhalter partdevice verwendet, so wird dieser durch den korrekten Devicenamen der Partition welche part_num entspricht auf der Platte die disk_num entspricht ersetzt (disk_num=1/part_num=2 entspricht z.B. sda2).

Kapitel 19. Sonstiges

19.1. Changelogs:

19.1.1. Changelog opsi-configed

opsi-configed (4.0.7.1.3-3) STABLE; urgency=medium

  • fix linux java installation: try java 8 first

— d.oertel <d.oertel@uib.de> Wed, 27 Jul 2016 15:00:00 + 0100

opsi-configed (4.0.7.1.3-2) STABLE; urgency=medium

  • Abprüfung auch ob 32-Bit Java installiert ist

--roeder <roeder@uib.local> Thu, 30 Jun 2016 17:15:52 +0200

opsi-configed (4.0.7.1.3-1) STABLE; urgency=medium

  • fix: a unified interpretation of the expected waiting time for a progressbar

--roeder <roeder@uib.local> Fri, 24 Jun 2016 14:52:52 +0200

opsi-configed (4.0.7.1.2-1) STABLE; urgency=medium

  • more details in connection window

--Rupert Roeder <roeder@uib.local> Thu, 23 Jun 2016 15:08:20 +0200

opsi-configed (4.0.7.1.1-1) STABLE; urgency=medium

  • bugfix reload of licence statistics

--Rupert Roeder <roeder@uib.local> Thu, 23 Jun 2016 11:48:03 +0200

opsi-configed (4.0.6.7.6-1.12) TESTTING; urgency=medium

  • some more start rearrangements of threads
  • fixed "remove all licences from selected clients"

--roeder <roeder@uib.local> Fri, 20 May 2016 15:58:42 +0200

opsi-configed (4.0.6.7.5-1.11) STABLE; urgency=medium

  • some rearrangements of start threads

--Rupert Roeder <roeder@uib.local> Thu, 28 Apr 2016 15:42:30 +0200

opsi-configed (4.0.6.7.5-1.6) STABLE; urgency=medium

  • more logging

--Rupert Roeder <roeder@uib.local> Thu, 28 Apr 2016 12:16:43 +0200

opsi-configed (4.0.6.7.5-1.5) STABLE; urgency=medium

  • new compile script

--Rupert Roeder <roeder@uib.local> Fri, 22 Apr 2016 12:28:00 +0200

opsi-configed (4.0.6.7.5-1.1) STABLE; urgency=medium

  • eliminating waiting window on start

--roeder <roeder@uib.local> Thu, 21 Apr 2016 15:03:44 +0200

opsi-configed (4.0.6.7.5-1) STABLE; urgency=medium

  • fixed display of problems with restricted countage of modules usage

--roeder <roeder@uib.de> Fri, 08 Apr 2016 13:16:18 +0200

opsi-configed (4.0.7.2.1-1) EXPERIMENTAL; urgency=medium

  • activated multiselection for depotproperties page

--roeder <roeder@edge530-2> Wed, 29 Jun 2016 14:20:18 +0200

opsi-configed (4.0.7.1.3-1) STABLE; urgency=medium

  • fix: a unified interpretation of the expected waiting time for a progressbar

--roeder <roeder@uib.local> Fri, 24 Jun 2016 14:52:52 +0200

opsi-configed (4.0.7.1.2-1) STABLE; urgency=medium

  • more details in connection window

--Rupert Roeder <roeder@uib.local> Thu, 23 Jun 2016 15:08:20 +0200

opsi-configed (4.0.7.1.1-1) STABLE; urgency=medium

  • bugfix reload of licence statistics

--Rupert Roeder <roeder@uib.local> Thu, 23 Jun 2016 11:48:03 +0200

opsi-configed (4.0.6.7.6-1.12) TESTTING; urgency=medium

  • some more start rearrangements of threads
  • fixed "remove all licences from selected clients"

--roeder <roeder@uib.local> Fri, 20 May 2016 15:58:42 +0200

opsi-configed (4.0.6.7.5-1.11) STABLE; urgency=medium

  • some rearrangements of start threads

--Rupert Roeder <roeder@uib.local> Thu, 28 Apr 2016 15:42:30 +0200

opsi-configed (4.0.6.7.5-1.6) STABLE; urgency=medium

  • more logging

--Rupert Roeder <roeder@uib.local> Thu, 28 Apr 2016 12:16:43 +0200

opsi-configed (4.0.6.7.5-1.5) STABLE; urgency=medium

  • new compile script

--Rupert Roeder <roeder@uib.local> Fri, 22 Apr 2016 12:28:00 +0200

opsi-configed (4.0.6.7.5-1.1) STABLE; urgency=medium

  • eliminating waiting window on start

--roeder <roeder@uib.local> Thu, 21 Apr 2016 15:03:44 +0200

opsi-configed (4.0.6.7.5-1) STABLE; urgency=medium

  • fixed display of problems with restricted countage of modules usage

--roeder <roeder@uib.de> Fri, 08 Apr 2016 13:16:18 +0200

opsi-configed (4.0.6.7.4-1) EXPERIMENTAL; urgency=medium

  • multiselection switched on in swaudit page
  • labelling of pdf open or save dialog

--roeder <roeder@uib.de> Thu, 17 Mar 2016 13:46:02 +0100

opsi-configed (4.0.6.7.3-1) EXPERIMENTAL; urgency=medium

  • fixed lost view of filtered clients

--roeder <roeder@uib.de> Wed, 16 Mar 2016 16:23:32 +0100

opsi-configed (4.0.6.7.2-1) EXPERIMENTAL; urgency=medium

  • treeview groups can now be moved, the clients can be removed (without deleting the group)

--roeder <roeder@uib.de> Tue, 15 Mar 2016 15:12:07 +0100

opsi-configed (4.0.6.7.1-1) EXPERIMENTAL; urgency=medium

  • password property hiding

--roeder <roeder@uib.de> Wed, 09 Mar 2016 12:56:07 +0100

opsi-configed (4.0.6.7.0-1) EXPERIMENTAL; urgency=medium

  • fixed re-selection of clients after reload

--roeder <roeder@uib.de> Mon, 07 Mar 2016 12:30:43 +0100

opsi-configed (4.0.6.6.2-1) TESTING; urgency=medium

  • fixed two problems in licence management

--roeder <roeder@uib.de> Thu, 03 Mar 2016 16:23:06 +0100

opsi-configed (4.0.6.6.1-1) TESTING; urgency=medium

  • (delayed) wake on lan on several depots
  • multi-word search implemented for client page
  • Windows menu introduced
  • option to arrange all running dialogs in the foreground
  • context menu option for saving log files
  • several bug fixes

--roeder <roeder@uib.de> Mon, 22 Feb 2016 14:38:12 +0200

opsi-configed (4.0.6.3.8-1) UNRELEASED; urgency=medium

  • fixed bug that the clients base data for the search function did not change on depot change

19.1.2. Changelog opsi-client-agent

opsi-client-agent (4.0.7.3-1) stable; urgency=low

  • opsiclientd 4.0.87
  • OpsiLoginBlocker version 1.2.1.0 fixes for early unblock

— Erol Ueluekmen <e.ueluekmen@uib.de> Mon, 22 Aug 2016:22:50:00 +0200

opsi-client-agent (4.0.7.2-1) stable; urgency=low

  • opsiclientkiosk.exe 4.0.7.2: --lang Option

— Detlef Oertel <d.oertel@uib.de> Mon, 08 Aug 2016:15:00:00 +0200

opsi-client-agent (4.0.7.1-1) stable; urgency=low

  • Version freeze for windows NT5 on opsiclientd version 4.0.83
  • Integrated opsiclientkiosk.exe 4.0.6.1 ((De-)Installation via subconfig.opsiscript) (do 6.6.)
  • Integrated possible custom opsiclientkioskskin to Files_copy_custom (do 8.6.)
  • Integrated fix for new opsiclientd and win >= 8.1 copy (opsiclientd.exe as zip) (do 6.6.)
  • Backports from 4.0.6.3:
  • in sub_restore_productOnClient opsi-script 4.11.6 branch (do 5.7.)
  • in sub_restore_productOnClient opsi-script 4.11.5 branch for rename or del poc-file (do 5.7.)
  • Integrated opsiclientkiosk.exe 4.0.7.1 ((De-)Installation via subconfig.opsiscript) (do 11.7.)
  • Updated opsi-deploy-client-agent to 4.0.7.1
  • Updated opsiclientd to 4.0.86
  • based on python-opsi 4.0.7.8-1
  • old kioskmode for NT5
  • use config clientconfig.capture.switch_installed_products_to_setup to control restore mode of productOnClients.json file
  • removed set_UAC Property and code
  • opsi-winst 4.11.6.1

— Erol Ueluekmen <e.ueluekmen@uib.de> Thu, 19 May 2016 17:10:09 +0100

opsi-client-agent (4.0.6.4-1) stable; urgency=low

  • opsiclientd 4.0.86
  • bases on python 2.7
  • bases on python-opsi 4.0.6.50-1

— Erol Ueluekmen <e.ueluekmen@uib.de> Tue, 17 May 2016 17:10:09 +0100

19.1.3. Changelog opsiclientkiosk

opsiclientkiosk 4.0.7.1

  • new icons for exit,filter,reload,showall
  • new reloadbutton
  • use opsiclientd event: fireEvent_software_on_demand
  • FilterOptions:=[foCaseInsensitive]; (do 11.7.)
  • makebakfile: change from old style (name.ext.num) to new style (name_num.ext)

— detlef oertel <d.oertel@uib.de> Fri, 22 July 2016 15:00:00 +0000

opsiclientkiosk 4.0.6.2

  • connect to local opsiclientd via readconf2
  • connect to opsiserver via readconf
  • screencenter
  • translations from transifex 8.6.2016
  • fix upgrade filter
  • fix: store actionrequests on DBComboBox1Exit: ZMQueryDataSet1.Post;
  • customize Header section by opsiclientkioskskin\ png and ini
  • customize Header section by ..\custom\opsiclientkioskskin\ png and ini

— detlef oertel <d.oertel@uib.de> Mon, 06 June 2016 15:00:00 +0000

opsiclientkiosk 4.0.6.1

  • set dbmemo for description and advice fixes #2187
  • new buton All : fixes #2189
  • Actionrequest combobox in DBGrid (with setup, none and unsinstall (if availiable) fixes #2190
  • added Hints
  • german translation
  • correct logging in c:\opsi.org\opsiclientkiosk.log
  • no all groups on only one group
  • no crash at no group

— detlef oertel <d.oertel@uib.de> Mon, 23 May 2016 15:00:00 +0000

opsiclientkiosk 4.0.6.0

  • inital proof of concept an design

— d.oertel

19.1.4. Changelog opsiclientd

opsiclientd (4.0.87) stable; urgency=medium

  • verifyServerCert and verifyServerCertbyCA fix
  • fixes for proxySupport

    -- Erol Ueluekmen <e.ueluekmen@uib.de>  Mon, 22 Aug 2016 22:10:51 +0200

opsiclientd (4.0.86) stable; urgency=medium

  • opsiclientd_shutdown_starter logs the event it should fire
  • type checking now with isinstance instead of type.
  • Improved logmessages if shutdown / reboot request is detected.
  • new opsiclientdkiosk interface implemented
  • based on python-opsi 4.0.7.8-1
  • Fixed problem with WAN Installation without networkconnection

--Erol Ueluekmen <e.ueluekmen@uib.de> Mon, 11 Jun 2016 14:10:51 +0200

opsiclientd (4.0.85) testing; urgency=medium

  • Refactored opsiclientd_shutdown_starter.
  • Opsiclient Shutdown Starter now logs to C:\opsi.org\log\opsiclientd_shutdown_starter.log

--Niko Wenselowski <n.wenselowski@uib.de> Tue, 08 Sep 2015 15:03:09 +0200

opsiclientd (4.0.84) testing; urgency=medium

[ Erol Ueluekmen ]
* exclude_product_group_ids and include_product_group_ids added.
* Putting quotation marks around the action_processor_starter.exe to
  avoid unwanted behaviour.
[ Niko Wenselowski ]
* Windows 8.1: Sleeping a short time before triggering the reboot.

--Niko Wenselowski <n.wenselowski@uib.de> Tue, 08 Sep 2015 15:02:20 +0200

19.1.5. Changelog opsi-script / opsi-winst

opsi-winst/opsi-script (4.11.6.1) stable; urgency=low

  • Merge from (4.11.5.14):
  • oswebservice: assume opsiservice version=4 in retrieveJSON* to avoid access to opsidata which fails if we use local_opsidata fixes Access Violations in initial opsi-client-agent installation
  • osfunc: FuncSaveToFile / SaveToFile: logging content on Loglevel 9 ; references #1679
  • osfuncwin: fix broken Shellbatch /showoutput
  • Merge from opsi-winst/opsi-script (4.11.5.13) stable; urgency=low
  • do not try to run non existing external sub sections
  • Merge from (4.11.5.12) stable; urgency=low
  • Bugfix: osparser: doAktionen: fullfilename not initialized: causes causes double load of include or sub if searched file is not existing ; fixes #1656
  • Bugfix: osparser: Filexists*: do not check for existing file with dir/ls if trim(filename)='' fixes: https://forum.opsi.org/viewtopic.php?f=6&t=7697 (FileExists auf leere Variable gibt wahr zurück)
  • osfunc: rewrite of FindLocalIPData for linux
  • osfunclin: new: getMyIpByTarget(target): implemented as: ip route get <target>
  • osfunclin: new: getMyIpByDefaultRoute: implemented as: ip route get 255.255.255.255
  • osparser: getMyIpByTarget now also for linux
  • osfunclin: getCommandResult: Exitcode on higher (+2) loglevel
  • osfuncwin2: getPid4user: fix logging on not found
  • osfuncwin2: getPid4user: add logging on process found with wrong user
  • osfuncwin2: Impersonate2User: 5 retrys of getPid4user and explorer.exe
  • osconf,osmain: change depotdrive for linux from /mnt to /media/opsi_depot
  • osmain: new command line parameter: credentialfile for username, password and sessionid in format: username=<username> password=<password> sessionid=<sessionid> If the parameter credentialfile is used all thre parameter will be used from the file and the parameters : username, password and sessionid will be ignored
  • osmain: BuildPC: create flag files in /var/run/opsiclientd for shutdown or reboot execute reboot only if no opsiclientd in processlist
  • osparser: savetextfile: call FuncSaveToFile (merge from 4.11.5.17)
  • opsiscript.lpr / winst.lpr replace defaulttranslator by lcltranslator
  • osmain: (GUI) GetParameter: new parameter: lang <2 letter lang code> is set to lcltranslator.SetDefaultLang
  • osmain: BuildPC: termonate after exception in BuildPC: final ; references #1820
  • oswebservice: finishOpsiConf: catch exception at backend_exit ; fixes #1820
  • changes for lazarus 1.6 / FPC 3.0
  • new unit osjson
  • new json functions:
  • jsonIsValid(<jsonstr>) : boolean
  • jsonIsArray(<jsonstr>) : boolean
  • jsonIsObject(<jsonstr>) : boolean
  • jsonAsObjectHasKey(<jsonstr>,<keystr>) : boolean
  • jsonAsArrayCountElements(<jsonstr>) : intstr
  • jsonAsObjectCountElements(<jsonstr>) : intstr
  • jsonAsArrayGetElementByIndex(<jsonstr>, <indexstr>) : jsonstring
  • jsonAsObjectGetValueByKey(<jsonstr>, <keystr>) : valuestring
  • jsonAsObjectSetValueByKey(<jsonstr>, <keystr>,<valuestring>) : jsonstring
  • jsonAsObjectSetStringtypeValueByKey(<jsonstr>, <keystr>,<valuestring>) : jsonstring
  • jsonAsArrayPutObjectByIndex(<jsonstr>, <indexstr>, <objectstr>) : jsonstring
  • jsonAsArrayToStringList(<jsonstr>) : stringlist
  • jsonAsObjectGetKeyList(<jsonstr>) : stringlist
  • jsonStringListToJsonArray(<strlist>) : jsonstr
  • new function: setStringInListAtIndex(<newstring>,<list>,<indexstr>) : list
  • Port from opsi-script 4.11.5.20:
  • More logging to find bug: loginscrpits do not always can Impersonate (uib#2015121410000075):
  • osfuncwin2: Impersonate2User: change parameter / add usercontextsid
  • osfuncwin2: Impersonate2User: more logging if usercontext not found
  • osparser: doLinkFolderActions: if runLoginScripts: call Impersonate2User with usercontextsid
  • osparser: at getMSVersionMap list.add (ReleaseID= + GetRegistrystringvalue("HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" "ReleaseID",true));
  • DosBatch /showoutput:
  • osfuncwin: switch main window to left/top corner and output window to right/down corner
  • osfunclin: the same and fixes #1936
  • fix: strip newline from strLoadTextfile and strLoadTextFileWithEncoding
  • new string function md5sumFromFile(<path to file>)
  • new string function timeStampAsFloatStr (floattostrF(now,ffFixed,15,3))
  • new bool function processIsRunning(<process string>)
  • new variant of shellcall as procedure (no result)
  • new variant of shellcall with result string which have the exitcode
  • new string function encryptStringBlow(<keystring>,<datastring>)
  • new string function decryptStringBlow(<keystring>,<datastring>)
  • new String function processCall(<string>) returns exitcode from sysnative started process
  • osparser: at getLinuxVersionMap list.add (SubRelease= (patchlevel from SLES)
  • osfunclin: function getPackageLock(timeoutsec : integer; kill : boolean) : Boolean;
  • new bool function waitForPackageLock(<seconds timeout string>,<bool should we kill>) (Linux only)
  • Linux: check for free start count
  • osparser:doAktionen:getWord use WorddelimiterSet4 before FindKindOfStatement (needed for shellCall( statement)
  • osconf: Linux: reading winstversion via fileinfo.TFileVersionInfo
  • use LazFileUtils in different units (may replace fileutil ?)
  • osfunclin/osfunc: use FPCProcess.ExitCode instead of ExitStatus to get the final exitcode
  • oswebservice: productonClients_getObjects__actionrequests: use getProductOrdering
  • oswebservice: productOnClient_getobject_actualclient: use getProductOrdering
  • new unit osfuncwin3 with fuctions to windows version
  • osparser: at getMSVersionMap new key prodInfoNumber from win32 GetProductInfo
  • osparser: at getMSVersionMap new key prodInfoText from getProductInfoStrByNum from win32 GetProductInfo
  • osfuncwin3: fix GetWinSystemDirectory
  • osmain: initialization: GetDefaultLang;
  • do not delete temporary cmd files on Loglevel LLconfidential
  • Logging of productordering to LLDebug2 (8)
  • Windows: writing ReleaseId and ProductId to log file header
  • osparser: md5sumFromFile: use ExpandFileName
  • osparser: getValueFromFile / getValueFromFileBySeparator : empty string on failure
  • osencoding: internal Defaultencoding=utf8
  • oslog: Logfile now utf-8 encoded
  • oswebservice: productonClients_getObjects__actionrequests: fallback to old sorting method if exception in new method (eg. getProductOrdering not reachable)
  • new stringlist function removeFromListByMatch(<searchstring>,<list>)
  • osparser: getJsonUrlString: fix for json array as parameter
  • wispecfolder, osfunc: replace SHGetPathFromIDList by SHGetPathFromIDListW
  • osfunc: MakeShellLink: for LinkFile.Save filename in system encoding
  • osparser: takestring: to large index Message is changed from Errorr to Warning
  • new unit: osregistry: All Tuibregistry stuff moved here from osfunc.
  • utf8 - system encoding fixes in GetRegistryString , Patches,…
  • osfunc: more logging in LoadNTUserDat
  • makebakfile: change from old style (name.ext.num) to new style (name_num.ext)
  • osfunc: encoding of cmd in StartProcess_cp
  • osfuncwin: encoding of cmd and output in RunCommandAndCaptureOut

— Detlef Oertel <d.oertel@uib.de> Tue, 22 Sep 2015:15:00:00 +0200

19.1.6. Changelog windows netboot products

windows (4.0.7.1-1) stable; urgency=low

  • sku fallback will be displayed now correctly from show_drivers.py

— Erol Ueluekmen <e.ueluekmen@uib.de> Tue, 19 Jul 2016 15:00:00 +0200

19.1.7. Changelog linux netboot products

centos70

centos70_4.0.7.1-1 stable; urgency=low

  • removed property opsi_online_repository
  • Property: install_opsi-client-agent default changed to true

— Detlef Oertel <d.oertel@uib.de> Wed, 08 Jun 2016:15:00:00 +0200

debian

debian_4.0.7.1-1 stable; urgency=low

  • removing unneeded opsiclientds (different Architecture)
  • preseed: added umount/media as early command

— Mathias Radtke <m.radtke@uib.de> Tue, 05 Jul 2016 15:30:00 +0200

debian7

debian7_4.0.7.1-1 stable; urgency=low

  • upgraded initrd and kernel of installer to properly work on cachers
  • added openssl to preseed package install
  • removing unneeded opsiclientds (different Architecture)
  • preseed: added umount/media as early command
  • removed property opsi_online_repository

— Mathias Radtke <m.radtke@uib.de> Wed, 08 Jun 2016:15:00:00 +0200

debian8

debian8_4.0.7.1-1 stable; urgency=low

  • removing unneeded opsiclientds (different Architecture)
  • preseed: added umount/media as early command
  • preseed: removing broken and not available repositories when using local apche repo provided by uib
  • added local repository example
  • removed property opsi_online_repository
  • Property: install_opsi-client-agent default changed to true

— Mathias Radtke <m.radtke@uib.de> Fri, 1 Jul 2016 10:25:00 +0200

opensuse13-2

opensuse13-2_4.0.7.1-1 stable; urgency=low

  • removed property opsi_online_repository
  • Property: install_opsi-client-agent default changed to true

— Detlef Oertel <d.oertel@uib.de> Wed, 08 Jun 2016:15:00:00 +0200

opensusel42-

opensusel42_4.0.7.1-1 stable; urgency=low

  • removed property opsi_online_repository
  • Property: install_opsi-client-agent default changed to true

— Detlef Oertel <d.oertel@uib.de> Wed, 08 Jun 2016:15:00:00 +0200

sles11sp4

sles11sp4_4.0.7.1-1 stable; urgency=low

  • removed property opsi_online_repository
  • Property: install_opsi-client-agent default changed to true

— Detlef Oertel <d.oertel@uib.de> Wed, 08 Jun 2016:15:00:00 +0200

sles12

sles12_4.0.7.1-2 stable; urgency=low

  • removed hard coded kexec depot copy

— Mathias Radtke <m.radtke@uib.de> Mon, 8 Aug 2016 13:20:00 +0200

sles12_4.0.7.1-1 stable; urgency=low

  • removed property opsi_online_repository
  • Property: install_opsi-client-agent default changed to true

— Detlef Oertel <d.oertel@uib.de> Wed, 08 Jun 2016:15:00:00 +0200

sles12sp1

sles12sp1_4.0.7.1-2 stable; urgency=low

  • removed hard coded kexec depot copy

— Mathias Radtke <m.radtke@uib.de> 8 Aug 2016 13:20:00 +0200

sles12sp1_4.0.7.1-1 stable; urgency=low

  • removed property opsi_online_repository
  • Property: install_opsi-client-agent default changed to true

— Detlef Oertel <d.oertel@uib.de> Wed, 08 Jun 2016:15:00:00 +0200

redhat70

redhat70_4.0.7.1-3 stable; urgency=low

  • redhat70.cfg: removing rhel-7-server-rt-beta-rpms repository as it is (currently) broken

— Mathias Radtke <m.radtke@uib.de> Mon, 22 Aug 2016 12:00:00 +0200

redhat70_4.0.7.1-2 stable; urgency=low

  • removed hard coded kexec from depot, replaced with bootimage kexec

— Mathias Radtke <m.radtke@uib.de> Mon, 8 Aug 2016 13:20:00 +0200

redhat70_4.0.7.1-1 stable; urgency=low

  • removed property opsi_online_repository
  • Property: install_opsi-client-agent default changed to true

— Detlef Oertel <d.oertel@uib.de> Wed, 08 Jun 2016:15:00:00 +0200

Ubuntu14-04

ubuntu14-04_4.0.7.1-1 stable; urgency=low

  • removing unneeded opsiclientds (different Architecture)
  • preseed: added umount/media as early command
  • updated initrd/linux
  • removed property opsi_online_repository
  • Property: install_opsi-client-agent default changed to true

— Mathias Radtke <m.radtke@uib.de> Tue, 05 Jul 2016 15:30:00 +0200

Ubuntu16-04

ubuntu16-04_4.0.7.1-1 stable; urgency=low

  • removing unneeded opsiclientds (different Architecture)
  • preseed: added umount/media as early command
  • properties: added example for local apache repo
  • preseed: removing broken and not available repositories when using local apche repo provided by uib
  • setup.py: added install of pkg-config after addition of official repositories
  • install removes unneded and broken local repositories(only when installing from local repository)
  • added local repository example
  • removed property opsi_online_repository
  • Property: install_opsi-client-agent default changed to true

— Mathias Radtke <m.radtke@uib.de> Tue, 05 Jul 2016 15:30:00 +0200

ubuntu16-04_4.0.6-6 experimenal; urgency=low

  • opsisetuplib.py: Bypassing error when removing empty directories in /dev

— Mathias Radtke <m.radtke@uib.de> Fri, 13 Apr 2016 14:00:00 +0200

ubuntu16_04_4.0.6-5 experimental; urgency=low

  • initial derivated from Ubuntu15-04_4.0.6-4

— Mathias Radtke <m.radtke@uib.de> Wed, 04 May 2016 10:21:00 +0200

19.1.8. Changelog opsi-linux-client-agent

opsi-linux-client-agent (4.0.7.2-1) stable; urgency=medium

  • 4.0.7 stable

— d.oertel <d.oertel@uib.de> Tue, 26 Jul 2016 15:00:00 + 0100

opsi-linux-client-agent (4.0.7.1-20160704) testing; urgency=medium

  • opsiscript: * osparser: getValueFromFile / getValueFromFileBySeparator : empty string on failure
  • opsiclientd: Experimental support for Ubuntu 16.04. (nw)
  • replaced all shellBatch calls by shellInAnIcon (do)
  • added openssl to ShellInAnIcon_install_deps_debian_old
  • Updated opsi-deploy-client-agent to 4.0.7.1. (nw)

— d.oertel <d.oertel@uib.de> Tue, 07 June 2016 15:00:00 + 0100

opsi-linux-client-agent (4.0.6.3-20160502) testing; urgency=medium

  • Updated opsi-deploy-client-agent to 4.0.6.15. (nw 2.5.)
  • create encrypted startcounter (on install and opsi-script 4.11.6 and no entry) (do 10.5) fixes #1508
  • update to opsi-script 4.11.6.1 (do 11.5.)
  • Updated opsiclientd. (nw 12.5)
  • using waitForPackageLock if >= 4.11.6 (do 12.5.)
  • update opsiscriptstarter (4.0.6.3) (do 19.5)
  • retry after failed ShellInAnIcon_upgrade_debian (do 19.5)
  • in sub_opsiclientd_install: debian: no package installation while bootimage mode (do 1.6.2016)
  • PatchHosts_standard: force localhost to 127.0.0.1 (and nothing else)

— Niko Wenselowski <n.wenselowski@uib.de> Mon, 02 May 2016 15:41:36 +0200

opsi-linux-client-agent (4.0.6.3-20160408) testing; urgency=low

  • Default opsiclientd.conf: super of event_timer is now default.
  • Updated opsi-deploy-client-agent to 4.0.6.14.
  • Updated opsi-script to 4.11.5.19 (do)
  • Real opsiclientd Ubuntu 16.04.(disabled)
  • Debian Jessie: do not stop winbind but configure smb.conf ; fixes #2106
  • Fix copying *.po files

— Niko Wenselowski <n.wenselowski@uib.de> Wed, 24 Feb 2016 11:08:35 +0200

19.1.9. Changelog l-opsi-server

l-opsi-server 4.0.7.1-4; stable; urgency=low

  • redhat/centos 6 compatability (downloadonly plugin seems broken)
  • added ucs memberserver workaround

— M.Radtke <m.radtke@uib.de> Tue, 23 Jun 2016 14:00:00 +0200

l-opsi-server 4.0.7.1-3; testing; urgency=low

  • fix: dhcp stop start instead of restart, restart doesnt work sometimes
  • fix: wrong sequence of arguments at getValueFromFile
  • sles11sp4: noerror on p7zip
  • sles11sp4: noerror on failed first xinetd restart
  • sles11sp4: use ShellInAnIcon_add_adminuser_pwdutils
  • ucs41: corrected handling when not running on domaincontroller_master

— d.oertel <d.oertel@uib.de> Thu, 23 Jun 2016 15:00:00 + 0100

l-opsi-server 4.0.7.1-2 ; testing ; urgency=low

  • fix: ShellInAnIcon_install_dhcp_suse / ShellInAnIcon_install_opsi_suse

— d.oertel <d.oertel@uib.de> Wed, 22 Jun 2016 15:00:00 + 0100

l-opsi-server 4.0.7.1-1 ; testing ; urgency=low

  • new property install_and_configure_dhcp (default=false)
  • new property: gateway (for dhcp)
  • property backend now with default=file
  • property product_depot_base_url removed

— d.oertel <d.oertel@uib.de> Wed, 08 Jun 2016 15:00:00 + 0100

19.1.10. Changelog l-system-update

l-system-update 4.0.7.1-1 stable urgency=low

  • waitForPackageLock
  • new property apt_get_autoremove to remove old auto installed kernels from debian familiy systems (default=false)

— d.oertel <d.oertel@uib.de> Wed, 11 May 2016 15:00:00 + 0100

19.1.11. Changelog l-jedit

l-jedit (5.3-6) stable; urgency=low

  • setup.opsiscript: add DefVar $javaVersion$

    -- k. koepke <k.koepke@uib.de> Wed, 03 Aug 2016 10:58:45 + 0100

l-jedit (5.3-5) STABLE; urgency=medium

  • fix linux java installation: try java 8 first
  • use waitForPackageLock if possible

— d.oertel <d.oertel@uib.de> Wed, 27 Jul 2016 15:00:00 + 0100

l-jedit (5.3-4) stable; urgency=low

  • fix update-alternatives for java8 in case debian

— k. koepke <k.koepke@uib.de> Fri, 08 July 2016 11:24:27 + 0100

l-jedit 5.3-3 ; stable, ; urgency=low

  • opsi-script.xml for opsi-script 4.11.6.1

— d.oertel <d.oertel@uib.de> Fri, 24 Jun 2016 15:00:00 + 0100

19.1.12. Changelog opsi-local-image

Windows NT6

windows (4.0.7.1-1) stable; urgency=low

  • sku fallback will be displayed now correctly from show_drivers.py

— Erol Ueluekmen <e.ueluekmen@uib.de> Tue, 19 Jul 2016 15:00:00 +0200

backup

opsi-local-image-backup (4.0.7.2-2) stable; urgency=low

  • new opsisetuplib.py
  • use getPartitionDevicePath(disk.device, PartitionNumber) where needed

— detlef oertel <d.oertel@uib.de> Wed, 10 Aug 2016 15:00:00 +0200

opsi-local-image-backup (4.0.7.2-1) stable; urgency=low

  • for ext4: clonemethod = u'--dev-to-dev --restore_raw_file'

— detlef oertel <d.oertel@uib.de> Mo, 08 Aug 2016 15:00:00 +0200

opsi-local-image-backup (4.0.7.1-1) stable; urgency=low

  • link opsisetuplib.py from os-products
  • update opsisetuplib.py
  • do not load own partclone package (0.2.58) for bootimage >= 20160517

— detlef oertel <d.oertel@uib.de> Wed, 18 May 2016 15:00:00 +0200

restore

opsi-local-image-restore (4.0.7.1-1) stable; urgency=low

  • do not load own partclone package (0.2.58) for bootimage >= 20160517
  • update opsisetuplib.py

— detlef oertel <d.oertel@uib.de> Wed, 18 May 2016 15:00:00 +0200

delimage

opsi-local-image-delimage (4.0.7.1-1) stable; urgency=low

  • new opsisetuplib.py
  • use getPartitionDevicePath(disk.device, PartitionNumber) where needed

— detlef oertel <d.oertel@uib.de> Wed, 10 Aug 2016 15:00:00 +0200

capture

opsi-local-image-capture (4.0.7.1-1) stable; urgency=low

  • new opsisetuplib.py
  • use getPartitionDevicePath(disk.device, PartitionNumber) where needed

— detlef oertel <d.oertel@uib.de> Wed, 10 Aug 2016 15:00:00 +0200

prepare

opsi-local-image-prepare (4.0.7.1-1) stable; urgency=low

  • new opsisetuplib.py
  • use getPartitionDevicePath(disk.device, PartitionNumber) where needed

— detlef oertel <d.oertel@uib.de> Wed, 10 Aug 2016 15:00:00 +0200

ubuntu

ubuntu_4.0.7.1-1 stable; urgency=low

  • update predictable network interface names
  • multiple ports from ubuntu (4.0.7.1-1)

— Detlef Oertel <d.oertel@uib.de> Wed, 03 Aug 2016:15:00:00 +0200

opensuse13-2

opsi-local-image-opensuse13-2 (4.0.7.1-1) stable; urgency=low

  • new opsisetuplib.py
  • use getPartitionDevicePath(disk.device, PartitionNumber) where needed

—detlef oertel <d.oertel@uib.de> Fri, 12 Aug 2016 15:00:00 +0200

19.1.13. Changelog opsi-clonezilla

opsi-clonezilla (4.0.7.2-2) stable; urgency=low

  • more logging (free -m / ls -l on mountpoint)

— detlef oertel <d.oertel@uib.de> Mo, 22 Aug 2016 15:00:00 +0200

opsi-clonezilla (4.0.7.2-1) stable; urgency=low

  • adding drbl-2.20.11.tar.bz2 (xenial / opsi 4.0.7)
  • update to clonezilla 3.21.13
  • update perl
  • new properties: disk_number, part_number to better support non standard disks
  • mount image share before the libs are extracted

— detlef oertel <d.oertel@uib.de> Thu, 18 Aug 2016 15:00:00 +0200

opsi-clonezilla (4.0.7.1-1) stable; urgency=low

  • adding clonezilla 3.21.10 for bootimage >= 20160517 (xenial / opsi 4.0.7)

— detlef oertel <d.oertel@uib.de> Fri, 20 May 2016 15:00:00 +0200

19.1.14. Changelog python-opsi

python-opsi (4.0.7.17-1) stable; urgency=medium

  • OPSI.Util: Refactored encryptWithPublicKeyFromX509CertificatePEMFile and decryptWithPrivateKeyFromPEMFile.

    -- Niko Wenselowski <n.wenselowski@uib.de>  Thu, 18 Aug 2016 10:10:53 +0200

python-opsi (4.0.7.16-1) testing; urgency=medium

  • OPSI.System.Posix: new function isOpenSUSELeap.
  • OPSI.Util.Task.Rights: Improved support for openSUSE Leap.

    -- Niko Wenselowski <n.wenselowski@uib.de>  Mon, 15 Aug 2016 16:53:24 +0200

python-opsi (4.0.7.15-1) stable; urgency=medium

  • corrected opsi-set-rights for openSUSE

    -- Mathias Radtke <m.radtke@uib.de>  Wed, 10 Aug 2016 13:44:48 +0200

python-opsi (4.0.7.14-1) stable; urgency=medium

  • OPSI.Util.Task.Rights: Corrected path for UCS.

    -- Niko Wenselowski <n.wenselowski@uib.de>  Fri, 05 Aug 2016 15:56:55 +0200

python-opsi (4.0.7.13-1) testing; urgency=medium

  • OPSI.Util.Task.Rights: Corrected path for SLES 11.

— Niko Wenselowski <n.wenselowski@uib.de> Wed, 27 Jul 2016 17:11:57 +0200

python-opsi (4.0.7.12-1) stable; urgency=medium

  • Correct indentation in some places.
  • Use future-proof octal values.
  • Correct version in OPSI.Util.Task.Rights and OPSI.Backend.JSONRPC.

— Niko Wenselowski <n.wenselowski@uib.de> Mon, 25 Jul 2016 14:39:25 +0200

python-opsi (4.0.7.11-1) testing; urgency=medium

  • OPSI.Util.Task.Rights: Better support for different SLES versions.

— Niko Wenselowski <n.wenselowski@uib.de> Mon, 25 Jul 2016 13:13:55 +0200

python-opsi (4.0.7.10-1) testing; urgency=medium

  • OPSI.Util.Task.Rights: Do not fail if MySQL backend is configured but not yet set up.

— Niko Wenselowski <n.wenselowski@uib.de> Fri, 22 Jul 2016 11:17:24 +0200

python-opsi (4.0.7.9-1) testing; urgency=medium

  • OPSI.System.Posix: new functions: isDebian, isOpenSuse, isUbuntu, isUCS.
  • OPSI.Util.Task.Rights: Refactored module.
  • OPSI.Util.Task.Rights: setRights will try to set rights on the webserver directory as installed by the package opsi-linux-support.
  • 40_admin_tasks.conf: Bugfix for setupWhereNotInstalled

— Niko Wenselowski <n.wenselowski@uib.de> Thu, 21 Jul 2016 16:22:58 +0200

python-opsi (4.0.7.8-1) stable; urgency=low

  • OPSI.System.Windows:

    • getOpsiHotfixName supports now Windows 10
    • fixed Syncing Time function with service
  • Proxysupport for HTTP-Connections
  • Fix for setActionRequestWithDependencies
  • do not add obsolete config software-on-demand.show-details
  • ConfigDataBackend: internal refactoring in log_read and log_write

— Erol Ueluekmen <e.ueluekmen@uib.de> Tue, 19 Jul 2016 15:36:42 +0200

python-opsi (4.0.7.7-1) stable; urgency=low

  • WindowsDrivers byAudit sku fallback fixed.

— Erol Ueluekmen <e.ueluekmen@uib.de> Tue, 05 Jul 2016 15:29:36 +0200

python-opsi (4.0.7.6-1) stable; urgency=medium

  • Changed formatting in Logger to not expose parts of confidential strings under special circumstances.
  • OPSI.Util.Task.ConfigureBackend.MySQL: fixed error on hostname with dash

— Niko Wenselowski <n.wenselowski@uib.de> Mon, 04 Jul 2016 17:49:17 +0200

python-opsi (4.0.7.5-1) testing; urgency=medium

  • JSONRPC backend has received small refactorings.
  • 10_opsi.conf: Refactored setProductActionRequestWithDependencies. With this change the force parameter is deprecated and does not have any effect. It may be removed in future releases.

— Niko Wenselowski <n.wenselowski@uib.de> Thu, 30 Jun 2016 15:39:29 +0200

python-opsi (4.0.7.4-1) testing; urgency=medium

  • OPSI.Util.Task.UpdateBackend.MySQL: Also correct license key column in table SOFTWARE_CONFIG.
  • ACL: Pre-compiling patterns
  • ACL: Changed log output for easier debugging.
  • Various small improvements in OPSI.Backend.BackendManager.
  • OPSI.Util.Task.Samba: Removed oplocks from share definition. This will only affect new share configurations.
  • OPSI.System.Posix: Improved detection for predictable network interfaces.
  • Configuration of MySQL backends warns if strict mode seems to be enabled.

— Niko Wenselowski <n.wenselowski@uib.de> Fri, 24 Jun 2016 14:28:26 +0200

python-opsi (4.0.7.3-1) testing; urgency=medium

  • Repaired sort algorithm 1.

— Niko Wenselowski <n.wenselowski@uib.de> Fri, 10 Jun 2016 13:36:41 +0200

python-opsi (4.0.7.2-1) testing; urgency=medium

  • OPSI.Util.Task.UpdateBackend.MySQL: making sure that columns for license keys are 1024 characters long.
  • HostControl: If resolveHostAddress is set to True we fall back to using the specified in case of a lookup failure.
  • Various small changes.

— Niko Wenselowski <n.wenselowski@uib.de> Thu, 09 Jun 2016 15:34:59 +0200

python-opsi (4.0.7.1-1) testing; urgency=medium

  • forceObjectClass got a faster check to see if we are processing JSON.
  • OPSI.System.Posix: fixed typo: init -6 → init 6.
  • OPSI.Backend.Backend: _testFilterAndAttributes is faster if attributes and filter are missing.
  • OPSI.Backend.Backend: _objectHashMatches now avoids temporary variable.
  • Improved iteration in many parts to be more efficient.
  • OPSI.Logger: Faster lookup for output color / level name.
  • Changed some log outputs to make use of the formatting during logging.
  • Updated hwaudit.conf: Now showing the number of physical and logical cores.
  • OPSI.Util.Task.ConfigureBackend.DHCP: only retrieve and show system information once.
  • 20_legacy.conf: Refactored setGeneralConfig.

— Niko Wenselowski <n.wenselowski@uib.de> Fri, 20 May 2016 15:44:59 +0200

python-opsi (4.0.6.50-1) experimental; urgency=medium

  • OPSI.Logger.Logger now is able to do formatting in the style of str.format. To format a message use the appropriate placeholders and then supply args / kwargs as needed. Formatting will only be applied if the message will actually be logged.
  • Improved logging during HTTP Connection.

— Niko Wenselowski <n.wenselowski@uib.de> Tue, 07 Jun 2016 10:47:44 +0200

python-opsi (4.0.6.49-1) stable; urgency=medium

  • OPSI.Util.Task.Samba: removed oplocks from opsi_depot share
  • OPSI.Util.Product: Added debug output to show when tasks end.

— Niko Wenselowski <n.wenselowski@uib.de> Fri, 6 May 2016 07:32:28 +0200

python-opsi (4.0.6.48-1) stable; urgency=medium

  • OPSI.Types.forceOct avoids using a temporary variable.
  • OPSI.Util.Task.Rights.setRights: avoid processing the same path twice.
  • OPSI.Logger and OPSI.Service.JsonRpc now use the traceback module to get the tracebacks.
  • OPSI.Backend.Replicator: Show the renaming of the server as a single step for better user feedback.

— Niko Wenselowski <n.wenselowski@uib.de> Wed, 27 Apr 2016 12:35:39 +0200

python-opsi (4.0.6.47-1) stable; urgency=medium

  • Not using bare "except:" - at least catching Exception.
  • OPSI.Util.Task.Samba: notify the user that he may need to restart the Samba daemon.
  • Fix typo in error message if the filter was referencing an attribute not present at the used object type.
  • OPSI.Backend.Replicator: Check if the used backend can rename the server before trying to do so. If the check fails fall back to using an ExtendedBackend.
  • OPSI.Backend.SQL: Limit the length of inserted changelogs to be lower than 65535 to avoid problems with the limited size of columns of type TEXT.

— Niko Wenselowski <n.wenselowski@uib.de> Thu, 21 Apr 2016 13:18:16 +0200

19.1.15. Changelog opsiconfd

opsiconfd (4.0.7.4-1) stable; urgency=medium

  • Parameter passing now also works in OpenJDK / IcedTea. Refer to bug OpenJDK bug #1760 for more information.

— Niko Wenselowski <n.wenselowski@uib.de> Mon, 06 Jun 2016 14:55:34 +0200

opsiconfd (4.0.7.3-1) testing; urgency=medium

  • Reverted the changes to serve JNLP at /configed/. The change will be done from within Configed.
  • Statistics logged during shutdown / reload will now be sorted by the name of the called method.
  • Avoid that logging statistics during reload fails the service because of missing start time.
  • Overhauled the passing of parameters for JNLP to work as expected.

— Niko Wenselowski <n.wenselowski@uib.de> Fri, 03 Jun 2016 15:07:01 +0200

opsiconfd (4.0.7.2-1) testing; urgency=medium

  • The path "/configed/" is now also accessible. It serves the Java Web Start version of Configed.

— Niko Wenselowski <n.wenselowski@uib.de> Wed, 01 Jun 2016 10:09:02 +0200

opsiconfd (4.0.7.1-1) testing; urgency=medium

  • The path "/configed" now servers the Java Web Start version. Java applet is deprecated as more and more browsers disable applets by default.

— Niko Wenselowski <n.wenselowski@uib.de> Tue, 31 May 2016 13:52:57 +0200

opsiconfd (4.0.6.14-1) experimental; urgency=medium

  • Small improvements during statistics collections and display.
  • opsiconfd will log statistics at shutdown with level notice.

— Niko Wenselowski <n.wenselowski@uib.de> Fri, 01 Apr 2016 11:00:03 +0200

19.1.16. Changelog opsipxeconfd

opsipxeconfd (4.0.7.1-1) stable; urgency=medium

  • Refactored internal code for locking.

--Niko Wenselowski <n.wenselowski@uib.de> Thu, 19 May 2016 12:39:40 +0200

19.1.17. Changelog opsi-utils

opsi-utils (4.0.7.5-1) stable; urgency=medium

  • commended exclude on standard uib repository. Windows products will be updated as default

    -- Mathias Radtke <m.radtke@uib.de>  Tue, 02 Aug 2016 12:34:49 +0200

opsi-utils (4.0.7.4-1) stable; urgency=medium

  • opsi-product-updater.conf: Added additional repositories for Linux and opsi-local-image products.
  • opsi-admin: When run without loglevel set do not hide the error message if something fails.

— Niko Wenselowski <n.wenselowski@uib.de> Thu, 28 Jul 2016 16:26:30 +0200

opsi-utils (4.0.7.3-1) stable; urgency=medium

  • opsi-product-updater: Various small refactorings.

— Niko Wenselowski <n.wenselowski@uib.de> Mon, 11 Jul 2016 12:46:24 +0200

opsi-utils (4.0.7.2-1) testing; urgency=medium

  • opsi-newprod: Delete directory if things fail during the creation.
  • opsi-newprod: Improved texts for depedency creation. Not suggesting currently not handled cases anymore.
  • opsi-newprod: Various internal refactorings.

— Niko Wenselowski <n.wenselowski@uib.de> Fri, 24 Jun 2016 15:05:09 +0200

opsi-utils (4.0.7.1-1) testing; urgency=medium

  • opsi-convert: If you are logging into a file the loglevel will be DEBUG.
  • opsi-product-updater: The notification mail will now have the DATE field in the header. The field is formatted as specified in RFC 5322.
  • opsi-package-manager: Setting -v now sets an implicit -q to show the output. If using -p ask no -q will be set to be able to still select the wanted properties.

--Niko Wenselowski <n.wenselowski@uib.de> Mon, 23 May 2016 14:31:10 +0200

opsi-utils (4.0.6.14-1) testing; urgency=medium

  • opsi-makeproductfile: Avoid reference to undefined incremental.

--Niko Wenselowski <n.wenselowski@uib.de> Fri, 29 Apr 2016 12:21:49 +0200

opsi-utils (4.0.6.13-1) testing; urgency=medium

  • opsi-makeproductfile: now using argparse internally
  • opsi-admin got received a welcome message.
  • Fixed typo in German translation.
  • opsi-convert: show custom application name if used against webinterface of another server to be able to easily spot the corresponding requests.
  • opsi-product-updater: Attempts to close open connections now more reliable.
  • opsi-makeproductfile: use argparse instead of getopt.
  • opsi-product-updater: running with -p <productId> now implies -i.

--Niko Wenselowski <n.wenselowski@uib.de> Thu, 28 Apr 2016 12:29:16 +0200

opsi-utils (4.0.6.12-1) experimental; urgency=medium

  • opsi-package-manager: return error when trying to remove non installed package
  • opsi-package-manager: logs into package.log with LogLevel 4
  • Added logrotate config for /var/log/opsi/opsi-package-manager.log

--Mathias Radtke <m.radtke@uib.de> Tue, 12 Apr 2016 15:56:31 +0200

opsi-utils (4.0.6.11-1) experimental; urgency=medium

  • opsi-backup: Warn during restore if no backends are given.
  • Various small changes for easier maintenance.
  • opsi-package-manager: only query for depot information if required.

--Niko Wenselowski <n.wenselowski@uib.de> Mon, 04 Apr 2016 17:00:33 +0200

19.1.18. Changelog opsi-linux-bootimage

opsi-linux-bootimage (20160706-1) stable; urgency=medium

  • updated python-opsi to 4.0.7.3-1 to provide proper sku fallback

    -- Mathias Radtke <m.radtke@uib.de>  Tue, 02 Aug 2016 14:50:54 +0200

opsi-linux-bootimage (20160623-1) experimental; urgency=medium

  • updated python opsi to 4.0.7.1-3
  • getEthenetDevices() searches for eno pattern

— Mathias Radtke <m.radtke@uib.de> Thu, 23 Jun 2016 15:37:26 +0200

opsi-linux-bootimage (20160608-1) experimental; urgency=medium

  • added mei kernel driver
  • added hd audio kernel driver

— Mathias Radtke <m.radtke@uib.de> Wed, 08 Jun 2016 08:15:35 +0200

opsi-linux-bootimage (20160524-1) UNRELEASED; urgency=medium

  • Kernel 4.4.11
  • included package fatresize

— Mathias Radtke <m.radtke@uib.de> Tue, 24 May 2016 09:45:10 +0200

opsi-linux-bootimage (20160517-1) UNRELEASED; urgency=medium

  • fixed prediction of network interfaces in init script

— Mathias Radtke <m.radtke@uib.de> Tue, 17 May 2016 09:45:10 +0200

opsi-linux-bootimage (20160513-1) experimental; urgency=medium

  • initial xenial based release
  • derived from opsi-linux-bootimage_20160322-1

— Mathias Radtke <m.radtke@uib.de> Fri, 13 May 2016 15:31:34 +0200

opsi-atftp (0.7.dfsg-6) testing; ency=medium

  • included -std=gnu89 in CFLAGS for GCC5 compatability on Ubuntu 15.10 and 16.04

    -- Mathias Radtke <m.radtke@uib.de>  Fri, 22 Apr 2016 03:53:56 +0200

19.1.19. Changelog opsi-linux-support

opsi-linux-support (4.0.7-5) stable; urgency=medium

  • Better out-of-the-box experience for UCS.
  • SUSE: do not alter default options.

    -- Niko Wenselowski <n.wenselowski@uib.de>  Fri, 05 Aug 2016 15:46:46 +0200

opsi-linux-support (4.0.7-4) testing; urgency=medium

  • Refactored RPM postinst.

    -- Niko Wenselowski <n.wenselowski@uib.de>  Thu, 28 Jul 2016 17:13:41 +0200

opsi-linux-support (4.0.7-3) testing; urgency=medium

  • SLES11 should now run out of the box.
  • Repaired support for CentOS / RHEL 7.
  • Fixed accidently broken support for CentOS / RHEL 6.

    -- Niko Wenselowski <n.wenselowski@uib.de>  Wed, 27 Jul 2016 16:56:50 +0200

opsi-linux-support (4.0.7-2) testing; urgency=medium

  • Better support for CentOS / RHEL 6.

    -- Niko Wenselowski <n.wenselowski@uib.de>  Mon, 25 Jul 2016 16:26:05 +0200

opsi-linux-support (4.0.7-1) experimental; urgency=medium

  • Better support for SLES 11.

    -- Niko Wenselowski <n.wenselowski@uib.de>  Mon, 25 Jul 2016 12:07:11 +0200

opsi-linux-support (1.0-10) testing; urgency=medium

  • Re-release for rebuild.

    -- Niko Wenselowski <n.wenselowski@uib.de>  Thu, 21 Jul 2016 17:41:40 +0200

opsi-linux-support (1.0-9) experimental; urgency=medium

[ Niko Wenselowski ]
* RPM: Summary does not end with a dot anymore.
  [ Mathias Radtke ]
  * Added new build dependency: apache2/hhtpd
  * creating local apache repo opsi dir /var/www/html/opsi/ for debian8
and ubuntu16-04 local repository

— Mathias Radtke <m.radtke@uib.de> Thu, 30 Jun 2016 11:50:15 +0200

19.1.20. Changelog jedit

jedit_5.3.0-1 stable; urgency=low

  • update to 5.3
  • opsi-script.xml for opsi-script 4.11.6.1

— d.oertel <d.oertel@uib.de> Fri, 24 Jun 2016 15:00:00 + 0100

19.1.21. Changelog opsi-logviewer

opsi-logviewer (2.2-2) STABLE; urgency=medium

  • fix linux java installation: try java 8 first
  • use waitForPackageLock if possible

— d.oertel <d.oertel@uib.de> Wed, 27 Jul 2016 15:00:00 + 0100

opsi-logviewer (2.2-1) testing; urgency=low

  • fallback for opening file with unknown extension if it is not recognized as an archive

--r.roeder <r.roeder@uib.de> Thu, 21 Jul 12:00:00 + 0100

opsi-logviewer (2.1-1) testing; urgency=low

  • added Linux support

--d.oertel <d.oertel@uib.de> Wed, 23 Dec 2015 15:00:00 + 0100

opsi-logviewer (2.0-1) testing; urgency=lo

  • added support for archive formats

19.1.22. Changelog opsi-wim-capture

opsi-wim-capture (4.0.7.1-1) stable; urgency=low

  • opsi-script 4.11.6 integrated
  • upgrade to wimlib 1.9.1
  • requiredWinstVersion >= "4.11.3.7"
  • chkdsk call with /v ; exit code description as comment

— detlef oertel <d.oertel@uib.de> Wed, 18 May 2016 15:00:00 +0000

19.1.23. Changelog opsi-wim-info

opsi-wim-info (4.0.7.1-1) stable; urgency=low

  • derivated from opsi-wim-capture (4.0.7.1-1)

— detlef oertel <d.oertel@uib.de> Thu, 30 May 2016 15:00:00 +0000

19.1.24. Changelog opsi-nagios-plugins

opsi-nagios-plugins (4.0.7.2-1) testing; urgency=medium

  • Using the new-style base64 Python interface to avoid breaking with combinations of username and password that exceed 72 characters and lead to newlines in the base64-encoded authentication header. This is in response to CVE-2016-5699 / Python bug 22928 as these patched Python versions may lead to breaks on some systems.

— Niko Wenselowski <n.wenselowski@uib.de> Tue, 26 Jul 2016 15:40:04 +0200

opsi-nagios-plugins (4.0.7.1-1) testing; urgency=medium

  • Internal refactorings.
  • Accepting self-signed certificates without showing a warning.

— Niko Wenselowski <n.wenselowski@uib.de> Tue, 26 Jul 2016 14:27:37 +0200