kudos @troeder
Um alle Optionen und Properties zu sehen, einfach udm users/user ohne weitere Argumente ausführen.
- Die Rolle muss gesetzt werden:
--append-option=ucsschoolStudentbzw.ucsschoolTeacher/ucsschoolStaff. Für die Rolle “Lehrer und Mitarbeiter” beides setzen. - Alle Schulen (hier
OU1undOU2) die besucht werden sollen setzen:--append school=OU1 --append=school OU2 - Die primäre (evtl. einzige) Schule setzen mit der Position des Objekts im LDAP-Baum:
--position "cn=schueler,cn=users,ou=OU1,$(ucr get ldap/base)". Die Container variieren bei den Rollen (cn=lehrer,cn=mitarbeiter,cn=lehrer und mitarbeiter). Am Besten mit existierenden Usern vergleichen. - Die folgenden Gruppen setzen:
--set "primaryGroup=cn=Domain Users OU1,cn=groups,ou=OU1,$(ucr get ldap/base)"plus--append "groups=cn=schueler-OU1,cn=groups,ou=OU1,$(ucr get ldap/base)"plus die DNs aller Klassen, z.B.--append "groups=cn=OU1-2b,cn=klassen,cn=schueler,cn=groups,ou=OU1,$(ucr get ldap/base)"Zu ersetzen istcn=schueler-OU1evtl. gegencn=lehrer-OU1bzw.cn=mitarbeiter-OU1odercn=admins-OU1. - Die UCS@school Objekt-Rolle muss gesetzt werden:
--append ucsschoolRole=student:school:OU1evtl. weitere Rollen:--append ucsschoolRole=student:school:OU2bzw.--append ucsschoolRole=teacher:school:OU1--append ucsschoolRole=staff:school:OU1
Beispiel: https://github.com/univention/schulangebot/blob/master/roles/setup/tasks/create-users.yml
Das sollte es sein… Das Ergebnis per udm users/user list --filter uid=USERNAME vergleichen mit in der UMC angelegten Usern. Die Optionen (welche die Rolle festlegen) werden dabei leider nicht angezeigt. Die am Besten in der UMC vergleichen.
Wenn jemand Python programmieren kann, dann ist damit deutlich leichter zu automatisieren. Bei Interesse schreibe ich hier gerne ein paar Ansätze auf.
Alternativ gibt es jetzt die Kelvin REST API, mit der School-User zuverlässig per HTTP provisioniert werden können: https://docs.software-univention.de/ucsschool-kelvin-rest-api/
Für diese gibt es wiederum einen komfortablen Python-Client: https://kelvin-rest-api-client.readthedocs.io/en/latest/ Aber HTTP kann natürlich aus jeder Programmiersprache heraus angesprochen werden.
Geste Grüße
Daniel