OPSI Setup - Falscher User Host bei externem Datenbankserver

Antworten
SBusse
Beiträge: 2
Registriert: 29 Dez 2024, 20:37

OPSI Setup - Falscher User Host bei externem Datenbankserver

Beitrag von SBusse »

Moin zusammen,

ich installiere OPSI 4.3 (4.3.26.23) (Paket opsi-server, nicht expert, nicht full) unter Ubuntu 24.04 in LXC in Verbindung mit einer externen Datenbank.
Die Server haben folgende IP-Adressen (beispielhaft):
OPSI-Host IP: 192.168.0.100
MySQL-Datenbank: 192.168.0.101

Zum Einrichten der externen Datenbankverbindung nutze ich gemäß Anleitung den Befehl

Code: Alles auswählen

opsiconfd setup --configure-mysql
Fehlerbild

Code: Alles auswählen

Do you want to configure the MySQL database connection? [y/n]: y
Enter MySQL server address (192.168.0.101): 
Enter MySQL database (opsi): 
Enter MySQL admin username (root): 
Enter MySQL admin password: 
Enter MySQL username for opsiconfd (opsi): 
MySQL admin connection established
Setting up MySQL user
MySQL user setup successful
Creating MySQL database 'opsi' on '192.168.0.101'
Failed to create MySQL database: (MySQLdb.OperationalError) (1045, "Access denied for user 'opsi'@'192.168.0.100' (using password: YES)")
(Background on this error at: https://sqlalche.me/e/14/e3q8)
[3] [2024-12-29 18:45:47.799] [               ] Failed to setup MySQL: (MySQLdb.OperationalError) (1045, "Access denied for user 'opsi'@'10.255.0.108' (using password: YES)")
(Background on this error at: https://sqlalche.me/e/14/e3q8)
Please use `opsiconfd setup --configure-mysql` to configure the MySQL connection manually.   (__init__.py:281)
Analyse
OPSI scheint MySQL Benutzer "opsi" mit dem Host 192.168.0.101, sprich der IP-Adresse der Datenbank, nicht aber mit der OPSI-Server IP-Adresse 192.168.0.100 anzulegen:
MySQL-User.png
MySQL-User.png (10.81 KiB) 7220 mal betrachtet
Gemäß https://dev.mysql.com/doc/refman/8.4/en ... names.html ist der Host "opsi@<HOST>", allerdings die IP-Adresse des Clients, von der die MySQL Verbindung kommt. Da das OPSI Setup-Skript als Host-Parameter allerdings die IP-Adresse des MySQL Servers setzt, funktioniert ein Login von 192.168.0.100 natürlich nicht.

Ein Blick in den Source-Code härtet den Verdacht:
https://github.com/opsi-org/opsiconfd/b ... end.py#L58
Hier wird der Nutzer mit

Code: Alles auswählen

CREATE USER IF NOT EXISTS '{mysql.username}'@'{address}'
angelegt, wobei die Variable address zuvor aus dem Interactive Prompt für die MySQL Datenbank IP-Adresse übernommen wird.

Workaround
Benutzer in der Datenbank manuell erstellen und die Zugangsdaten in /etc/opsi/backends/mysql.conf eintragen. Hier fand ich die Dokumentation zunächst allerdings etwas uneindeutig. Hier heißt es
Der opsi-Configserver benötigt Zugriff auf einen MySQL-Server. Läuft der MySQL-Server auf demselben Rechner, dann erfolgt die Konfiguration in der Regel automatisch über opsiconfd setup. Sollte die automatische Konfiguration nicht funktionieren, oder soll ein externer MySQL-Server verwendet werden, dann können Sie die Konfiguration manuell vornehmen. Dazu verwenden Sie den folgenden Befehl:
Daraus schließe ich als Leser, dass dies bei der Verwendung eines externen Datenbankservers nicht automatisch erfolgt und ich zwingend "configure-mysql" ausführen muss. Das das "Alternativ" in der Sektion "Konfigurationsdatei" steht und damit die Alternative zum "configure-mysql" für die externe Datenbank gemeint ist, ist auf den ersten Blick missverständlich.
Benutzeravatar
j.schneider
uib-Team
Beiträge: 2042
Registriert: 29 Mai 2008, 15:14

Re: OPSI Setup - Falscher User Host bei externem Datenbankserver

Beitrag von j.schneider »

Hallo,

vielen Dank für den detaillierten Bug-Report.
Das Problem sollte ab opsiconfd 4.3.27.1 behoben sein.

Grüße
Jan Schneider


Vielen Dank für die Nutzung von opsi. Im Forum ist unser Support begrenzt.

Für den professionellen Einsatz und individuelle Beratung empfehlen wir einen Support-Vertrag und eine Schulung.
Gerne informieren wir Sie zu unserem Angebot.

uib GmbH
Telefon: +49 6131 27561 0
E-Mail: sales@uib.de


Antworten