Mein Platz im Internet für Themen wie Linux, BSD, Server, Netzwerk, Knowhow und Besserwisserei

Bulk Move Users in OpenLDAP (Skript)


Hat man ein LDAP Verzeichnis mit vielen Benutzern, dann ist einem angeraten direkt zu Beginn ein gutes, belastbares Design zu erstellen. Tut man das nämlich nicht, so hat man schnell einige hundert Benutzerkonten an falscher Stelle.

Wer dann nacharbeiten möchte, der such sich entweder gescheite Tools, oder macht es selbst. Dabei hat man eigentlich nicht viele Möglichkeiten. Im Grunde genommen geht es nur darum den DN eines Eintrages zu ändern, sodass dieser dann zum neuen Design passt.

Wenn man Beispielsweise 2000 Benutzer in einer OU hat, davon aber nur 789 zu einer bestimmten Gruppe gehörende verschieben will, so kann man das natürlich auch per Hand machen. Oder aber, man jongliert mit den vorhandnen Informationen und sichert sich gleich für die Zukunft ab, denn mit hoher Wahrscheinlichkeit wird so etwas in ähnlicher Form wieder vorkommen.

Zunächst einmal brauch man alle Benutzer einer Gruppe, und das möglichst durch Leerzeichen getrennt. Anschließend muss man sich eine LDIF zusammenschrauben die es einem ermöglicht ein Konto zu verschieben. In schnell und einfach sieht das dann so aus:

#!bin/bash
PASSWORD=STRENG_GEHEIMES_PASSWORD

for i in $(ldapsearch -x cn=G_R_U_P_P_E_N_N_A_M_E | grep memberUid | cut -f 2 -d " " | sort)
do
 ldapsearch -x -s one -b ou=Users,dc=DOMAIN,dc=DE uid=$i | grep -i dn
  if [ "$?" -eq "0" ]; then
  echo "dn: uid=$i,ou=Users,dc=DOMAIN,dc=DE\nchangetype: moddn\nnewrdn: uid=$i\ndeleteoldrdn: 1\nnewsuperior: ou=extern,ou=Users,dc=DOMAIN,dc=DE" \
 | ldapmodify -x -w $PASSWORD -D "cn=Manager,dc=DOMAIN,dc=DE" -H ldap://localhost

  echo "$i wurde verschoben"
 fi
done

 

Das Leben ist schön.

Schlagwörter LDAP, Skript, Server, Admin

Windows Server 2008(R2) - externer NTP Server


Ich musste leider vor kurzem mal wieder an einem Windows Server um eine profane Aufgabe zu erfüllen. Es sollten externe NTP Server eingerichtet werden. Da der Server gleichzeitig auch ein DC war, gestaltet sich das (natürlich) schwieriger als erwartet.

Es müssen die folgenden Befele ausgfeführt werden, damit der gewünschte Server für die Abfragen genutzt wird:

net stop w32time 
w32tm /config /syncfromflags:manual /manualpeerlist:"ntp1.domaene.de,ntp2.domaene.de"
w32tm /config /reliable:yes
net start w32time

Anschließend war dann auch wieder alles gut.

 

Schlagwörter Admin, Server, Skript, Windows

Cloning mit dd und ssh


 Rechner von der Hardware zu virtuellen Maschinen umzufunktionieren ist ja mittlerweile eine ziemlich langweilige Aufgabe geworden. Wenn man das ganze allerdings anders herum probiert, dann braucht man zwar keine riesen Hilfsmittel, aber ein wenig Umdenken ist schon gefragt.

In diesem Beitrag  beschreibe ich, kurz und knapp, wie man aus einem eine Festplatte über das Netzwerk auf eine andere (auch gern ein Imagefile) clont.

Genutzt wird dd. Mit Hilfe von dd kann man einen Datenstrom von Blockdevices abgreifen und zum Beispiel in einer Datei speichern. Da es auf diesem Weg funktioniert, funktioniert es auch im Netzwerk mit Hilfe von SSH ziemlich einfach.

Wir greifen einfach die Daten von der Festplatte/dem Image ab

dd if=/mnt/storage/vm1234.raw

und geben es mit einer Pipe an SSH weiter

 | ssh root@111.222.333.444

wo wir es dann an die entgültige Stelle bewegen:

dd of=/dev/sda

Vollständig sieht das dann so aus:

 

dd if=/mnt/storage/vm1234.raw | ssh root@111.222.333.444 dd of=/dev/sda 

Auf diesem Weg kann man dann ziemlich einfach die Daten einer Festplatte/eines Images durch das Netz an einen anderen Ort bewegen, um dort dann zum Beispiel seinen neuen Rechner in Betrieb zu nehmen.

Geholfen hat: