Migration von i-MSCP zu KeyHelp

Für Modifikationen in und um KeyHelp.
User avatar
space2place
Posts: 486
Joined: Tue 24. Mar 2020, 11:02
Contact:

Re: Migration von i-MSCP zu KeyHelp

Post by space2place »

In meinem Script sieht der Abschluss der Emailmigration so aus.

Code: Select all

os.system('chown -R vmail:vmail /var/mail/vhosts/' + emailAddressData[1] + '/' + emailAddressData[0] + '/')
os.system('find /var/mail/vhosts/' + emailAddressData[1] + '/ -type d -exec chmod 2700 {} \;')
os.system('chmod 2755 /var/mail/vhosts/' + emailAddressData[1] + '/')
emailAddressData[1] => domain.tld
emailAddressData[0] => Postfach

Also auf der Console dann folgende Befehle:

Code: Select all

chown -R vmail:vmail /var/mail/vhost/domain.tld/postfach/
find /var/mail/vhost/domain.tld/ -type d -exec chmod 2700 {} \;
chmod 2755 /var/mail/vhost/domain.tld/
User avatar
PapaZivi
Posts: 6
Joined: Tue 26. Oct 2021, 15:37

Re: Migration von i-MSCP zu KeyHelp

Post by PapaZivi »

Hallo zusammen.

Ich will ebenfalls von i-mscp wegkommen, habe aber bei dem Migrationsscript ein Problem. Domains OHNE Datenbanken kann ich ohne Probleme migrieren. Sobald ich jedoch eine Domain migrieren will, die eine SQL-Datenbank hat, bekomme ich folgenden Fehler:

Code: Select all

