Univention Bugzilla – Bug 29418
Skript zum anlegen einer großen Testumgebung
Last modified: 2019-03-05 18:02:16 CET
Für die Produkttest benötigen wir eine einfach Möglichkeit, ein großes Testsystem aufzusetzen (50k User, 20k Gruppen, 200 Slaves). Ideal wäre dies im Stil des Join-Skripts 01univention-ldap-server-init.inst zu machen als ldif und über "ucr filter" geparst, so dass LDAP-Base usw. angepasst werden: > root@master55:~# grep -A 4 base.ldif /usr/lib/univention-install/01univention-ldap-server-init.inst > cat /usr/share/univention-ldap/base.ldif | \ > sed -e \ > "s|@@%%@@ldap\.pw@@%%@@|$pw_crypt|;s|@@%%@@backup\.pw@@%%@@|$backup_crypt|;s|@@%%@@sambadomain@@%%@@|$sambadomain|;s|@@%%@@firstdc@@%%@@|$firstdc|;s|@@%%@@realm@@%%@@|$realm|;s|@@%%@@sid@@%%@@|$sid|;s|@@%@@domain@@%@@|$Domain|" | \ > univention-config-registry filter | slapadd >>/var/log/univention/join.log 2>&1
Das Skript sollte Bestandteil von ucs-test-tools sein.
Gut wäre es, wenn das Skript auch automatisch die autosearch UCR-Variablen für UDM anpasst (vielleicht noch andere?).
Man sollte aufpassen, dass man weder alle 50k User in eine einzige der 20k Gruppen steckt (sodass alle anderen leer bleiben), noch dass man sie zu gleichmäßig aufteilt (sodass jede Gruppe nur 2 oder 3 Mitglieder hat). Interessant in UDM sind Abhängigkeiten. Eine besondere Abhängigkeit hat eine Druckergruppe. Dort hängt groupMember (Drucker) von spoolHost (Computer) ab. Ich hätte gerne in dem Skript 1500 Slaves mit Service=Print und 2500 Printer allesamt auf einem der 1500 Slaves Dann kann man beim Anlegen einer Druckergruppe nämlich beobachten, wie sich die Dependencies verhalten, wenn die Grenze überschritten wird, bis zu der sich die ComboBoxen normal (lies: uninteressant) verhalten (auch wenn wohl niemals 2500 Drucker an einem Computer hängen werden).
(In reply to comment #3) > 1500 Slaves mit Service=Print Vielleicht besser MemberServer
Per slapadd angelegte Objekte durchlaufen nicht die Listener-Module.
Ja, die sollten per ldapadd angelegt werden. Es sollten dabei auch die UIDs in einem bestimmten Bereich angelegt werden, damit die nicht im Konflikt zu bereits bestehenden Benutzern, Gruppen, Servern stehen.
(In reply to comment #4) > (In reply to comment #3) > > 1500 Slaves mit Service=Print > Vielleicht besser MemberServer 200 Slaves und vielleicht 200 MemberServer?
(In reply to comment #7) > (In reply to comment #4) > > (In reply to comment #3) > > > 1500 Slaves mit Service=Print > > Vielleicht besser MemberServer > > 200 Slaves und vielleicht 200 MemberServer? Zur Not geht auch das. Ich bräuchte so viele, damit das LDAP-Limit überschritten wird. Aber ob ich das Limit auf 1000 setze oder auf 100...
Created attachment 4849 [details] Skript zum exportieren von LDAP-Daten Anbei ein erstes Skript, dass die vorhandenen LDAP-Daten auf einem (Master-) System ausliest, filtert, parset und dumpt. Den Import teste ich gerade noch.
Dazu fehlt noch ein import-Skript, das die Einträge der Gruppen Domain Users, DC Slave Hosts, DC Backup Hosts, Computers ausliest, dann diese Gruppen löscht und nach ldapadd die alten Einträge wieder hinzufügt.
Hinweis: ucr filter ist in meinen Testfällen sehr langsam und hat 50K Benutzer mit 10K Gruppen nach einigen Stunden noch nicht abgearbeitet. Also besser mit sed arbeiten.
(In reply to comment #11) > Hinweis: ucr filter ist in meinen Testfällen sehr langsam und hat 50K Benutzer > mit 10K Gruppen nach einigen Stunden noch nicht abgearbeitet. Also besser mit > sed arbeiten. Bzgl. UCR filter siehe auch Bug 29484.
(In reply to comment #11) > Hinweis: ucr filter ist in meinen Testfällen sehr langsam und hat 50K Benutzer > mit 10K Gruppen nach einigen Stunden noch nicht abgearbeitet. Also besser mit > sed arbeiten. `ucr filter` ist wirklich ziemlich langsam. Das kann man auch per Hand machen. In dem dump müssen alle @%@foo/bar@%@ Vorkommnisse individuell ersetzt werden, d.h: @%@ldap/base@%@ @%@domainname@%@ Des Weiteren gibt es auch ein paar Zeilen, dessen statische Werte ausgetauscht werden müssen, z.B.: krb5PrincipalName: host/mem30.@%@domainname@%@@DIRK.UCS31.QA -> DIRK.UCS31.QA müsste in dem Fall auch angepasst werden. Importiert habe ich die Daten dann wie folgt: `slapadd -c -l $ldiff_dump`
(In reply to comment #13) > Importiert habe ich die Daten dann wie folgt: > `slapadd -c -l $ldiff_dump` Vorher sollte natürlich der slapd gestoppt werden!
(In reply to comment #14) > (In reply to comment #13) > > Importiert habe ich die Daten dann wie folgt: > > `slapadd -c -l $ldiff_dump` > > Vorher sollte natürlich der slapd gestoppt werden! Bei slapadd wird der Listener nicht angesprochen. Wenn das gewünscht ist, dann besser ldapadd verwenden.
Es gibt nun zwei Tools: a) /usr/sbin/import_ldif_with_listener b) /usr/sbin/import_ldif_without_listener Diese importieren ein vorbereitestes LDIF importieren. Ein ldif gibt es jetzt: /usr/share/ucs-test-tools/customer5000.ldif Das ldif besteht aus: - 5 DC Backups - 400 DC Slaves - 200 Memberservern - 5000 Windows PCs - inkl. Forward + Reverse Einträge - 1000 Gruppen - 5000 Benutzern - 1600 Drucker - 2400 Shares
(In reply to Stefan Gohmann from comment #16) > Es gibt nun zwei Tools: > a) /usr/sbin/import_ldif_with_listener > b) /usr/sbin/import_ldif_without_listener In welchem Paket denn?
(In reply to Alexander Kläser from comment #17) > In welchem Paket denn? ucs-test-tools
ok: import script ok: predefined ldif. LDIF creates: users 5 DC Backups 400 DC Slaves 200 Memberserver 3735 Windows hosts
(In reply to Lukas Walter from comment #19) > ok: import script > > ok: predefined ldif. > > LDIF creates: > users > 5 DC Backups > 400 DC Slaves > 200 Memberserver > 3735 Windows hosts 5000 users Forward/reverse entries for the created computers 1000 groups 2400 shares 1600 printer Should be enough for now.
UCS 3.2 has been released: http://docs.univention.de/release-notes-3.2-en.html http://docs.univention.de/release-notes-3.2-de.html If this error occurs again, please use "Clone This Bug".
The scripts are currently broken, See Bug #36695.
For the product tests: ucr set repository/online/unmaintained=yes apt-get update -qq apt-get install ucs-test-tools /usr/sbin/import_ldif_without_listener /usr/share/ucs-test-tools/customer5000.ldif