Konfigurieren des opsi-Servers

In diesem Kapitel wird der installierte opsi-Server konfiguriert.

Proxy-Eintrag in apt-Konfiguration

Sofern für Ihren Internet-Zugang erforderlich, passen Sie die Datei /etc/apt/apt.conf an Ihre Netzwerkgegebenheiten an (richtigen Proxy eintragen oder Zeile auskommentieren / löschen). Eine Datei können Sie editieren z. B. mithilfe des Programms „midnight commander“:

mcedit /etc/apt/apt.conf

Aktualisierung des opsi-Servers

Bringen Sie den opsi-Server auf den letzten Stand, in dem Sie nacheinander in einem Terminalfenster die folgenden Kommandos aufrufen:

apt update
apt upgrade
Sollte beim Update nachgefragt werden, ob die smb.conf überschrieben werden soll, muss man dies bestätigen. Sollte die smb.conf vorher schon geändert worden sein, sollte man den default beibehalten und später die Dateien miteinander abgleichen. Sollte diese Nachfrage schon mit Nein beantwortet worden sein, kann man dies später auf dem opsi-Server durch ausführen von opsi-setup --auto-configure-samba nachholen.

Backend-Konfiguration

Opsi unterstützt zur Datenhaltung unterschiedliche Backends.

Im Wesentlichen sind dies:

  • file - Datenhaltung in Dateien

  • mysql - Datenhaltung in einer MySQL-Datenbank

Daneben gibt es noch für spezielle Zwecke die Backends:

  • opsipxeconfd - der Dienst für den Netzwerkboot mit opsi

  • dhcpd - zur Kommunikation mit dem dhcp-Server auf dem opsi-Server

  • jsonrpc - zur Weiterleitung aller Anfragen an einen anderen Server

Standardmäßig wird das MySQL-Backend für die Inventarisierung verwendet. Die Verwendung des File-Backends für Inventarisierungs-Daten ist möglich, aber deutlich langsamer und deshalb nicht empfohlen.

Die Verwendung des MySQL-Backend für Inventariserungsdaten ist kostenlos.
Mehr Informationen zur Freischaltung finden Sie im opsi-Handbuch.
Einige Distributionen verwenden MariaDB anstatt MySQL.
Das mysql-Backend funktioniert auch mit MariaDB.

Nachfolgend wird das MySQL-Backend zur Verwendung eingerichtet. Es wird davon ausgegangen, dass ein MySQL-Server eingerichtet wurde und die Zugangsdaten eines Datenbank-Administrators bekannt sind. Gezielte Informationen zu Installation und Einrichtung entnehmen Sie bitte den Handbüchern Ihrer Distribution.

Für die initiale Konfiguration des MySQL-Backends nutzen Sie den Befehl:

opsi-setup --configure-mysql

Der Befehl wird nach den Zugangsdaten zum Datenbanksystem fragen, um eine Datenbank und einen Benutzer mit entsprechenden Berechtigungen für diese Datenbank für opsi anzulegen.

Eine Beispiel-Sitzung:

opsi-setup --configure-mysql: Eingabemaske
Abbildung 1. opsi-setup --configure-mysql: Eingabemaske
opsi-setup --configure-mysql: Ausgabe
Abbildung 2. opsi-setup --configure-mysql: Ausgabe

Bei den Abfragen können außer beim 'Database Admin Password' alle Vorgaben mit Enter bestätigt werden. Das 'Database Admin Password' ist auf der opsi-VM linux123 ansonsten das, was Sie bei der Installation des mysql-servers vergeben haben.

Unterschiedliche Daten können in unterschiedlichen Backends gehalten werden. Über bestimmte Vorgänge müssen mehrere Backends informiert werden. Hierzu werden die opsi-Methoden den Backends zugeordnet. Dies geschieht in der Datei /etc/opsi/backendManager/dispatch.conf.

Hier ein Beispiel:

# = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
# =      backend dispatch configuration                                     =
# = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
#
# This file configures which methods are dispatched to which backends.
# Entries has to follow the form:
# <regular expression to match method name(s)> : <comma separated list of backend name(s)>
#
# Backend names have to match a backend configuration
# file basename <backend name>.conf beneath /etc/opsi/backends.
# For every method executed on backend dispatcher
# the first matching regular expression will be decisive.

