KVM Host einrichten ohne Domain

virtualization
german

#1

Hallo zusammen,

ich bin gerade dabei eine neue Infrastruktur mit UCS aufzusetzen und habe ein Henne/Ei Problem.
Auf dem physischen KVM Host sollen insgesamt 2 virtuelle Server laufen, u.a. der DC Master. Jetzt ist mein Problem, dass ich die KVM Rolle bei der Installation auf dem Host nicht auswählen kann ohne gleichzeitig eine vollständige Domain einzurichten. Der DC Master soll aber eben gerade virtualisiert werden und nicht zusammen auf dem KVM Host laufen.

Aus der Hyper V Welt kommend hat sich das Problem bisher für mich nicht gestellt, dort konnte man einfach den Virtualiserungshost einrichten und später in die entsprechende Domain joinen.

Geht das mit UCS auch irgendwie ?

Danke schon mal und viele Grüße,
Ludwig


Domainjoin UCS-Slave nicht möglich
Domainjoin UCS-Slave nicht möglich
#2

Hallo,

in der Wiki gibt es einen Artikel Run a virtualized Domain Controller Master with UVMM der beschreibt wie man vorgehen kann.

Viele Grüße,
Dirk Ahrnke


#3

Super ! Vielen Dank, das war genau was ich gesucht habe.

Schöne Grüße,
Ludwig


#4

Hallo,

eine Frage zum Thema Storage Formate habe ich noch.

Über UVMM lässt sich aktuell als Image Format für die virtuelle Maschine entweder raw oder qcow2 auswählen. Sehe ich das richtig, dass über UVMM daher aktuell die direkte Zuweisung eines LVM Volumes zu einer Maschine nicht möglich ist ? Kann diese Option über die Konsole nach wie vor konfiguriert werden ? Hintergrund ist der, dass ich gerne aus Performance Gründen auf die Verwendung von Images für die virtuellen Server verzichten möchte.

Grüße,
Ludwig


#5

Ich kenne im Kontext nur noch die Extended virtualization documentation. Das ist aber vermutlich nicht das, was Sie suchen.

Es könnte sinnvoll sein, den Ergänzungswunsch in der Feedback-Sektion hier im Forum oder über univention.de/produkt-feedback/ zu formulieren.

Viele Grüße,
Dirk Ahrnke


#6

Zum Thema direkte Verwendung von LVM Volumes: Ja, es geht.
Die Definition sieht wie folgt aus, wobei VM_XXXX das vorher erstellte logical Volume ist das verwendet werden soll:

<disk type='block' device='disk'> <driver name='qemu' type='raw' cache='none'/> <source dev='/dev/vg_ucs/vm_XXXX'/> <target dev='vda' bus='virtio'/> </disk>

Zum Thema KVM Host einrichten ohne DC Master folgende Ergänzung:
Geht auch :slight_smile:
Allerdings sollte in die Anleitung dringend mit aufgenommen werden, dass der Hypervisor wenn man so vorgeht nicht starten kann aufgrund des noch fehlenden Zertifikats.
Das Problem ist hier beschrieben http://wiki.libvirt.org/page/The_daemon_cannot_be_started und lässt sich durch temporäres ausschalten der TLS Verbindung für das Setup umgehen.

Grüße,
Ludwig


#7

Beim letzten Schritt, dem Domain Join des KVM Hosts an den neu installierten DC Master gibt es nun doch noch ein Problem:

univention-join bricht ab bei 03univention-directory-listener.inst !
Aus dem join.log ist zu entnehmen, dass der ldap server nicht gestartet werden konnte aufgrund einer fehlerhaften slapd.conf analog diesem Problem hier https://forge.univention.org/bugzilla/show_bug.cgi?id=40259

line 109:  unknown attr "@univentionVirtualMachine" .... slapschema: bad configuration file!. 

Wie kann das weitere Vorgehen aussehen ? Aktuell gibt es keine Möglichkeit für den KVM Host erfolgreich der Domain beizutreten um den UVMM zu nutzen.

Grüße,
Ludwig


#8

Hast dies auch auf dem Master ausgeführt?

univention-add-app uvmm -m
univention-add-app kvm -m

Außerdem hätte ich gerne das vollständige Log.


#9

Ja, das wurde auf dem Master erfolgreich ausgeführt und im LDAP gibt es den “Virtual Machine Manager” auch als Objekt.

Folgendes ist nun die Ausgabe zum Join:

[code]root@ucsSlave:~# univention-join
univention-join: joins a computer to an ucs domain
copyright © 2001-2016 Univention GmbH, Germany

Enter DC Master Account : Administrator
Enter DC Master Password:

Search DC Master: done
Check DC Master: done
Stop LDAP Server: done
Search ldap/base done
Start LDAP Server: done
Search LDAP binddn done
Sync time: done
Join Computer Account: done
Stopping univention-directory-listener daemon: done
Sync ldap-backup.secret: done
Check TLS connection: done
Download host certificate: done
Restart LDAP Server: done
Sync Kerberos settings: done
Not updating kerberos/adminserver
Configure 01univention-ldap-server-init.inst done
Configure 03univention-directory-listener.inst failed


  • Join failed! *
  • Contact your system administrator *

  • Message: FAILED: 03univention-directory-listener.inst

[/code]

Und im join Log steht dazu folgendes:

[code]
Mon Nov 7 19:29:48 CET 2016: starting /usr/sbin/univention-join
running version check
OK: UCS version on ucsMaster.intern.domain.com is higher or equal (4.13) to the local version (4.13).
Stopping ldap server(s): slapd …done.
Starting ldap server(s): slapd …failed.
5820c841 /etc/ldap/slapd.conf: line 109: unknown attr “@univentionVirtualMachine” in to clause 5820c841 ::= access to [ by [ ] [ ] ]+ ::= * | dn[.<dnst$
Mon Nov 7 19:30:26 CET 2016
univention-server-join: joins a server to an univention domain
copyright © 2001-2016 Univention GmbH, Germany

ldap_dn=“cn=ucsSlave,cn=dc,cn=computers,dc=intern,dc=domain,dc=com”
Setting ldap/hostdn
Multifile: /etc/ldap/slapd.conf
Multifile: /etc/postfix/ldap.virtualwithcanonical
File: /etc/pam_ldap.conf
Multifile: /etc/postfix/ldap.virtual
Multifile: /etc/postfix/ldap.canonicalrecipient
Multifile: /etc/postfix/ldap.transport
File: /etc/libnss-ldap.conf
Multifile: /etc/postfix/ldap.saslusermapping
Multifile: /etc/postfix/ldap.virtualdomains
Multifile: /etc/postfix/ldap.distlist
Multifile: /etc/postfix/ldap.groups
File: /etc/pam.d/smtp
Multifile: /etc/postfix/ldap.sharedfolderlocal
File: /etc/cron.d/univention-directory-policy
Multifile: /etc/postfix/ldap.sharedfolderremote
Multifile: /etc/postfix/ldap.canonicalsender
ok: down: univention-directory-listener: 1515s
Setting ldap/server/name
Setting ldap/server/ip
Not updating ldap/server/port
Setting ldap/master
Not updating ldap/master/port
Setting ldap/server/type
Multifile: /etc/ldap/slapd.conf
Multifile: /etc/postfix/ldap.virtualwithcanonical
File: /etc/pam_ldap.conf
File: /etc/krb5.conf
Multifile: /etc/postfix/ldap.virtual
Multifile: /etc/postfix/ldap.canonicalrecipient
Multifile: /etc/postfix/ldap.transport
File: /etc/libnss-ldap.conf
Multifile: /etc/postfix/ldap.saslusermapping
Multifile: /etc/postfix/ldap.virtualdomains
Multifile: /etc/postfix/ldap.distlist
Multifile: /etc/postfix/ldap.groups
File: /etc/pam.d/smtp
Multifile: /etc/postfix/ldap.sharedfolderlocal
File: /etc/init.d/slapd
File: /etc/default/ntpdate
File: /etc/nagios/nrpe.cfg
Multifile: /etc/postfix/ldap.sharedfolderremote
File: /etc/ntp.conf
Multifile: /etc/postfix/ldap.canonicalsender
File: /etc/ldap/ldap.conf
Could not chdir to home directory /dev/null: Not a directory
Could not chdir to home directory /dev/null: Not a directory
Restarting ldap server(s).
Stopping ldap server(s): slapd …done.
Starting ldap server(s): slapd …failed.
5820c845 /etc/ldap/slapd.conf: line 109: unknown attr “@univentionVirtualMachine” in to clause 5820c845 ::= access to [ by [ ] [ ] ]+ ::= * | dn[.<dnst$
Not updating ldap/server/name
Not updating ldap/master
Setting kerberos/realm
File: /etc/krb5.conf
File: /etc/heimdal-kdc/kdc.conf
Setting windows/domain
File: /etc/krb5.conf
Setting dns/forwarder1
File: /etc/bind/named.conf.proxy
File: /etc/bind/named.conf.samba4
Setting dns/forwarder2
File: /etc/bind/named.conf.proxy
File: /etc/bind/named.conf.samba4
Configure 01univention-ldap-server-init.inst Mon Nov 7 19:30:31 CET 2016
2016-11-07 19:30:31.064333901+01:00 (in joinscript_init)
Starting ldap server(s): slapd …failed.
5820c847 /etc/ldap/slapd.conf: line 109: unknown attr “@univentionVirtualMachine” in to clause 5820c847 ::= access to [ by [ ] [ ] ]+ ::= * | dn[.<dnst$
invoke-rc.d: initscript slapd, action “start” failed.
2016-11-07 19:30:31.270529302+01:00 (in joinscript_save_current_version)
Configure 03univention-directory-listener.inst Mon Nov 7 19:30:31 CET 2016
2016-11-07 19:30:31.280251034+01:00 (in joinscript_init)
Setting ldap/database/ldbm/dbsync
Multifile: /etc/ldap/slapd.conf
07.11.16 19:30:31.558 DEBUG_INIT
07.11.16 19:30:31.570 LISTENER ( WARN ) : address resolution of ucsMaster.intern.domain.com failed with errorcode -2: Name or service not known
07.11.16 19:30:31.570 LISTENER ( ERROR ) : can not connect any server, exit
Setting ldap/database/ldbm/dbsync
Multifile: /etc/ldap/slapd.conf
Restarting ldap server(s).
Stopping ldap server(s): slapd …done.
Starting ldap server(s): slapd …failed.
5820c856 /etc/ldap/slapd.conf: line 109: unknown attr “@univentionVirtualMachine” in to clause 5820c856 ::= access to [ by [ ] [ ] ]+ ::= * | dn[.<dnst$
Mon Nov 7 19:30:46 CET 2016: finish /usr/sbin/univention-join[/code]

Warum eine Warnung für die Adressauflösung zum ucs Master auftaucht kann ich nicht sagen, die Adresse ist auf jeden Fall problemlos anpingbar / auflösbar.

Grüße,
Ludwig


#10

Ich würd mal die fragliche Zeile 109 aus der /etc/ldap/slapd.conf entfernen und den Join erneut probieren.


#11

Naja, /etc/ldap/slapd.conf wird beim Join automatisch generiert mit den Informationen welche vom DC Master abgerufen werden. Das macht schon auch Sinn.

Ich bin aber mittlerweile eine Schritt weiter: Die fragliche Zeile beschäftigt sich mit Objekttypen welche zum Virtual Machine Manager gehören. Der Fehler tritt auf weil diese Typen offenbar nicht bekannt sind. Ich hab auf dem DC Master gespikt, dort ist in der slapd.conf folgendes enthalten:
include /usr/share/univention-ldap/schema/univention-virtual-machine-manager.schema

-> [code]
In /var/lib/univention-ldap/schema.conf

include /usr/share/univention-ldap/schema/univention-virtual-machine-manager.schema

einfügen.
[/code]

Dann wird beim ausführen des Join Skripts und damit beim automatischen Erzeugen der slapd.conf der include hart mit hinzugefügt.
Und siehe da, schon startet der ldap Dienst.

ABER: Zu früh gefreut, LDAP läuft zwar jetzt der Join bricht aber immer noch ab:

[code]Setting ldap/database/ldbm/dbsync
Multifile: /etc/ldap/slapd.conf

  • /usr/sbin/univention-directory-listener -i -d 4 -h ucsMaster.intern.domain.com -b dc=intern,dc=domain,dc=com -m /usr/lib/univention-directory-listener/system -c /var/lib/univention-directory-listener -o -ZZ -x $
    07.11.16 21:30:48.234 DEBUG_INIT
    07.11.16 21:30:48.235 LISTENER ( INFO ) : purging cache
    07.11.16 21:30:48.235 LDAP ( INFO ) : connecting to ldap://ucsMaster.intern.domain.com:7389/
    07.11.16 21:30:48.243 LDAP ( INFO ) : simple_bind as cn=ucsSlave,cn=dc,cn=computers,dc=intern,dc=domain,dc=com
    07.11.16 21:30:48.248 LISTENER ( INFO ) : connecting to notifier ucsMaster.intern.domain.com:6669
    07.11.16 21:30:48.248 LISTENER ( WARN ) : address resolution of ucsMaster.intern.domain.com failed with errorcode -2: Name or service not known
    07.11.16 21:30:48.248 LISTENER ( ERROR ) : can not connect any server, exit
  • exit_status=1
  • univention-config-registry set ldap/database/ldbm/dbsync=
    Setting ldap/database/ldbm/dbsync
    Multifile: /etc/ldap/slapd.conf
  • sleep 15
  • ‘[’ -f /etc/init.d/slapd ‘]’
  • /etc/init.d/slapd restart
    Restarting ldap server(s).
    Stopping ldap server(s): slapd …done.
    Starting ldap server(s): slapd …done.
  • ‘[’ 1 ‘!=’ 0 ‘]’
  • exit 1
  • ‘[’ 1 -ne 0 ‘]’
  • echo -e ‘\033[60Gfailed’
    ++ basename /usr/lib/univention-install/03univention-directory-listener.inst
  • failed_message ‘FAILED: 03univention-directory-listener.inst’[/code]

Sowohl Port 7389 als auch 6669 auf ucsMaster.intern.domain.com sind vom ucsSlave aus per Telnet erreichbar und es wird eine Verbindung hergestellt.


#12

[quote=“lw3234”]Naja, /etc/ldap/slapd.conf wird beim Join automatisch generiert mit den Informationen welche vom DC Master abgerufen werden. Das macht schon auch Sinn.
[/quote]

Jas stimmt natürlich. Ich habe vorhin anscheinend nicht richtig geguckt. Der Fehgeschlagene Start des splad passierte ja erst in 03univention-directory-listener.inst

Hm so mal als Schuß ins Blaue: Spukt da vielleicht eine fehlerhafte IPv6-Konfiguration rum?


#13

[quote]
Hm so mal als Schuß ins Blaue: Spukt da vielleicht eine fehlerhafte IPv6-Konfiguration rum?[/quote]

So ähnlich, jetzt war der Post schneller als ich schreiben konnte. Ich hatte genau das eben auch geprüft und mit Erschrecken festgestellt, das am UCS Slave die UCS Variable listener/network/protocol auf “ipv6” only stand. Ipv6 ist aber definitiv nicht konfiguriert, weil ich das auch gar nicht verwenden wollte.
Nach Umstellung auf IPv4 läut der Join jetzt perfekt durch ! :slight_smile:

Danke schön für die nächtliche Unterstützung.


#14

Freut mich, daß es nun funktioniert :slight_smile:

Und das ich gar nicht so schlecht getroffen habe :wink:


#15

Zum Thema KVM Host mit virtualisiertem DC Master sind mir noch folgende 2 Dinge aufgefallen:

  1. Ich habe im aktuellen Aufbau den KVM Host als DC Slave eingerichtet. Dies führt allerdings dazu, dass ein Server Neustart sehr lange dauert und zwar genauso lange bis alle Retries den Domain Master zu erreichen fehlgeschlagen sind.
    -> Macht es hier nicht mehr Sinn den KVM Host als DC Backup zu installieren um das zu kompensieren ? (Im Wiki steht das ohne weitere Empfehlung als Alternative drin)

  2. Welche Möglichkeit gibt es den autostart von VMs zu steuern bzw. zu verzögern ?
    Auch hier ist es sinnvoll mit dem Start von weiteren virtuellen Servern zu warten bis der virt. DC Master gestartet und erreichbar ist.

Grüße,
Ludwig


#16

Hallo,

zu 1:
Ich habe mit genau derselben Überlegung 2 meiner KVM Hosts als DC Backup eingerichtet.

zu 2:
Ich keine keine in UCS implementierte Methode. Autostart ist auch eine lokale, nicht in UVMM implementierte Funktion ([bug]28771[/bug]). Man müsste sich zunächst selbst etwas skripten.

hth,
Dirk Ahrnke


#17

Optimal. Dann werde ich den Aufbau nochmal aufsetzen. Eventuel sollte die Idee im Wiki Artikel mit aufgenommen werden, dort steht DC Backup in Klammern und es entsteht der Eindruck, dass der Slave der präferierte Standard wäre.
Ich werde auch nochmal prüfen, ob ich beim 2. Versuch in die gleiche Thematik wie hier beschrieben [url]KVM Host einrichten ohne Domain] nochmal reinlaufe. (LDAP am Host startet während des Joins nicht aufgrund eines fehlenden inculdes in der /etc/ldap/slapd.conf)

Das dachte ich mir schon, d.h. eigentes Skript über cron bei Systemstart ausführen.
Alternativ, soviel ich weiß in der Config der VM selbst lässt sich über virsh auch eine fixe Startverzögerung vorgeben. An verschiedenen Stellen habe ich dazu jedoch gelesen, dass es ohnehin nicht empfohlen wird die virsh autostart Funktion zu nutzen. Ist diese unzuverlässig ?

Grüße,
Ludwig


#18

Hallo,

Dazu kann ich leider nichts sagen.
Dem erwähnten Bug bzw. Featurerequest habe ich gerade noch mal einen kleinen Schubs nach oben gegeben.

Viele Grüße,
Dirk Ahrnke