opsi Best Practice : Paketierung u.a.

uib gmbh

opsi Best Practice : Paketierung u.a.

opsi_logo.png

Agenda

Paketierung: Probleme

Was macht Paketierung schwierig und teuer ?

Paketierung: Lösungsansätze 1

Wie können wir Paketierung einfacher und günstiger machen ?

Paketierung: Lösungsansätze 2

Wie können wir Paketierung einfacher und günstiger machen ?

Andere Ansätze:

Paketierung: Austausch

Existierende Plattformen:

Paket Austausch: Probleme

Folgendes sind die zentralen Probleme beim Austausch:

Paket Austausch: Standards

Wir haben die Paketierungs Standards von uib und LMZ mal zusammen gelegt und bei verschiedenen Gelegenheiten diskutiert.

Herausgekommen ist:

Paket Austausch: Juristische Probleme 1

Die juristischen Probleme beim öffentlichen Anbieten von full packages sind:

Paket Austausch: Juristische Probleme 2

Mögliche Lösungen

Paketierung: Automatisierung

Hier gibt es unterschiedliche Ansätze und Schwerpunkte:

Paketierung: Automatisierung Erstellung 1

Ansätze bei der Erstellung: opsi-setup-detector

Features:

Paketierung: Automatisierung Erstellung 2

opsi-setup-detector

Probleme:

Paketierung: Automatisierung Erstellung 2

opsi-setup-detector

Feedback

Paketierung: Automatisierung Wartung 1

Automatische Pflege: Beispiel Geos One

Beispiel code Beispiel config

Paketierung: Automatisierung Wartung 2

Automatische Pflege: Voll Modularisiert

Beispiel code Beispiel config

Paketierung: Automatisierung Qualitätskontrolle 1

Was kann automatisch geprüft werden ?

Installation

Paketierung: Automatisierung Qualitätskontrolle 2

Was kann automatisch geprüft werden ?

Deinstallation

Paketierung: Automatisierung Qualitätskontrolle

Was ist das Ziel auf das wir zuarbeiten:

Paketierung: Automatisierung Zwischenergebnis

defined functions spielen eine zentrale Rolle bei der Automatisierung

Paketierung: Community opsiscript library

Wir wollen eine Community gepflegte opsi-sript functions library

Installation (Nightly)

Ziel: Die Wartung der Rechner per opsi soll den Anwender möglichst wenig stören.
Soweit möglich sollte sie ausserhalb der Arbeitszeiten stattfinden.
Komponenten:

working_window 1

Ein working_window lässt die Ausführung eines Events nur in enem bestimmten Zeitrahmen zu.

Aus dem Handbuch:

Für alle Events kann ein sogenanntes working_window konfiguriert werden.
Dieses begrenzt die Funktion eines Events auf einen Zeitraum innerhalb einer konfigurierbaren Start- und Endzeit.
Um das working_window zu verwenden muss der Konfiguration eines Events der Key working_window hinzugefügt werden.
Falls dieser Key nicht existiert, oder keinen, oder einen ungültigen Wert hat,
so gilt das working_window als leer und es gibt keine zeitliche Beschränkung für das Event.

Anmerkung:
Startzeit und Endzeit müssen im Format hh:mm angegeben werden und sind durch einen Bindestrich voneinander getrennt.
Leerzeichen zwischen Start und Endzeit sind nicht erlaubt!

working_window 2

Ein working_window kann in allen events angelegt werden. Die Konfiguration des working_window erfolgt über das Hinzufügen des Hostparameter working_window für das gewünschte Event.
Das kann entweder über den opsi-configed, oder über das Tool opsi-admin auf dem opsi-configserver erfolgen.

Die folgenden Beispiele zeigen wie ein working_window für das Event event_gui_startup per opsi-admin konfiguriert werden kann.
Siehe Kapitel „Konfiguration über den Webservice (Hostparameter)“ für das Hinzufügen von Hostparameter per opsi-configed.

working_window 3

Beispiel 1: Globales Erstellen eines leeren working_window für das Event event_gui_startup.
Die zeitliche Einschränkung erfolgt clientspezifisch (siehe Beispiel 3).

opsi-admin -d method config_createUnicode opsiclientd.event_gui_startup.working_window

Beispiel 2: Globales Erstellen eines working_window für die Zeit
zwischen 20:00 Uhr und 07:00 Uhr für das Event event_gui_startup.

opsi-admin -d method config_createUnicode opsiclientd.event_gui_startup.working_window "gui_startup.working_window" "20:00-07:00"

working_window 4

Beispiel 3: Clientspezifisches Einstellen des working_window für die Zeit
zwischen 07:00 Uhr und 19:00 Uhr für das Event event_gui_startup.

opsi-admin -d method configState_create opsiclientd.event_gui_startup.working_window "client.domain.de" "07:00-19:00"

Ist die Startzeit größer ist als die Endzeit gilt das working_window über den nächtlichen Tageswechsel (23:59-0:00).
Beispiel am Tag (Startzeit < Endzeit): working_window=07:00-19:00
Beispiel in der Nacht (Startzeit > Endzeit): working_window=20:00-07:00

working_window 4

Für das Beispiel "working_window=20:00-07:00" würde das Log des opsiclientd beispielsweise so aussehen:

[5] [<timestamp>] [ event processing gui_startup] We have now: 2019-11-05 01:02:13.993000
[5] [<timestamp>] [ event processing gui_startup] Working Window configuration starttime: 2019-11-04 20:00:00 endtime:
2019-11-05 07:00:00 systemtime now: 2019-11-05 01:02:13.993000
[5] [<timestamp>] [ event processing gui_startup] We are in the configured working window

opsi-auto-update 1

http://download.uib.de/opsi4.1/misc/time-driven-maintenance-tools/opsi-auto-update_4.1.0.0-3.opsi

opsi-auto-update ist ein Produkt um die Pflege der Clents zu vereinfachen.

Im Kern ist es die Aufgabe des Produktes dafür zu sorgen die installierten Produkte aktuell zu halten.
Das Produkt setzt alle installierten Produkte
deren Version nicht identisch mit der auf dem Server ist
für den Client auf setup.

Properies zur Behandlung von Ausnahmen:

opsi-auto-update 2

Properies zur Behandlung von Ergänzungen:

opsi-auto-update 3

Secial Properies für local-image / vhd-reset:

cronjob

wake_clients_for_setup.py

http://download.uib.de/opsi4.1/misc/time-driven-maintenance-tools/wake_clients_for_setup.py

Wählt eine Gruppe con Clients aus …

und macht diesen Clients etwas …

Danke

Vielen Dank für die Aufmerksamkeit

Fragen ?

/

#