# Recommended standard configuration (dhcpd not at the opsi server)
#    file as main backend, mysql as hw/sw invent
#     and license management backend and opsipxeconfd backend:
backend_.*         : file, mysql, opsipxeconfd
host_.*            : file, opsipxeconfd
productOnClient_.* : file, opsipxeconfd
configState_.*     : file, opsipxeconfd
license.*          : mysql
softwareLicense.*  : mysql
audit.*            : mysql
.*                 : file

In dieser Datei sind oben Erläuterungen und Beispielkonfigurationen angegeben. In den nicht auskommentierten Zeilen steht vorne der Name der opsi-Methoden (mit wildcard .) und nach einem Doppelpunkt die hierfür zuständigen Backends. Bei jedem Methodenaufruf wird anhand dieser Liste geprüft, welche Backends aufgerufen werden müssen. Dabei wird die erste Zeile genommen die zu dem Methoden Namen passt. Die letzte Zeile (.) passt auf jeden Methoden Namen.

Die Standardeinstellung bei der Installation von opsi die Verwendung des File-Backends als Haupt-Backend und Verwendung des MySQL-Backend für Lizenzmanagement- und Inventarisierungs-Daten.

Achten Sie darauf, dass alle verwendeten Backends in der Zeile beginnend mit backend_.* aufgeführt werden.

Wann immer Sie die Datei dispatch.conf angepasst haben, führen Sie die folgenden Befehle aus. Auch wenn Sie bei der Inbetriebnahme des Servers die Datei nicht geändert haben, führen Sie diese Befehle jetzt aus.

opsi-setup --init-current-config
opsi-set-rights
systemctl restart opsiconfd.service
systemctl restart opsipxeconfd.service

Samba-Konfiguration anpassen und Ändern von Passwörtern

Um sicherzustellen, dass die für opsi erforderlichen Samba-Shares verfügbar sind, führen Sie bitte den folgenden Befehl aus:

opsi-setup --auto-configure-samba

Anschließend sollten die Samba-Dienste neu gestartet werden:

systemctl restart smbd.service
systemctl restart nmbd.service
Sollte beim Update des Servers nachgefragt werden, ob die Datei smb.conf überschrieben werden soll, muss man dies bestätigen.
Sollte die smb.conf vorher schon geändert worden sein, sollte man den default beibehalten und später die Dateien miteinander abgleichen.
Sollte diese Nachfrage schon mit Nein beantwortet worden sein, kann man dies später auf dem opsi-Server durch ausführen von opsi-setup --auto-configure-samba nachholen.

Auf dem System ist ein Pseudo-User 'pcpatch' eingerichtet. Die PCs melden sich zwecks Installation von Softwarepaketen als dieser User an und haben dann Zugriff auf die Installationsdateien auf den hierfür vorgesehenen Shares. Der User 'pcpatch' muss mit korrektem Passwort – gleichzeitig als System-User, als Samba-User und als opsi-User – eingerichtet werden.

Rufen Sie in einem Terminalfenster das Programm 'opsiadmin' mit der Option zum Setzen des pcpatch-Passwortes (in einem für opsi, Unix und Samba).

opsi-admin -d task setPcpatchPassword

Nach "Abschicken" des Befehls werden Sie zur Passworteingabe aufgefordert.

User einrichten und Gruppen opsiadmin und opsifileadmins pflegen

Die Administration von opsi ist nur Benutzern gestattet, die Mitglied der Unix-Gruppe 'opsiadmin-Gruppe' sind.

Im folgenden wird als Beispiel der neue Benutzer 'adminuser' so eingerichtet, wie Sie ihn sich einrichten sollten.

Zunächst wird der User erstellt:

useradd -m -s /bin/bash adminuser

Wir vergeben nun Passwörter für Unix:

passwd adminuser

und für Samba:

smbpasswd -a adminuser
Verwenden Sie in den Passwörtern kein '§' da dies bei der Verbindung zum opsi-Service nicht erlaubt ist.

Nun wird die Gruppenmitgliedschaft eingerichtet und getestet mit der Befehlsfolge:

usermod -aG opsiadmin adminuser
getent group opsiadmin

Der getent-Befehl sollte dann so etwas ausgeben wie:

opsiadmin:x:1001:opsiconfd,adminuser
Wenn 'root' nicht Mitglied von opsiadmin-Gruppe ist, kann er unter Umständen nicht alle opsi-Administrationskommandos ausführen!