Found domain: domain.tld
Get i-MSCP domain dns data
Get i-MSCP sub domain data
Get i-MSCP alias domain data
Get i-MSCP domain emailaddress data
Get i-MSCP database data
Traceback (most recent call last):
  File "i-mscp_keyhelp_migration.py", line 194, in <module>
    while not imscpInputData.getImscpUserWebData(input("Enter the i-MSCP user name (first domain): "), client):
  File "/tmp/i-mscp-keyhelp-migration/i-mscp-keyhelp-migration/_imscp.py", line 177, in getImscpUserWebData
    self.__getImscpDomainDatabases(self.imscpData['iUsernameDomainId'], self.imscpData['iUsernameDomain'],
  File "/tmp/i-mscp-keyhelp-migration/i-mscp-keyhelp-migration/_imscp.py", line 726, in __getImscpDomainDatabases
    self.__getImscpDomainDatabaseUsers(iUsernameDomainId, iUsernameDomain,
  File "/tmp/i-mscp-keyhelp-migration/i-mscp-keyhelp-migration/_imscp.py", line 772, in __getImscpDomainDatabaseUsers
    self.imscpDomainDatabaseUsernames[index]['iDatabasePasswordHash'] = self.__getImscpDatabaseUserPasswordHash(
  File "/tmp/i-mscp-keyhelp-migration/i-mscp-keyhelp-migration/_imscp.py", line 814, in __getImscpDatabaseUserPasswordHash
    iDatabasePasswordHash = imscpDomainDatabaseUsernamePasswordData[9].strip()
IndexError: list index out of range
Ja, ich könnte die Datenbanken auch dumpen und dann löschen und dann auf dem neuen Server wieder importieren, aber das kann ja nicht die Lösung des Problems sein. Zumal ich das dann auf 4 Servern machen müsste.
Leider sind meine Python Kenntnisse sehr rudimentär. Kann mir vielleicht jemand einen Tipp geben, wie ich das Problem lösen kann bzw. wie ich dem Problem auf die Schliche komme?
Danke
User avatar
space2place
Posts: 486
Joined: Tue 24. Mar 2020, 11:02
Contact:

Re: Migration von i-MSCP zu KeyHelp

Post by space2place »

Welche Version hat i-MSCP und das OS wo i-MSCP läuft?
Dann teile mir noch mit welches OS auf dem KeyHelp Server installiert ist.

PS:
Du kannst auch in der Datei „ migration-config.cfg“ folgendes umstellen:

Code: Select all

keyhelpUpdatePasswordWithApi = false 
Dadurch wird nur das Passwort für die Datenbank neu erstellt und nicht aus der MySQL Datenbank ausgelesen. Dann musst Du eben die Daten in den Webseiten anpassen.. damit funktioniert es aber ganz sicher. Diese Funktion mit dem Hash ist erst vor kurzem integriert worden.
User avatar
PapaZivi
Posts: 6
Joined: Tue 26. Oct 2021, 15:37

Re: Migration von i-MSCP zu KeyHelp

Post by PapaZivi »

space2place wrote: Tue 26. Oct 2021, 18:15 Welche Version hat i-MSCP und das OS wo i-MSCP läuft?
i-MSCP 1.5.3
Build: 2018120800
Codename: Ennio Morricone
auf Ubuntu 18.04.6
space2place wrote: Tue 26. Oct 2021, 18:15 Dann teile mir noch mit welches OS auf dem KeyHelp Server installiert ist.
Frisch installiertes Ubuntu 20.04.3 LTS
space2place wrote: Tue 26. Oct 2021, 18:15 PS:
Du kannst auch in der Datei „ migration-config.cfg“ folgendes umstellen:

Code: Select all

keyhelpUpdatePasswordWithApi = false 
Dadurch wird nur das Passwort für die Datenbank neu erstellt und nicht aus der MySQL Datenbank ausgelesen. Dann musst Du eben die Daten in den Webseiten anpassen.. damit funktioniert es aber ganz sicher. Diese Funktion mit dem Hash ist erst vor kurzem integriert worden.
Gut zu wissen, das es einen Umweg gibt. Ich bin aber ein Mensch, der Fehler lieber behebt als sie zu umgehen.
User avatar
space2place
Posts: 486
Joined: Tue 24. Mar 2020, 11:02
Contact:

Re: Migration von i-MSCP zu KeyHelp

Post by space2place »

PapaZivi wrote: Wed 27. Oct 2021, 09:45 Gut zu wissen, das es einen Umweg gibt. Ich bin aber ein Mensch, der Fehler lieber behebt als sie zu umgehen.
Das war der alte Weg die Datenbanken zu übertragen. Passwort Hashes zu übertragen sind erst seit der letzten Version von KeyHelp möglich. Vorher ging es halt nicht anders. Ich habe nur den alten Weg nicht rausprogrammiert, sondern es als Config Variable noch erhalten...

Da wir alles auf Debian am Laufen haben, konnte ich das mit Ubuntu 18 nicht testen.
Der Passwort Hash wird mit folgenden Befehl in MySQL abgefragt:

Code: Select all

SHOW GRANTS FOR DB-Username@localhost;
Frag mal einen DB User damit ab, und sende mir mal die Ausgabe. Ich muss das prüfen.
Gruß
Sascha

PS: Was Du auch machen kannst um zu sehen was ausgelesen wird.
Öffne die Datei "_imscp.py". Die Zeile 810

Code: Select all

#print(dataLine)
Entferne den Hash Tag und lasse es noch einmal laufen. Dann wirft das Script die Zeile so aus wie sie benötigt wird.. Sollte ungefähr so aussehen

Code: Select all

GRANT|USAGE|ON|*.*|TO|'2_dbuser'@'localhost'|IDENTIFIED|BY|PASSWORD|'*6A03422973475D085767D2AED91F965B64825EA5'
User avatar
Victor
Posts: 17
Joined: Sun 21. Jun 2020, 20:23

Re: Migration von i-MSCP zu KeyHelp

Post by Victor »

Hello,

I have the following error when running the script :

Code: Select all

berlin255:~/i-mscp-keyhelp-migration# ./i-mscp_keyhelp_migration.py
Traceback (most recent call last):
  File "./i-mscp_keyhelp_migration.py", line 15, in <module>
    import _global_config
  File "/root/i-mscp-keyhelp-migration/_global_config.py", line 43, in <module>
    imscpServerFqdn = str(config['imscp-'+configSection]['imscpServerFqdn'])
  File "/usr/lib/python3.8/configparser.py", line 960, in __getitem__
    raise KeyError(key)
KeyError: 'imscp-panel.myservers.biz'
KeyHelp 21.2 is installed on Ubuntu 20.04 on the first server and i-MSCP 1.5.3 with Ubuntu 18.04 on the second server.
The hostname in the config file is correct, but for some reason the scripts adds imscp- in front of the hostname and maybe that's why the error ?
Something something, dark side.
User avatar
space2place
Posts: 486
Joined: Tue 24. Mar 2020, 11:02
Contact:

Re: Migration von i-MSCP zu KeyHelp

Post by space2place »

Hi Victor,
it seems you have an error in your "migration-config.cfg"

In line 4 you have to set the section

Code: Select all

configSection = srv01
Only a short name is needed. The script will add "imscp" by itself.

Code: Select all

[imscp-srv01]
imscpServerFqdn = srv01.my-imscp-server.tld
imscpSshUsername = root
imscpSshPort = 22
imscpSshTimeout = 5
imscpRootPassword =
# true or false
imscpRoundcubeContactImport = false
imscpSshPublicKey = /root/.ssh/id_rsa
imscpWebFolder = /var/www/virtual
imscpMailFolder = /var/mail/virtual
imscpDbDumpFolder = /database_dumps
If you set "configSection" to "imscp-panel.myservers.biz" the section have to be set to

Code: Select all

[imscp-imscp-panel.myservers.biz]
imscpServerFqdn = srv01.my-imscp-server.tld
imscpSshUsername = root
imscpSshPort = 22
imscpSshTimeout = 5
imscpRootPassword =
# true or false
imscpRoundcubeContactImport = false
imscpSshPublicKey = /root/.ssh/id_rsa
imscpWebFolder = /var/www/virtual
imscpMailFolder = /var/mail/virtual
imscpDbDumpFolder = /database_dumps
Please send your config with PM if you have problems after changing the lines.
User avatar
PapaZivi
Posts: 6
Joined: Tue 26. Oct 2021, 15:37

Re: Migration von i-MSCP zu KeyHelp

Post by PapaZivi »

space2place wrote: Wed 27. Oct 2021, 10:18 Da wir alles auf Debian am Laufen haben, konnte ich das mit Ubuntu 18 nicht testen.
Der Passwort Hash wird mit folgenden Befehl in MySQL abgefragt:

Code: Select all

SHOW GRANTS FOR DB-Username@localhost;
Frag mal einen DB User damit ab, und sende mir mal die Ausgabe. Ich muss das prüfen.
Gruß
Sascha
Ausgabe ging Original per PN raus. Hier die "Zensierte" Version:

Code: Select all

mysql> SHOW GRANTS FOR 2_wordpress@localhost ;
+-----------------------------------------------------------------+
| Grants for 2_wordpress@localhost                                |
+-----------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'DB-Username'@'localhost'                 |
| GRANT ALL PRIVILEGES ON `DBNAME`.* TO 'DB-Username'@'localhost' |
+-----------------------------------------------------------------+
2 rows in set (0,00 sec)
space2place wrote: Wed 27. Oct 2021, 10:18 PS: Was Du auch machen kannst um zu sehen was ausgelesen wird.
Öffne die Datei "_imscp.py". Die Zeile 810

Code: Select all

#print(dataLine)
Entferne den Hash Tag und lasse es noch einmal laufen. Dann wirft das Script die Zeile so aus wie sie benötigt wird.. Sollte ungefähr so aussehen

Code: Select all

GRANT|USAGE|ON|*.*|TO|'2_dbuser'@'localhost'|IDENTIFIED|BY|PASSWORD|'*6A03422973475D085767D2AED91F965B64825EA5'
Das spuckt folgendes aus:

Code: Select all

GRANT|USAGE|ON|*.*|TO|'2_DB-Username@'localhost'|
User avatar
space2place
Posts: 486
Joined: Tue 24. Mar 2020, 11:02
Contact:

Re: Migration von i-MSCP zu KeyHelp

Post by space2place »

PapaZivi wrote: Thu 28. Oct 2021, 11:43 Das spuckt folgendes aus:

Code: Select all

GRANT|USAGE|ON|*.*|TO|'2_DB-Username@'localhost'|
Wie schon in der PM geschrieben.. Hier fehlt der Passwort Hash. Es ist möglich das bei Ubuntu 18 dieser HASH anders abgefragt wird, aber das kann ich leider nicht testen. Nutze die alte Migrationsmethode.
User avatar
PapaZivi
Posts: 6
Joined: Tue 26. Oct 2021, 15:37

Re: Migration von i-MSCP zu KeyHelp

Post by PapaZivi »

space2place wrote: Thu 28. Oct 2021, 11:49
PapaZivi wrote: Thu 28. Oct 2021, 11:43 Das spuckt folgendes aus:

Code: Select all

GRANT|USAGE|ON|*.*|TO|'2_DB-Username@'localhost'|
Wie schon in der PM geschrieben.. Hier fehlt der Passwort Hash. Es ist möglich das bei Ubuntu 18 dieser HASH anders abgefragt wird, aber das kann ich leider nicht testen. Nutze die alte Migrationsmethode.
Kurze Anfrage bei Herrn Google ergab folgendes:
https://bugs.mysql.com/bug.php?id=76465
This is an intentional change in 5.7. Password information has been separated off and can be obtained using SHOW CREATE USER. (Frei übersetzt: Diese Änderung ist seit Version 5.7 beabsichtigt. Die Passwortinformationen wurden ausgegliedert und können über SHOW CREATE USER abgerufen werden.)
Das ergibt dann folgendes:

Code: Select all

mysql> SHOW CREATE USER 'DB-Username'@'localhost' ;
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| CREATE USER for DB-Username@localhost                                                                                                                                  |
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| CREATE USER 'DB-Username'@'localhost' IDENTIFIED WITH 'mysql_native_password' AS '*1234567890abcdef1234567890abcdef' REQUIRE NONE PASSWORD EXPIRE NEVER ACCOUNT UNLOCK |
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0,00 sec)

EDIT: Jetzt habe ich leider keine Debian-Server um zu testen, ob da der Befehl das selbe ausgibt. :idea:
User avatar
space2place
Posts: 486
Joined: Tue 24. Mar 2020, 11:02
Contact:

Re: Migration von i-MSCP zu KeyHelp

Post by space2place »

Na super... Der Aufwand das jetzt anzupassen und auch zu prüfen welche Version dort installiert ist, ist schon einiges an Arbeit.
Du bist bist jetzt auch der Einzige der das Problem hatte :)

Du kannst es ja auf Deine Bedürfnisse anpassen. Öffne Die Datei "_imscp.py". Zeile 803

Code: Select all

'imysqlpassword'] + ' -e "SHOW GRANTS FOR \'' + iDatabaseUsername + '\'@\'' + iDatabaseUserHost + '\'"')
Das ändern in

