opsi-Server mit mehreren Depots (frei)

Die Unterstützung von mehreren Depots in opsi hat folgende Merkmale:

  • Zentrale Speicherung und Administration der Konfigurationsdaten

  • Dezentrale Bereitstellung der Softwaredepots - automatisierte Verteilung der installierten Softwarepakete auf die dezentralen Depots

  • Verwaltung der Clients standortübergreifend in einem Administrationsinterface

Zur Umsetzung wurde folgendes Konzept verwirklicht:

  • Die Konfigurationsdaten für alle Clients werden auf einem opsi-Server (opsi-Configserver) gehalten.

  • Alle Clients verbinden sich über den opsi-Webservice mit dem opsi-Configserver und erhalten von dort ihre Konfigurationsinformationen.

  • Die Softwaredepots liegen auf dezentralen 'opsi-Depotservern' und werden dem zentralen opsi-Configserver als Netzwerkmounts zur Installation von Paketen zur Verfügung gestellt.

  • Die Funktionalität zum Start von Bootimages mittels PXE wird ebenfalls auf dem dezentralen opsi-Depotserver installiert. Diese wird aber zentral gesteuert.

  • opsi-package-manager: Programm zur Unterstützung von mehreren Depotshares beim Installieren und Deinstallieren von opsi-Paketen.

  • Transport der opsi-Pakete via webdav auf die opsi-Depotserver und Installation durch den opsiconfd via webservice-call

  • Unterstützung von mehreren Depotshares im Administrationswerkzeug opsi-configed.

  • Automatisierte Erkennung von Inkonsistenzen zwischen dem Master-Depotshare und anderen Depotshares anhand der hinterlegten Produkt-Controlfiles.

  • Ermöglichung der Selektion einzelner oder mehrerer Depotshares zur Auswahl der opsi-Clients im opsi-configed.

  • Unterbinden der gemeinsamen Bearbeitung von opsi-Clients, die an Depotshares hängen und zueinander inkonsistent sind.

  • Zuordnung der opsi-Clients zu Depotshares über den opsi-configed, Umzug von Clients.

  • Konfigurations- und Verbindungsdaten der einzelnen Depotshares über den opsi-configed editierbar machen.

Die folgenden Schemata geben einen Überblick über die Kommunikation zwischen den Komponenten bei einer Situation mit einem Standort und der Situation mit einem opsi-Depotserver.

opsi-manual-multidepot-concept-single
Abbildung 1. Schema: Kommunikation zwischen opsi-Client und opsi-server (ein Standort)
opsi-manual-multidepot-concept-multi
Abbildung 2. Schema: Kommunikation zwischen opsi-Client und opsi-servern (mehrere Standorte)

Erstellung und Konfiguration eines Depot-Servers

Zur Erstellung eines externen 'opsi-Depotservers' wird zunächst ein normaler 'opsi-Server' aufgesetzt. Dann wird auf diesem neuen 'opsi-Server' der Befehl opsiconfd setup --register-depot mit root Rechten ausgeführt, um ihn zum externen 'opsi-Depotserver' zu konfigurieren. Da hierbei nicht nur der 'opsi-Depotserver' konfiguriert wird, sondern dieser auch noch per Webservice dem zentralen 'opsi-Configserver' bekannt gemacht wird, müssen Username und Password eines Mitgliedes der Gruppe 'opsiadmin' eingegeben werden.

Unter Univention Corporate Server findet die Registrierung der opsi-Depotserver automatisch statt. Hierbei wird der erste Server mit einer opsi-Installation als opsi-Configserver verwendet und alle weiteren in einer UCS-Domäne installierten Server werden dort als opsi-Depotserver registriert.

Beispiel:
'opsidepot.your.domain' wird als opsi-Depotserver für den opsi-Configserver 'opsiserver.your.domain' eingerichtet:

root@opsidepot.your.domain:~# opsiconfd --register-depot

Nun erscheint die Maske zu dem opsi-Configserver, an dem sich dieser Server als opsi-Depotserver anmelden soll. Diese Anmeldung muss mit einem User autorisiert werden, welcher auf dem opsi-Configserver Mitglied in der Gruppe 'opsiadmin' ist.

Es werden einige Dinge, wie der Configserver, der Benutzername und das Passwort zur Authentifizierung und eine Beschreibung des Depots angefragt. Die Ausgabe sieht wie folgt aus:

root@opsidepot:~$ opsiconfd setup --register-depot
Do you want to register this server as a depotserver? [y/n]: y
Enter opsi server address or service url (opsiserver.your.domain):
Enter username for service connection: adminuser
Enter password for 'adminuser':
Connecting to service 'https://opsiserver.your.domain:4447'
Connected to service as 'adminuser'
Enter ID of the depot (opsidepot.your.domain):
Enter a description for the depot (opsidepot): opsidepot
Registering depot
Depot succesfully registered

Es ist in der Regel nötig, die Konfigurationsdateien in /etc/opsi/package-updater.repos.d/ auf dem neuen Depot zu überprüfen.

Sofern der neue Depotserver sich lediglich opsi-Pakete vom zentralen Server holen soll, sollte nur das Repository in /etc/opsi/package-updater.repos.d/opsi-server.repo aktiv bleiben. Eine mögliche Konfiguration kann wie folgt aussehen:

[repository_opsi_server]
active = true
opsiDepotId = opsiserver.your.domain
autoInstall = true
autoUpdate = true
autoSetup = false
; Inherit ProductProperty defaults from master repository
inheritProductProperties = false

Nicht-interaktive Registrierung eines opsi-Depotserver

Es ist möglich die Registrierung eines opsi-Depotserver ohne Interaktion durchzuführen. Dabei müssen die Daten zur Verbindung an den opsi-Configserver als JSON-Objekt mitsamt dem Parameter --unattended mitgegeben werden.

opsiconfd setup --register-depot --unattended '{"configserver": "https://opsi.acme.corp:4447", "username": "some-opsi-admin", "password": "secret", "depot_id": "depot1.acme.corp", "description": "Depot 1"}'

Paketmanagement auf mehreren Depots

Zur Verwaltung der Pakete auf mehreren 'opsi-Depotserver' kennt der opsi-package-manager die Optionen -d bzw. --depots mit denen die 'opsi-Depotserver' angegeben werden können auf denen ein Paket installiert bzw. deinstalliert werden soll. Mit dem Schlüsselwort 'ALL' kann auf alle bekannten Depots verwiesen werden. Bei einer Installation mit der Option -d wird das Paket zunächst in das Verzeichnis /var/lib/opsi/repository des 'opsi-Depotserver' hochgeladen und dann von dort aus installiert.

Wird -d nicht angegeben, so wird nur das lokale Depot behandelt und das Paket ohne upload nach /var/lib/opsi/repository installiert.

Beispiel:
Installiere das Paket softprod_1.0-5.opsi auf allen Depots:

opsi-package-manager -d ALL -i softprod_1.0-5.opsi

Um die Differenzen zwischen Depots angezeigt zu bekommen wird die Option -D (bzw. --differences) verwendet.

Beispiel:
Unterschiede zwischen den bekannten Depots bezüglich des Produktes mshotfix

opsi-package-manager -D -d ALL mshotfix
mshotfix
    vmix12.uib.local :  200804-1
    vmix13.uib.local :  200804-1
    bonifax.uib.local:  200805-2