Für alltägliche Arbeiten auf Ihrem opsi-Server ist es in der Regel nicht notwendig als 'root' zu arbeiten. Unsere Empfehlung ist es einen normalen Benutzer zu nutzen und sudo zu verwenden, wann immer administrative Privilegien benötigt werden.

Alle User, die Produkte packen (opsi-makepackage), installieren (opsi-package-manager) oder Konfigurationsdateien manuell bearbeiten wollen, müssen zusätzlich in der Gruppe 'opsifileadmin-Gruppe' sein:

usermod -aG opsifileadmins adminuser

Der Test

getent group opsifileadmins

ergibt
'opsifileadmins:x:998:adminuser'

Damit Mitglieder der Gruppe 'opsifileadmin-Gruppe' den Befehl sudo opsi-set-rights nutzen können führen Sie bitte aus:

opsi-setup --patch-sudoers-file

Dann kann opsi-set-rights (macht das selbe wie opsi-setup --set-rights), nicht nur als root, sondern auch per sudo von Mitgliedern der Gruppe 'opsifileadmin-Gruppe' aufgerufen werden.:

Beispiel:

sudo opsi-set-rights .

DHCP-Konfiguration

Eine korrekt funktionierende Namensauflösung und DHCP ist für das Funktionieren von opsi essentiell. Um die Installation zu vereinfachen, ist die von uib bereitgestellte VM schon mit einem DHCP-Server ausgestattet. Auf der anderen Seite ist in vielen Umgebungen in der Regel bereits ein DHCP-Server schon vorhanden, der weiter genutzt werden soll. Daher werden im folgenden beide Alternativen beschrieben.

Alternative: DHCP auf dem opsi-Server

Vorkonfigurierte VM:

In der vorkonfigurieren opsi VM ist bereits ein DHCP-Server installiert.
Der DHCP-Server auf der opsi-Server VM ist so konfiguriert, das er keine freien leases hat, also keine IP-Nummern an unbekannte Rechner vergibt. Wenn Sie im opsi-configed einen Client erzeugen, müssen Sie daher IP-Nummer und MAC-Adresse angeben, da diese in die /etc/dhcp/dhcpd.conf eingetragen und danach der DHCP Dienst neu gestartet wird.

Eigene Installation:

Wenn Sie den opsi-Server als DHCP-Server verwenden möchten, müssen Sie daher das entsprechende Paket manuell nachinstallieren

z.B. mit

apt install isc-dhcp-server

Nach der Installation muss die Konfigurationsdatei noch angepasst werden mit dem Befehl:

opsi-setup --auto-configure-dhcpd

Um den DHCP Server neu zu starten, so wie in /etc/opsi/backends/dhcpd.conf beschrieben, ist ein entsprechender Eintrag in der /etc/sudoers notwendig. Dieser wird mit folgendem Befehl erstellt.

opsi-setup --patch-sudoers-file

Die Rechte der /etc/dhcp/dhcpd.conf sollten wie folgt aussehen.

-rw-r--r-- 1 opsiconfd opsiadmin 80174 Dec 22 14:37 /etc/dhcp/dhcpd.conf

Alternative: externer DHCP-Server

Vorkonfigurierte VM:

Wenn Sie die opsi-VM verwenden dann können Sie den DHCP-Server deinstallieren.

Dazu führen Sie den folgenden Befehl aus:

apt remove isc-dhcp-server
Eigene Installation:

Bei einer eigenen Installation wird seit opsi 4.0.3 nicht mehr automatisch ein DHCP-Server installiert.

Nun müssen Sie den externen DHCP-Server so konfigurieren, dass er ein PXE-Boot über den opsi-Server ermöglicht. Wenn Ihr DHCP-Server auf einem Linux läuft, sind folgende Einträge in der Konfigurationsdatei des dhcpd (z.B. /etc/dhcp/dhcpd.conf) für die Clients notwendig:

next-server <ip of opsi-server>;
filename "linux/pxelinux.0";

Wobei '<ip of opsi-server>' durch die IP-Adresse des opsi-Servers zu ersetzen ist.

Läuft der opsi-Server auf openSUSE oder SLES, so ist filename=opsi/pxelinux.0.
Läuft der opsi-Server auf UCS, so ist filename=pxelinux.0.

