opsi-server mit mehreren Depots (frei)
Konzept
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 (Konfigurations-Server) gehalten.
-
Alle Clients verbinden sich über den opsi-Webservice mit dem Konfigurations-Server und erhalten von dort ihre Konfigurationsinformationen.
-
Die Softwaredepots liegen auf dezentralen 'opsi-Depotservern' und werden dem zentralen Konfigurations-Server 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.
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 opsi-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:
'svmdepotde.svm.local' wird als opsi-Depotserver für den opsi-configserver 'sepiella.svm.local' eingerichtet:
root@svmdepotde.svm.local:~# opsi-setup --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.
Nun erscheint die Maske der Depotserver Settings. Im Normalfall müssen Sie hier nichts ändern. Insbesondere bleibt der neue opsi-Depotserver in der Regel ein "Master-Depot", damit ihm anschließend 'opsi-clients' zugeordnet werden können.
Nach dieser Eingabe der Daten erfolgt die eigentliche Konfiguration:
[5] [Apr 06 12:32:19] Getting current system config (opsi-setup|70)
[5] [Apr 06 12:32:19] System information: (opsi-setup|117)
[5] [Apr 06 12:32:19] distributor : Debian (opsi-setup|118)
[5] [Apr 06 12:32:19] distribution : Debian GNU/Linux 5.0.8 (lenny) (opsi-setup|119)
[5] [Apr 06 12:32:19] ip address : 172.16.166.33 (opsi-setup|120)
[5] [Apr 06 12:32:19] netmask : 255.255.255.0 (opsi-setup|121)
[5] [Apr 06 12:32:19] subnet : 172.16.166.0 (opsi-setup|122)
[5] [Apr 06 12:32:19] broadcast : 172.16.166.255 (opsi-setup|123)
[5] [Apr 06 12:32:19] fqdn : svmdepotde.svm.local (opsi-setup|124)
[5] [Apr 06 12:32:19] hostname : svmdepotde (opsi-setup|125)
[5] [Apr 06 12:32:19] domain : svm.local (opsi-setup|126)
[5] [Apr 06 12:32:19] win domain : OPSI (opsi-setup|127)
[5] [Apr 06 12:46:03] Creating depot 'svmdepotde.svm.local' (opsi-setup|2342)
[5] [Apr 06 12:46:03] Getting depot 'svmdepotde.svm.local' (opsi-setup|2345)
[5] [Apr 06 12:46:03] Testing connection to config server as user 'svmdepotde.svm.local' (opsi-setup|2354)
[5] [Apr 06 12:46:04] Successfully connected to config server as user 'svmdepotde.svm.local' (opsi-setup|2359)
[5] [Apr 06 12:46:04] Updating backend config '/etc/opsi/backends/jsonrpc.conf' (opsi-setup|2361)
[5] [Apr 06 12:46:04] Backend config '/etc/opsi/backends/jsonrpc.conf' updated (opsi-setup|2373)
[5] [Apr 06 12:46:04] Updating dispatch config '/etc/opsi/backendManager/dispatch.conf' (opsi-setup|2375)
[5] [Apr 06 12:46:04] Dispatch config '/etc/opsi/backendManager/dispatch.conf' updated (opsi-setup|2388)
[5] [Apr 06 12:46:04] Setting rights (opsi-setup|410)
[5] [Apr 06 12:46:06] Setting rights on directory '/tftpboot/linux' (opsi-setup|482)
[5] [Apr 06 12:46:06] Setting rights on directory '/home/opsiproducts' (opsi-setup|482)
[5] [Apr 06 12:46:06] Setting rights on directory '/var/log/opsi' (opsi-setup|482)
[5] [Apr 06 12:46:06] Setting rights on directory '/etc/opsi' (opsi-setup|482)
[5] [Apr 06 12:46:06] Setting rights on directory '/var/lib/opsi' (opsi-setup|482)
[5] [Apr 06 12:46:06] Setting rights on directory '/var/lib/opsi/depot' (opsi-setup|482)
[5] [Apr 06 12:46:27] Restarting services (opsi-setup|2392)
[5] [Apr 06 12:46:35] Configuring client user pcpatch (opsi-setup|347)
[5] [Apr 06 12:46:35] Creating RSA private key for user pcpatch in '/var/lib/opsi/.ssh/id_rsa' (opsi-setup|361)
[5] [Apr 06 12:46:35] Setting rights (opsi-setup|410)
[5] [Apr 06 12:46:38] Setting rights on directory '/var/lib/opsi/.ssh' (opsi-setup|482)
Es ist in der Regel nötig, die Konfigurationsdatein 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 = bonifax.uib.local autoInstall = true autoUpdate = true autoSetup = false ; Inherit ProductProperty defaults from master repository inheritProductProperties = false
Non-interaktive Registrierung eines opsi-Depotserver
Es ist seit 'opsi-depotserver' 4.0.7.2 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.
opsi-setup --register-depot --unattended '{"address": "config.server.address:4447/rpc", "username": "adminuserinopsi", "password": "pwoftheuser"}'
Der opsi-Depotserver wird mit Standardwerten erstellt.
Es gibt die Möglichkeit, benutzerdefinierte Attribute für den erstellten opsi-Depotserver festzulegen.
Dazu muss dem JSON-Objekt der Schlüssel depot
und als Werte ein weiteres
JSON-Objekt mit den gewünschten Werten mitgegeben werden.
Im folgenden Beispiel wird eine abweichende Beschreibung gesetzt:
opsi-setup --register-depot --unattended '{"address": "config.server.address:4447/rpc", "username": "adminuserinopsi", "password": "pwoftheuser", "depot": {"description": "Added with unattended registration."}}'
Paketmanagement auf mehreren Depots
siehe auch:
opsi-package-manager
opsi-package-updater
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