Univention-domain-join-cli für Ubuntu Problem

join

#1

Hallo allerseits,

ich arbeite gerade an einem opsi-Paket welches auf einem Ubuntu Rechner die Pakete aus
https://launchpad.net/~univention-dev/+archive/ubuntu/ppa installiert und dann
univention-domain-join-cli ausführt.
Das gibt eine DnsConfigurationException.
Meine Frage: Welche Vorausetzungen müssen gegeben sein damit das Funktioniert:
Muss der Rechner der gejoint werden soll dem master schon bekannt sein ?
Darf der Rechner zum Zeitpunkt des joins noch von einem anderen DHCP Server seinen (anderen) Nameserver zugewisen haben ?

Danke schonmal und Gruß aus Mainz nach Bremen
detlef oertel

Hier die Ausgabe:

root@ubuntu:/home/user# univention-domain-join-cli --username administrator --password linux123 --master-ip 172.16.166.111                        Warning: /etc/resolvconf/resolv.conf.d/base already exists.
Warning: /etc/ldap/ldap.conf already exists.
Warning: /etc/krb5.conf already exists.
Created a backup of all configuration files, that will be modified at '/var/univention-backup/20180411104732_domain-join'.
Writing /etc/resolvconf/resolv.conf.d/base
Applying new resolvconf settings.
Setting up DNS did not work. Try removing any DNS settings in the network-manager and give this tool the IP address of the DC master.
An error occurred. Please check /var/log/univention/domain-join-cli.log for more information.
root@ubuntu:/home/user# cat  /var/log/univention/domain-join-cli.log

2018-04-11 12:47:32,991 userinfo WARNING Warning: /etc/resolvconf/resolv.conf.d/base already exists.
2018-04-11 12:47:32,994 userinfo WARNING Warning: /etc/ldap/ldap.conf already exists.
2018-04-11 12:47:32,996 userinfo WARNING Warning: /etc/krb5.conf already exists.
2018-04-11 12:47:32,997 userinfo INFO Created a backup of all configuration files, that will be modified at '/var/univention-backup/20180411104732_domain-join'.
2018-04-11 12:47:33,005 userinfo INFO Writing /etc/resolvconf/resolv.conf.d/base
2018-04-11 12:47:33,006 userinfo INFO Applying new resolvconf settings.
2018-04-11 12:47:33,031 userinfo CRITICAL Setting up DNS did not work. Try removing any DNS settings in the network-manager and give this tool the IP address of the DC master.
2018-04-11 12:47:33,032 userinfo CRITICAL An error occurred. Please check /var/log/univention/domain-join-cli.log for more information.
2018-04-11 12:47:33,032 debugging CRITICAL
Traceback (most recent call last):
  File "/usr/sbin/univention-domain-join-cli", line 195, in <module>
    distribution_joiner.join_domain()
  File "/usr/lib/python2.7/dist-packages/univention_domain_join/distributions/ubuntu.py", line 95, in join_domain
    DnsConfigurator(self.nameservers, self.domain).configure_dns()
  File "/usr/lib/python2.7/dist-packages/univention_domain_join/join_steps/dns_configurator.py", line 75, in configure_dns
    self.check_if_dns_works()
  File "/usr/lib/python2.7/dist-packages/univention_domain_join/join_steps/dns_configurator.py", line 86, in check_if_dns_works
    raise DnsConfigurationException()
DnsConfigurationException
root@ubuntu:/home/user#

#2

Hallo,
ich würde jetzt ersteinmal prüfen, ob manuell ein DNS-Server eingestellt wurde, da die Fehlermeldung das vermuten lässt. Wie lautet denn die Ausgabe von nmcli? Mit welcher Ubuntu Version ist das Problem denn aufgetreten?

Prinzipiell darf der Nameserver nicht gesetzt sein, da univention-domain-join-cli diesen selbst setzt.

Beste Grüße


#3

Hallo ulmer,

Danke für die Antwort.

Der Rechner wurde automatisiert per opsi aufgesetzt ist also eine Standard Netzwerkinstallation.
Der opsi Server und der DHCP-Server sind nicht der UCS Master und auch keine Mitglieder der UCS Domain.
Der UCS-Master kennt den Ubuntu Rechner noch nicht.
Das Netzwerkinterface ist per DHCP konfiguriert und von da kommt auch die DNS Konfiguration.
Es wurde nichts weiter Manuell konfiguriert.
Das ist ja eher ein standard setup.
Das ganze ist ein Ubuntu 16.04.4 LTS
Hier die /etc/network/interfaces:

# cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto enp0s3
iface enp0s3 inet dhcp

Der output von nmcli mit verschiedenen Optionen ist.

root@ubuntu:/home/user# nmcli g
STATUS     KONNEKTIVITÄT  WLAN-HW    WLAN       WWAN-HW    WWAN
verbunden  kein           aktiviert  aktiviert  aktiviert  aktiviert
root@ubuntu:/home/user# nmcli n
aktiviert
root@ubuntu:/home/user# nmcli c
NAME  UUID  TYP  GERÄT
root@ubuntu:/home/user# nmcli d
GERÄT   TYP       STATUS           VERBINDUNG
enp0s3  ethernet  nicht verwaltet  --
lo      loopback  nicht verwaltet  --
root@ubuntu:/home/user#

Ich hoffe ich habe alle gestellten Fragen hinreichend vollständig beantwortet.

Bedeutet die Aussage:

Prinzipiell darf der Nameserver nicht gesetzt sein, da univention-domain-join-cli diesen selbst setzt.

das zum Zeitpunkt des Aufrufs von univention-domain-join-cli keinen DNS kennen darf ?
Für den Fall das dem so ist habe ich dei /etc/resolv.conf geleert.
DNS ging nicht mehr - und dann den Befehl wieder ausgeführt.
Exact das selbe ergebnis wie schon mal gepostet.
Die /etc/resolv.conf enthält danach wieder 2 nameserver: den vom dhcp mitgeteilten und den
UCS Master.

Da meine Fragen nicht beantwortet wurden, stelle ich sie einfach nochmal:
Meine Frage: Welche Vorausetzungen müssen gegeben sein damit das Funktioniert:
Muss der Rechner der gejoint werden soll dem master schon bekannt sein ?
Darf der Rechner zum Zeitpunkt des joins noch von einem anderen DHCP Server seinen (anderen) Nameserver zugewisen haben ?

Ich stelle diese Fragen nicht um euch zu ärgern. Und hier geht es nicht darum einen bestimmten Rechner zu joinen,
Es geht darum ein Paket zu bauen welche automatisiert Ubuntu Rechner Joinen kann weit gehend unabhängig davon wie das setup ist.

gruß
detlef oertel


#4

Muss der Rechner der gejoint werden soll dem master schon bekannt sein ?

Der Client muss dem master nicht vorher bekannt sein, kann er aber.

Darf der Rechner zum Zeitpunkt des joins noch von einem anderen DHCP Server seinen (anderen) Nameserver zugewisen haben ?

Das Problem ist vermutlich, der Nameserver, der per DHCP gesetzt wurde. In der Entwicklung wurde das Szenario mit zusätzlichem DHCP Server nicht getestet. Ich vermute, dass der DNS-Server, der vom DHCP-Server vorgegeben wird, vorzug erhält gegenüber der Einstellung, die das Tool unter /etc/resolvconf/resolv.conf.d/base einträgt. Wir werden das prüfen. Danke für den Hinweis!


#5

Hallo Ulmer,

danke für die Antwort.
Ich warte dann also mit weiteren Arbeiten bis es neues von euch gibt…

gruß
detlef oertel


#6

Hallo Bremer Kollegen,

ich habe ja schon die Frage gestellt:
Welche Vorausetzungen müssen gegeben sein damit das Funktioniert ?

Zwar mangelt es noch an Antworten aber man lernt ja auch durch probieren:
Ich habe ein ubuntu 16.04 mit KDE per opsi vom ucs-master aus installiert:

 univention-domain-join-cli --username Administrator --password linux123 --master-ip 172.16.166.111
Error: Can't enable login with the login manager of your system.
       Please use LightDM or GDM for full compatibility with UCS.
Joining the UCS domain is not safely possible.
Please resolve all problems and run this tool again.
An error occurred. Please check /var/log/univention/domain-join-cli.log for more information.
root@ubuntu:/home/user# echo $?
0

Fragen:
Das wichtigste zuerst:
Könnt Ihr das bitte, bitte so bauen, das wenn das script scheitert keinen Exitcode 0 zurückgibt !?
Verstehe ich das richtig das ein Desktoppaket installiert sein muß ?
Das die art des desktoppaketes (lubuntu,xubuntu,kubuntu,ubuntu,gnome) eigentlich egal ist, hauptsache der Windowmanager ist lightdm oder GDM ?

gruß aus Mainz


#7

Hallo @opsi4ucs ,

Wir dokumentieren die Vorraussetzung für die Verwendung des Univention Domain Join Tools in der README Datei. Wir werden hier die unterstützen Desktopumgebungen hinzufügen.

Im Übrigen haben wir die DNS-Konfiguration inzwischen angepasst. Wenn dem Domain Join Assistenten die IP Adresse des Masters übergeben wird, sollte der Join nun immer funktionieren. Der Assistent konfiguriert dann den NetworkManager so um, dass die IP Adresse des Masters der primäre DNS Server ist.

Wenn die UCS Domäne angegeben wird, muss sichergestellt sein, dass der vom Benutzer konfigurierte DNS Server darüber den UCS Master finden kann. Es wird dabei versucht, den DNS Eintrag _domaincontroller_master._tcp.<domainname> aufzulösen.

univention-domain-join-cli versucht den Login Manager so zu konfigurieren, dass man sich auch als Domäne-Benutzer anmelden kann. Wir haben das Tool mit Fokus auf die Desktopumgebungen Unity (bis Ubuntu 17.10) und Gnome (ab Ubuntu 17.10) geschrieben. Alternative Desktopumgebungen werden derzeit nicht unterstützt.

Man kann aber mit dem Parameter --skip-login-manager die Konfiguration des Login Managers überspringen. Somit kann man das Tool auch mit nicht unterstützten Desktopumgebungen ausprobieren. Eventuell funktioniert das auch auf Headless Systemen, das haben wir allerdings nicht getestet. Unter Umständen funktioniet der Login als Domäne-Benutzer dann sogar, wenn der Login Manager das ohne weitere Konfiguration unterstützt.

Das werden wir einbauen. Danke für den Hinweis!

Viele Grüße
Richard Ulmer


#8

Hallo,

Dazu gibt es jetzt https://forge.univention.org/bugzilla/show_bug.cgi?id=46889.

Gruß, Nico.


#9

Hallo Zusammen, ich versuche hier gerade eine Linux Mint Workstation (19 Cinnamon) anzubinden. Die Fehlermeldung die ich bekomme, ist identisch mit der oben, nur dass eben in der “linuxmint.py” auf die Zeile 95 gezeigt wirde:

2018-10-11 19:33:42,563 userinfo WARNING Warning: /etc/ldap/ldap.conf already exists.
2018-10-11 19:33:42,564 userinfo WARNING Warning: /etc/krb5.conf already exists.
2018-10-11 19:33:42,565 userinfo INFO Created a backup of all configuration files, that will be modified at '/var/univention-backup/20181011173342_domain-join'.
2018-10-11 19:33:42,599 userinfo INFO Configuring ipv4 DNS servers for enp2s0.
2018-10-11 19:33:42,635 userinfo INFO Applying new settings to enp2s0.
2018-10-11 19:33:43,928 userinfo CRITICAL Setting up DNS did not work. Try removing any DNS settings in the network-manager and give this tool the IP address of the DC master.
2018-10-11 19:33:43,929 userinfo CRITICAL An error occurred. Please check /var/log/univention/domain-join-cli.log for more information.
2018-10-11 19:33:43,929 debugging CRITICAL 
Traceback (most recent call last):
  File "./usr/sbin/univention-domain-join-cli", line 195, in <module>
    distribution_joiner.join_domain()
  File "/usr/lib/python2.7/dist-packages/univention_domain_join/distributions/linuxmint.py", line 95, in join_domain
    DnsConfigurator(self.nameservers, self.domain).configure_dns()
  File "/usr/lib/python2.7/dist-packages/univention_domain_join/utils/general.py", line 40, in root_wrapper
    return_value = func(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/univention_domain_join/join_steps/dns_configurator.py", line 82, in configure_dns
    self.check_if_dns_works()
  File "/usr/lib/python2.7/dist-packages/univention_domain_join/join_steps/dns_configurator.py", line 93, in check_if_dns_works
    raise DnsConfigurationException()
DnsConfigurationException


Was mich wundert: Wenn das Skript läuft, trägt es genau die richtigen Werte für DNS in den Networkmanager ein.

Im Terminal bekomme ich den gleichen Fehler. So haben wir probiert:

./usr/sbin/univention-domain-join-cli --master-ip 192.168.100.110 --skip-login-manager

Hat jemand eine Idee?