Univention Bugzilla – Bug 27469
Aufruf des S4-Joinskript auf einem 2. Samba4-Server nicht erfolgreich, wenn S4 nur auf Backups installiert wird
Last modified: 2012-12-12 21:08:16 CET
Folgendes Szenario: 1. Auf dem Master ist kein Samba installiert. 2. Der Join eines DC Backup mit Samba 4 funktioniert wie erwartet 3. Anschließend soll ein zweiter DC Backup installiert werden: Das 96-samba4-Join-Skript zeigt zwar an, dass es erfolgreich durchgelaufen sei, effektiv ist das aber nicht der Fall, ldbsearch -H /var/lib/samba/private/sam.ldb zeigt überhaupt keine Daten. In der Folge wird dann auch das 97-s4-connector-Skript nicht aufgeführt. Der Join des zweiten Systems funktionierte erst, als die UCR-Variable samba4/dc auf den FQDN des ersten Samba-Servers gesetzt wurde. Folgender Codeblock ist im Joinskript: # try again with --server if [ -n "$samba4_dc" ]; then samba-tool domain join "$domainname" "$samba4_role" -U"$dcaccount"%"$bindpwd" --realm="$kerberos_realm" --server "$samba4_dc" else samba-tool domain join "$domainname" "$samba4_role" -U"$dcaccount"%"$bindpwd" --realm="$kerberos_realm" --server "$ldap_master" fi Ich denke, wenn samba-tool fehlschlägt, sollte das Joinskript fehlschlagen und ggf. ein Hinweis auf samba4/dc ausgegeben werden. Kann man nicht über die Service-Einträge an Rechnerobjekten feststellen, welche Systeme Samba4-Systeme sind? Dann sollte statt ldap/master eher eins dieser Systeme verwendet werden und nicht per Default der Master.
UCS 3.1 will be the next release.
Im Rahmen von Bug #27457 wurde schon hinzugefügt, dass das Skript abbricht falls samba-tool fehlschlägt. Es wurde nun noch eine entsprechende Fehlermeldung hinzugefügt.
(In reply to comment #0) > Kann man nicht über die Service-Einträge an Rechnerobjekten feststellen, welche > Systeme Samba4-Systeme sind? Dann sollte statt ldap/master eher eins dieser > Systeme verwendet werden und nicht per Default der Master. Ja, das kann man herausfinden und das sollte auch gemacht werden. Reihenfolge: - zunächst so versuchen - wenn es nicht erfolgreich war, dann samba4/dc (wenn gesetzt) - wenn das auch nicht erfolgreich war im LDAP nach S4 DCs suchen und damit versuchen - erst abbrechen wenn das auch nicht erfolgreich war → interim-3
Das Joinscript arbeitet nun nach der beschriebenen Reihenfolge. Ein Changelog Eintrag wurde hinzugefügt.
In meinem Test funktioniert das nicht: + samba-tool domain join deadlock32.local DC -UAdministrator%univention --realm=DEADLOCK32.LOCAL --server backup322.deadlock32.local --machinepass=tH0SIUYF --keep-existing Failed to bind - LDAP error 1 LDAP_OPERATIONS_ERROR - <SASL:[GSS-SPNEGO]: Failed to get session info: NT_STATUS_ACCESS_DENIED> <> Failed to connect to 'ldap://backup322.deadlock32.local' with backend 'ldap': (null) ERROR(ldb): uncaught exception - None File "/usr/lib/python2.6/dist-packages/samba/netcmd/__init__.py", line 168, in _run return self.run(*args, **kwargs) File "/usr/lib/python2.6/dist-packages/samba/netcmd/domain.py", line 563, in run machinepass=machinepass, use_ntvfs=use_ntvfs, dns_backend=dns_backend) File "/usr/lib/python2.6/dist-packages/samba/join.py", line 1116, in join_DC machinepass, use_ntvfs, dns_backend, promote_existing, keep_existing) File "/usr/lib/python2.6/dist-packages/samba/join.py", line 79, in __init__ credentials=ctx.creds, lp=ctx.lp) File "/usr/lib/python2.6/dist-packages/samba/samdb.py", line 56, in __init__ options=options) File "/usr/lib/python2.6/dist-packages/samba/__init__.py", line 114, in __init__ self.connect(url, flags, options) File "/usr/lib/python2.6/dist-packages/samba/samdb.py", line 71, in connect options=options)
Created attachment 4785 [details] join.log join.log mit set -x im S4 Join Skript auf dem Slave
* Im univention-samba4 Joinscript wird jetzt generell kein Kerberos mehr zur Authentifikation beim Samba Domain join verwendet. * Falls samba4/dc in UCR gesetzt ist, wird jetzt nur noch genau diese Maschine verwendet. * Variablen-Deklaration für samba4/dc gibt es jetzt auch. Paket ist gerade für x86 gebaut, dauert für amd64 noch einem Moment. * Changelog Eintrag ergänzt: \item If Samba 4 cannot itself find a DC during a join the \ucsName{univention-samba4} joinscript will try joining against all DCs it an find in LDAP offering Samba 4 services in turn. The \ucsUCRV{samba4/dc} can be used to specify a server to join against instead. Kerberos will not be used during Samba domain join (\ucsBug{27469}).
Der Join Vorgang war grundsätzlich erfolgreich. Dabei sind weitere Bugs aufgefallen, die separat behandelt werden: Bug #29217 + Bug #28737 + Bug #29225.
UCS 3.1-0 has been released: http://forum.univention.de/viewtopic.php?f=54&t=2125 If this error occurs again, please use "Clone This Bug".