Univention Bugzilla – Bug 22559
Samba 4 Pakete für UCS 3.0
Last modified: 2017-12-06 10:26:46 CET
Für UCS 3.0 sollen Samba 4 Pakete gebaut werden.
Eine erste Version von Samba 4 ist gebaut: alpha15. Dem Paket samba4 fehlt eine Abhängigkeit auf winbind4, siehe auch: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=623327 Ansonsten startet das postinst von Samba4 direkt den Versuch die Samba 3 Konfiguration und die Daten zu migrieren. Das ging zumindest auf meinem aktuellen System nicht.
Wir haben in UCS 2 immer noch python-samba gebaut. Das war Upstream nicht der Fall. In Samba 4 wird aber wieder ein python-samba Paket mitgebracht. Die Versionsnummer des Samba 3 Pakets aus UCS 2 ist allerdings höher, da die Epoche auf 2 gesetzt ist: root@ucs3:~# apt-cache policy python-samba python-samba: Installiert: 4.0.0~alpha15.dfsg1-1.36.201105181215 Kandidat: 2:3.3.10-1.412.201002111221 Versionstabelle: 2:3.3.10-1.412.201002111221 0 500 http://univention-repository.knut.univention.de/2.4/maintained/ 2.4-0/i386/ Packages 2:3.3.10-1.409.201002041830 0 500 http://univention-repository.knut.univention.de/2.3/maintained/ 2.3-1/i386/ Packages 2:3.3.9-1.400.200912092145 0 500 http://univention-repository.knut.univention.de/2.3/maintained/ 2.3-0/i386/ Packages 2:3.2.13-1.378.200906251416 0 500 http://univention-repository.knut.univention.de/2.2/maintained/ 2.2-2/i386/ Packages 2:3.2.8-1.334.200902131313 0 500 http://univention-repository.knut.univention.de/2.2/maintained/ 2.2-0/i386/ Packages 2:3.0.30-3.317.200812021037 0 500 http://univention-repository.knut.univention.de/2.1/maintained/ 2.1-2/i386/ Packages 2:3.0.30-3.294.200806190742 0 500 http://univention-repository.knut.univention.de/2.1/maintained/ 2.1-0/i386/ Packages *** 4.0.0~alpha15.dfsg1-1.36.201105181215 0 500 http://192.168.0.10/build2/ ucs_3.0-0/i386/ Packages
Das univention-samba4 Paket aus dem samba4 Scope wurde jetzt auch übernommen, an UCS 3.0 angepasst und gebaut.
Im Rahmen dieses Bugs sollten die Samba 4 Basistests durchgeführt werden.
Aktuell haben wir alpha15 für UCS 3.0 gebaut. Seit dem 24.06. ist alpha16 verfügbar. Mein Vorschlag ist, dass wir mit UCS 3.0 MS 1 zunächst auf alpha15 bleiben. Für die Basisfunktionalitäten, die wir mit MS 1 zeigen wollen, sollte das ausreichen. Wir könnten die Pakete jetzt auch auf alpha16 aktualisieren, aber zu MS2 müssen wir die Pakete eh nochmal aktualisieren. Sollte es grundsätzliche Probleme mit alpha15 geben, die uns zu irgendwelchen Workarounds zwingen, dann sollten wir noch auf alpaha16 aktualisieren.
Das samba4 Paket wurde mit folgenden Kommandos auf -alpha16 upgadated: cd samba4-4.0.0~alpha15.dfsg1 dch -v 4.0.0~alpha16.dfsg1-1 "New upstream release." bash debian/build-orig.sh mv samba4_4.0.0~alpha16.dfsg1.orig.tar.gz .. dpkg-buildpackage -S Dadurch wird der alpha16 tar-ball von ftp.samba.org gezogen und das Paket upgedatet. Von den Paketen aus Bug #22136 Comment 2 wurde zusätzlich noch das tevent Quellpaket (mehr oder weniger per uscan) auf die upstream Version 0.9.12 upgedatet.
Beim Versuch auf einem amd64 Samba4 zu installieren: univention-install univention-samba4 winbind4 [...] samba4 (4.0.0~alpha16.dfsg1-1.37.201107061409) wird eingerichtet ... Administrator password will be set randomly! [...] Traceback (most recent call last): File "/usr/share/samba/setup/provision", line 181, in <module> lp = sambaopts.get_loadparm() File "/usr/lib/python2.6/dist-packages/samba/getopt.py", line 82, in get_loadparm self._lp.load_default() RuntimeError: Unable to load default file dpkg: Fehler beim Bearbeiten von samba4 (--configure): Unterprozess installiertes post-installation-Skript gab den Fehlerwert 1 zurück dpkg: Abhängigkeitsprobleme verhindern Konfiguration von univention-samba4:
(In reply to comment #7) > Beim Versuch auf einem amd64 Samba4 zu installieren: > > univention-install univention-samba4 winbind4 > [...] > samba4 (4.0.0~alpha16.dfsg1-1.37.201107061409) wird eingerichtet ... > Administrator password will be set randomly! > [...] > Traceback (most recent call last): > File "/usr/share/samba/setup/provision", line 181, in <module> > lp = sambaopts.get_loadparm() > File "/usr/lib/python2.6/dist-packages/samba/getopt.py", line 82, in > get_loadparm > self._lp.load_default() > RuntimeError: Unable to load default file > dpkg: Fehler beim Bearbeiten von samba4 (--configure): > Unterprozess installiertes post-installation-Skript gab den Fehlerwert 1 > zurück > dpkg: Abhängigkeitsprobleme verhindern Konfiguration von univention-samba4: Wenn nur der Inhalt aus dem Template 10global in der smb.conf vorhanden ist, dann funktioniert es. Zusätzlich muss die base.conf eingebunden sein, ansonsten fehlt das Netlogon Share.
Aus scripts/setup-s4.sh: S3_DOMAIN_SID="$(ldapsearch -x objectclass=sambadomain sambaSID | sed -n 's/sambaSID: \(.*\)/\1/p')" Dafür sollte der Hostaccount verwendet werden, da der Zugriff nicht mehr möglich ist. Der LDAP Port sollte auch ausgewertet werden.
Aus der Datei /var/log/univention/samba4-provision.log: /usr/share/univention-samba4/scripts/setup-s4.sh: Zeile 132: /usr/sbin/provision: Datei oder Verzeichnis nicht gefunden root@qamaster:~# dpkg -L samba4 | grep -i provision$ /usr/share/samba/setup/provision /usr/share/samba/setup/upgradeprovision root@qamaster:~#
Eine Abhängigkeit auf samba4-clients scheint zu fehlen, zumindest in univention-samba4 sollte die Abhängigkeit vorhanden sein.
Zu Comment 2 : Ich habe das samba4 Quellpaket jetzt so gepatched, dass es das Binary-Paket python-samba4 baut, das python-samba provides+conflicts+replaces. Der Upstream angelegte Bug http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=633841 wurde leider als wontfix geschlossen: -------- This would be inconvenient since the python package is actually called "samba". It would also mean we would need a transition in Debian to move from python-samba to python-samba4. The python bindings in Samba 3 were disabled for a good reason. Debian didn't ship a python-samba in squeeze, and python-samba in lenny didn't have an epoch yet so it should be fine for us to use that name now. -------- Wenn sich upstream anhand der Paketierung von samba4 alpha17 abzeichnet, wie mit den anderen source3 binary-Packages libsmbclient, libpam-smbpass, winbind, swat, smbclient verfahren wird, kann man den Patch ggf. nochmal überdenken.
Der UCS Installer sollte dann Samba 3 und Samba 4 Pakete zur Auswahl anbieten.
Ich habe noch einige Libraries ins Paket samba4 installiert. Im postinst von univention-samba4 wird jetzt der Samba Debug Level gesetzt, ansonsten stürzen die Programme ab. Im Installer steht Samba 4 jetzt auch zur Auswahl.
Beim Starten eines neuen UCS 3.0 Systems kommen diese Meldungen: Starting Samba 4 daemon: sambaUnknown parameter encountered: "setup directory" Ignoring unknown parameter "setup directory" Unknown parameter encountered: "set quota command" Ignoring unknown parameter "set quota command" .
"setup directory" ist jetzt entfernt. "set quota command" wird durch univention-quota in smb.conf gesetzt, d.h. /usr/sbin/univention-setquota wird nicht mehr aufgerufen.
Unschön ist zur Zeit noch, dass die ldb-tools die Module aus dem samba4 Paket nicht finden. Als Workaround muss man zur Zeit z.B. für den Aufruf von ldbedit die entsprechende Environmentvariable setzen: LDB_MODULES_PATH=/usr/lib/ldb ldbedit Ggf. reicht es hier auch svn/patches/samba4/3.0-0-0-ucs/4.0.0~alpha17~git201107201012-1/16_fix_fhs_modulesdir.patch zu entfernen oder anzupassen (wenn man nicht das ldb Quellpaket anpassen will).
Wir sollten spätestens Anfang Oktober die Samba4 Basis Version importieren. Falls zu dem Zeitpunkt nichts zu erwarten ist, können wir die Version auch schon zum zweiten Meilenstein importieren.
Wenn Samba Debug aktiviert ist, dann bekommt man beim Samba Restart Meldungen auf die Console ausgegeben: root@master5:~# ucr get samba/debug/level 9 root@master5:~# /etc/init.d/samba4 restart Stopping Samba 4 daemon: samba. Starting Samba 4 daemon: sambaINFO: Current debug levels: all: 9 tdb: 9 printdrivers: 9 lanman: 9 smb: 9 rpc_parse: 9 rpc_srv: 9 rpc_cli: 9 passdb: 9 sam: 9 auth: 9 winbind: 9 vfs: 9 idmap: 9 quota: 9 acls: 9 locking: 9 msdfs: 9 dmapi: 9 registry: 9 params.c:pm_process() - Processing configuration file "/etc/samba/base.conf" Processing section "[homes]" Processing section "[groups]" Processing section "[printers]" Processing section "[print$]" Processing section "[netlogon]" Processing section "[sysvol]" params.c:pm_process() - Processing configuration file "/etc/samba/installs.conf" params.c:pm_process() - Processing configuration file "/etc/samba/shares.conf" params.c:pm_process() - Processing configuration file "/etc/samba/printers.conf" params.c:pm_process() - Processing configuration file "/etc/samba/local.conf" pm_process() returned Yes . root@master5:~#
In der packages_list.py im Installer habe ich Samba4 für den Memberserver deaktiviert.
Die Samba4-Debian-Pakete (pre-Alpha17 git-Snapshot) lassen sich installieren und das Metapaket univention-samba4 konfiguriert Samba4: Auf dem ersten Domaincontroller, auf dem der Service "Samba 4" bereitgestellt wird, wird aus dem Joinscript heraus das Samba4-provision-Skript gestartet. Jeder weitere Domaincontroller, auf dem Samba4 installiert wird, joined dann in die bestehende Domäne. Standardmäßig werden alle Domaincontroller als samba4/role=DC installiert. Der Join als samba4/role=MEMBER wird von Seiten des Samba-Teams zumindest bis Alpha17 nicht empfohlen, daher wird im univention-installer auf Memberservern aktuell kein Samba4 in der Software-Auswahl angeboten. Das init.d Skript 'samba4' ist per repo-ng .patch so angepasst, dass stdout-Meldungen des 'samba'-Daemon unterdrückt werden (siehe Comment 19).
Bitte den Debug Level per Default auf 1 oder 2 setzen, dann bekommt man zumindest offensichtliche Fehler mit, beispielsweise wenn die Uhrzeiten nicht stimmen.
Da samba/debug/level schon gesetzt sein kann gibt es jetzt samba4/debug/level mit default-Wert 2.
(In reply to comment #23) > Da samba/debug/level schon gesetzt sein kann gibt es jetzt samba4/debug/level > mit default-Wert 2. OK (In reply to comment #21) > Das init.d Skript 'samba4' ist per repo-ng .patch so angepasst, dass > stdout-Meldungen des 'samba'-Daemon unterdrückt werden (siehe Comment 19). OK (In reply to comment #21) > Auf dem ersten Domaincontroller, auf dem der Service "Samba 4" bereitgestellt > wird, wird aus dem Joinscript heraus das Samba4-provision-Skript gestartet. > Jeder weitere Domaincontroller, auf dem Samba4 installiert wird, joined dann in > die bestehende Domäne. Standardmäßig werden alle Domaincontroller als > samba4/role=DC installiert. Das funktioniert auch soweit.
(In reply to comment #21) > Auf dem ersten Domaincontroller, auf dem der Service "Samba 4" bereitgestellt > wird, wird aus dem Joinscript heraus das Samba4-provision-Skript gestartet. > Jeder weitere Domaincontroller, auf dem Samba4 installiert wird, joined dann in > die bestehende Domäne. Standardmäßig werden alle Domaincontroller als > samba4/role=DC installiert. Es müsste auch noch RODC implementiert werden. Kann das "einfach" hinzugefügt werden? Ansonsten einen neuen Bug gegen den UCS 3.0 RC anlegen. samba4/role wird nur im Joinskript ausgewertet, nicht aber in der smb.conf. Absicht?
> Es müsste auch noch RODC implementiert werden. Kann das "einfach" hinzugefügt werden? Ansonsten einen neuen Bug gegen den UCS 3.0 RC anlegen. Es gibt jetzt einen Fall für samba4/role=RODC im Joinscript. Dort werden dann auch nur die RODC-spezifischen DNS-Objekte angelegt. > samba4/role wird nur im Joinskript ausgewertet, nicht aber in der smb.conf. Absicht? Das ist jetzt angepasst. Auf RODCs ist sysvol und netlogon dann nicht schreibbar und auf MEMBER wird netlogon und sysvol deaktiviert.
OK. RODC funktioniert auch, Vorgehen war: ucr set samba4/role=RODC univention-install univention-samba4 univention-run-join-scripts
UCS 3.0-0 wurde veröffentlicht. Sollte der hier beschriebene Bug mit einer neueren Version von UCS erneut auftreten, so sollte dieser Bug dupliziert werden: "Clone This Bug"