Bei einem Windows-Server sind die entsprechenden Einträge 'Startserver (Option 66)' und 'Startfile (Option 67)'.

Wenn Sie im opsi-configed einen Client erzeugen, müssen Sie die MAC-Adresse angeben, aber keine IP-Nummer.

Überprüfung/Anpassung Backendkonfiguration für DHCP-Nutzung

Je nachdem ob der interne oder ein externer DHCP-Server verwendet wird, muss die Konfiguration von opsi angepasst werden.

In der Datei /etc/opsi/backendManager/dispatch.conf ist festgelegt, welche Backends von opsi zum Einsatz kommen (bspw. 'file', 'mysql').

In den Zeilen backend_. und host_. wird u.a. gesteuert, ob der opsi-Server auch die lokale DHCP-Konfiguration – also die Zuweisung von Internet-Adressen zu den Hardware-Adressen der Netzwerkkarten – mit übernimmt. Dies muss so eingerichtet sein, wenn für die opsi-clients die DHCP-Einträge durch die opsi-Konfigurationsaufrufe erzeugt werden sollen. Der entsprechende Eintrag mit file Backend muss dann z.B. lauten:

backend_.*         : file, opsipxeconfd, dhcpd
host_.*            : file, opsipxeconfd, dhcpd

Wenn der opsi-Server den DHCP-Dienst nicht bereitstellen soll (weil ein anderer Server im lokalen Netz diese Aufgabe übernimmt und auch für die opsi-clients gepflegt wird), so wird das Backend dhcpd nicht benötigt:

backend_.*         : file, opsipxeconfd
host_.*            : file, opsipxeconfd

Nach Anpassung der Backendkonfiguration muss die Konfiguration initialisiert und der opsiconfd neu gestartet werden:

opsi-setup --init-current-config
opsi-set-rights
systemctl restart opsiconfd.service
systemctl restart opsipxeconfd.service

Konfiguration der Namensauflösung

Für die Installation der Software auf den Clients vor dem Login müssen allgemein nur die Clients wissen, wie sie den opsi-Server erreichen.

opsi kennt inzwischen allerdings auch eine Reihe von 'Push' Funktionalitäten wie z.B. 'on_demand' Installationen, Nachrichten versenden, Remote-Control Software starten, Session Informationen abrufen.

Für all diese Funktionen muss der Server die Clients erreichen können und dazu muss er die gültige IP-Nummer des Clients zu ermitteln. Wie dies am besten geschieht hängt von der konkreten Konfiguration von DNS und DHCP ab. Die Zahl der möglichen Varianten ist hier sehr groß.

Daher seien hier zwei typische Extreme aufgeführt:

  1. Die Clients sind nicht im DNS und haben dynamisch zugewiesene wechselnde IP-Nummern.

  2. Die IP-Nummern aller laufenden Clients lassen sich immer korrekt beim DNS abfragen.

Um den opsi-server nun an die unterschiedlichen Gegebenheiten anpassen zu können gibt es zwei Konfigurationen die Sie ändern können:

  • Der Eintrag resolveHostAddress in der Datei /etc/opsi/backends/hostcontrol.conf
    Steht diese Option auf 'True', wird bei einem Verbindungsaufbau vom opsi-Server zu einem opsi-client die IP-Adresse des Clients bevorzugt über die Namensauflösung ermittelt. Um die im Backend von opsi hinterlegte IP-Adresse zu bevorzugen ist die Option auf 'False' zu setzen.

  • Der Eintrag update-ip in der Datei /etc/opsi/opsiconfd.conf
    Steht dieser Eintrag auf 'true', so wird wann immer der opsi-server von einem Client eine IP-Adresse empfängt (z.B. bei jedem Kontakt die der Client aufnimmt) die IP-Datenbank des opsi-servers aktualisiert. Der Default ist 'true'.

Für die oben aufgeführte Variante 1, ist es sinnvoll resolveHostAddress auf 'False' und update-ip auf 'true' zu setzen.

Für die oben aufgeführte Variante 2, ist die bessere Konfiguration resolveHostAddress auf 'True' zu setzen und update-ip auf 'false'.

Welche Kombination bei Ihnen am besten passt, müssen Sie anhand Ihrer Gegebenheiten selbst ermitteln.

Wenn Sie an diesen Konfigurationen etwas geändert haben, so starten Sie den opsiconfd neu:

systemctl restart opsiconfd.service