Code: Select all

'imysqlpassword'] + ' -e "SHOW CREATE USER \'' + iDatabaseUsername + '\'@\'' + iDatabaseUserHost + '\'"')
Zeile 808

Code: Select all

if i == 0:
in

Code: Select all

if i == 1:
ändern

und als letztes Zeile 814

Code: Select all

iDatabasePasswordHash = imscpDomainDatabaseUsernamePasswordData[9].strip()
in

Code: Select all

iDatabasePasswordHash = imscpDomainDatabaseUsernamePasswordData[7].strip()
ändern.

Damit sollte es dann mit dem HASH funktionieren.

Lass die Zeile

Code: Select all

print(dataLine)
aktiv um zu sehen ob jetzt die Zeile mit HASH ausgegeben wird.
User avatar
PapaZivi
Posts: 6
Joined: Tue 26. Oct 2021, 15:37

Re: Migration von i-MSCP zu KeyHelp

Post by PapaZivi »

Ich werde Morgen berichten, ob es geklappt hat. Jetzt bin ich erstmal dem geldgebendem Arbeitgeber verpflichtet :roll: 8-)
User avatar
OlliTheDarkness
Posts: 1854
Joined: Tue 14. Aug 2018, 16:41
Location: Essen (NRW)

Re: Migration von i-MSCP zu KeyHelp

Post by OlliTheDarkness »

PapaZivi wrote: Thu 28. Oct 2021, 15:49 ... Jetzt bin ich erstmal dem geldgebendem Arbeitgeber verpflichtet :roll: 8-)
Ahc , so heißt das Gesselschaftlich korrekt :lol:

Hab mich schon immer gewundert warum man mich komisch anschaut wenn ich ans Telefon gehe und frage, was der unterbezahlende Sklaventreiber schonwieder von mir will :lol: :lol: :lol: :lol:
Mit freundlichen Grüßen
OlliTheDarkness

**************************************************************
Helden leben lange, Legenden sterben nie

:!: World Hack Organization :!:
**************************************************************
User avatar
PapaZivi
Posts: 6
Joined: Tue 26. Oct 2021, 15:37

Re: Migration von i-MSCP zu KeyHelp

Post by PapaZivi »

Jetzt hat das Skript auch für mich funktioniert. :D
Ich hab den Patch, sollte ihn jemand brauchen, mal angehängt.
Danke für die Hilfe :)
Jetzt werden am Wochenende die ersten Domains umgezogen *oh freude*seufz*
aber dann habe ich das thema i-mscp ja endlich hinter mir :)
Attachments
patch.txt
(1.32 KiB) Downloaded 103 times
User avatar
space2place
Posts: 486
Joined: Tue 24. Mar 2020, 11:02
Contact:

Re: Migration von i-MSCP zu KeyHelp

Post by space2place »

PapaZivi wrote: Thu 28. Oct 2021, 20:31 Jetzt hat das Skript auch für mich funktioniert. :D
Das freut mich, das ich Dir so helfen konnte.
Post Reply