Kategorie-Archiv: Admin-Kram

Infos und Anmerkungen aus dem Arbeitsalltag. Viel zum Thema DXS, aber mittlerweile auch zum Microsoft Umfeld :-)

Updates zu Windows 7 hinzufügen

Wir benutzen an der Uni opsi, um Windows samt Software auf die Rechner zu bekommen. Das klappt meistens auch ganz gut. Was jedoch nervt – und so nichts mit opsi zu tun hat – ist, dass nach dem Aufsetzen der Rechner erst mal zig Sicherheitsupdates nachinstalliert werden müssen – das muss besser gehen.

Geht es auch: Microsoft schreibt dazu im Technet recht viel, aber keine Anleitung für ganz eilige :-) Und damit ich beim nächsten Mal nicht suchen muss, hier der Ablauf.

Updates für Windows 7 x64 hinzufügen

Die folgende Anleitung ist auf opsi abgestimmt, aber funktioniert grundsätzlich natürlich auch ohne…dann muss man halt nur wieder ein ISO bauen, wo die ausgetauschte Image-Datei drin liegt…

0. Vorbereitungen

Die WIM-Datei (also das Datei-Image), dem die Updates hinzugefügt werden sollen, liegt bei opsi unter $depot$/win7-x64/installfiles/sources/install.wim

Diese Datei kopiert man in sein lokales Arbeitsverzeichnis  – hier C:\mkup (geht bestimmt auch übers Netz, aber so waren die Pfade kürzer ;-) ).

Und schliesslich benötigt man noch das WAIK. Das gibt es bei Microsoft als kostenlosen Download. Für diese Anleitung wird effektiv nur das Kommandozeilen-Tool dism gebraucht.

1. Image-Index bestimmen

Mit einer Windows-DVD (nichts anderes liegt unter installfiles/sources) kann man im Regelfall mehrere Versionen installieren (Home, Pro, usw.). Um die richtige Version zu bearbeiten (wir verwenden Pro), muss man herausfinden, wie diese intern referenziert wird – das geschieht über die Index-Nummer.

2. Image mounten

Das Image mit der richtigen Index-Nummer (die aus Befehl 1 ;-) )wird jetzt in ein Verzeichnis gemountet, damit es beschrieben werden kann

3. Updates hinzufügen

Die Updates (wo auch immer die her sind – siehe weiter unten) liegen unter in diesem Fall unter C:\updates. Mit dem folgenden Befehl werden diese dem gemounteten Image hinzugefügt. Dazu müssen die Updates entweder als cab- oder msu-Datei vorliegen.

4. Image wieder packen

Mit dem letzten dism-Befehl werden die veränderten Dateien aus dem gemounteten Verzeichnis wieder in die install.wim gepackt.

5. Abschluss

Als Letztes wird die Imagedatei mit den Updates (install.wim) wieder nach $depot$/win7-x64/installfiles/sources/install.wim kopiert und gegebenenfalls werden mit

Rechte korrigiert. Danach kann die Installation eines Windows 7 mit allen Updates beginnen…

Was nicht soo toll ist

Was mich bei dem ganzen Ablauf noch stört: Die gewünschten Updates bekomme ich bei MS nicht soo einfach: Der empfohlene Weg ist scheinbar über den Update-Katalog, aber da wird man doof: Keine richtige Filtermöglichkeit ala “Alle Sicherheitsupdates für Windows 7 x64″ (klar, ich kann “Windows 7 Sicherheit” eingeben, wie das auf den MS-Seiten steht….aber die 1000+ Treffer möchte ich nicht durcharbeiten…).

Dann könnte ich Treiberpacks nutzen, aber ich will die eigentlich direkt von unserem WSUS-Server bzw. von MS direkt. Behelfsweise realisiere ich das bei uns jetzt über wsusoffline. Dabei gab es aktuell nur das Problem, dass die Updates für .NET nicht verifiziert werden konnten und diese manuell aus dem Katalog von MS geladen werden mussten; weiterhin “fehlen” dann immer noch Updates, da wsusoffline “nur” Sicherheitsupdates installiert.

latitude_Ds

Dell Latitude ST

Neues Spielzeug in der Uni: Der Chef drückt mir gerade einen Tablet-PC von Dell in die Hand…zum testen.

Allerdings lässt die Lust dazu direkt nach dem booten nach, weil nur die Stifteingabe funktioniert, nicht aber die Eingabe der Finger. Zum Glück kann man das in der Systemsteuerung umstellen – wenn einen die Kiste lässt, denn der Atom ist nicht wirklich der beste Freund von Windows 7.

Ausstattung

Aber erstmal zur Hardware selbst: Es handelt sich um ein Latitude ST mit 2GB Ram und einem Intel Atom Z670 mit 1,5 GHz. Als Massenspeicher dient eine 32GB SSD von Samsung (PM810).  Das Display ist laut Dell ein “10,1-Zoll-WXGA-LED-Display (1.280 x 800) mit weitem Betrachtungswinkel und Corning® Gorilla® Glas”.

Als Betriebssystem kommt Windows 7 (32bit) mit SP1 zum Einsatz, was meiner Meinung nach mal überhaupt nicht für den Tablet-Einsatz taugt: Alles fitzelkleine Symbole und eine nicht pixel-genaue (die Dank der kleinen Symbole notwendig ist) Umsetzung meiner Finger- und Stiftbewegungen und -Klicks (und da ich angeblich Stummel-Fummel habe, kann es auch nicht auf zu dicke Finger geschoben werden).

Erster Eindruck

Das war nix :-) Es ist einfach mühsam, mit dem Ding irgendwas zu machen:

  • Surfen über den WebVPN der GWDG, also Benutzername und PW eingeben => Doof: Per Stift eine Strafe für jemanden, der Mutter und Vater erschlagen hat und per Finger…naja, geht, aber selbst auf meinem kleinen Desire geht das flotter,  mit höherer Präzision und mit deutlich besserer Rückmeldung.
  • Navigation auf den Seiten selbst: Irgendwie sind die Gesten einfach doof: Mir scheinen vor und zurück vertauscht zu sein, mal kurz Videos aufrufen, bringt das gesamte System auf die Knie und zeigt bei allen Fenstern “Keine Rückmeldung”. Lahm, lahm, lahm
  • Wenn ich auf ein Eingabefeld klicke, blinkt kurz das Symbol für die Bildschirmtastatur auf. Jetzt heißt es schnell klicken, sonst geht das wieder weg und der Zeiger ist einfach im Feld – und trotz großer Anstrengungen meinerseits klappt die Eingabe von Buchstaben per Gedanken nicht so wirklich gut. Auch das ist bei iOS oder Android wesentlich besser und fließender integriert.
  • Wenn die Tastatur da ist, finde ich sie standardmäßig zu klein, um die mit zwei Fingern schnell zu bearbeiten…doof, doof, doof :-)
  • Der Prozessor scheint auch etwas überfordert zu sein, denn sobald man drei, vier Programme gleichzeitig auf hat, wird alles langsam, Anwendungen reagieren nicht, usw….es wird einen guten Grund haben, dass der einzige HW-Schalter neben Power und der Lautstärke-Regelung ein Shortcut für “STRG-ALT-ENF” ist :-)

Fazit

Irgendwie macht das Latitude ST keinen Spass. Und ich glaube, daran hat Windows 7 nicht unerheblichen Anteil: Was auf dem Desktop gut und stabil funktioniert, ist per Stift noch erträglich zu bedienen und per Finger unbrauchbar. Zu ungenau, zu kompliziert und zu weit hinter den Smartphone-Betriebssystemen zurück. Mal gucken, was Windows 8 zu bieten hat.

Nachtrag – Windows 8

Naja….ist auch nicht besser. Klar, sieht minimal besser aus und da, wo die Metro-Oberfläche da ist, ist die Bedienung per Finger auch besser. Aber das ist halt (noch?) nicht überall der Fall und gerade solch zentrale Dinge wie der Filemanager sind analog zu Win XP/Windows 7. Und das man per USB-Stick alle Windows 7-Treiber auf das Tablet laden muss, weil es keine nativen von Win 8 gibt macht die Sache nicht besser. ;-)

Powershell und NTFS

Es geht wieder einmal um meine beiden Lieblingsthemen Microsoft und BlueArc. Seit nunmehr einem Jahr liegen unsere Daten auf dem BlueArc Mercury System und werden von dort via NFS zur Verfügung gestellt. Für die Windowsclients gibt bzw. gab es bisher zwei BSD-Samba Server die eben diese NFS-Freigabe weitergeleitet haben. Natürlich beherrscht das Mercury auch CIFS und der Zwischenschritt über Samba war noch von dem Vorgängersystem. Wie auch immer, sollen die Verzeichnisse nun direkt vom Mercury kommen sowohl für CIFS wie auch NFS für unixbasierte Clients. Das ist in der Theorie kein Problem und steht auch schön im Hochglanzprospekt beschrieben. In der Praxis funktioniert das auch für ein frisches Dateisystem mehr oder minder problemlos, sofern man dem NFS-Teil einfach sagt er solle sämtliche Rechteänderungen einfach in die Tonne treten und die NTFS-Vorgaben umsetzen, ansonsten kann es schon mal sein das man sich mit chmod/chgrp/chown ein paar Zugriffsrechte zerlegt, teilweise auch rekursiv, was man vermeiden möchte.

Gut, wir haben nur halt kein frisches Dateisystem sondern 35.000 Accounts mit 36.000.000 Dateien. Mein Vorschlag zu behaupten der Plattenstappel wäre abgebrannt und man hätte auch kein Backup um es wieder herzustellen damit man bei Null anfangen kann, wurde leider nicht angenommen.
Zusätzlich sollte es noch einige Umstrukturierungen im Active Directory geben, genauer gesagt eine Reorganisation der Nutzerobjekte in neue OUs.
Damit verbunden dann auch gleich eine neue Primärgruppe der Nutzer, womit sich auch die Gruppe unter Unix ändert.
Da unsere Nutzerobjekte alle vom Novell eDirectory verwaltet werden, muss man da nur ein paar Kleinigkeiten ändern und für Neuanlagen hat man das dann erledigt. Die Bestandskunden möchte man aber dann doch aus Perfomancegründen lieber direkt im AD ändern, da ich inzwischen die Powershell ja ganz nützlich finde, war das auch relativ einfach und sieht so aus:

Bisher waren die Nutzer je nach Nachname in die OU=A-L bzw. M-Z einsortiert, jetzt werden sie in eine OU mit dem ersten Buchstaben der UID eingegliedert. Damit haben nun also Nutzerobjekte ein neues Zuhause, einen neuen Windowsprofilpfad, eine Neue gidNumber und ein neues UnixHomeDirectory. Problem eins gelöst ;)

Problem Nummer Zwei war dann etwas hartnäckiger, wie erstellt man für dieses vollgemüllte Dateisystem nun sauberer ACLs? Auch da fangen wir erstmal klein an, erstmal setzen wir die Primarygroup um und weil es dafür auch chgrp tut, anstatt das irgendwo unter Windows zusuchen startet man einfach mal “chgrp -R 1000513 /home” im Screen und wartet dann halt 3 Tage bis das fertig ist …

Währenddessen überlegt man sich dann wie man neue Verzeichniss über die Powershell mit entsprechenden ACLs anlegt und das sieht dann so aus:

Damit wird ein neuer Securitydescriptor erzeugt mit Full-Control-Rechten für den Besitzer, Domainadmins und Admins der Admins sowie als Veranschaulichung Read&Only für eine Nutzer unter dem das Tapebackup laufen könnte. Dazu noch Owner und Groupinformation geändert, neues Verzeichnis erstellen, die ACL da drüber bügeln und schon haben wir ein schönes neues Homeverzeichnis mit feinen vererbaren NTFS-Regeln.

Problem Drei wie bekommt man diese Regeln jetzt in das bestehende Dateisystem? Tja und hier hab ich dann einfach mal nach 3 Tagen keinen Bock mehr gehabt -.-
Setzt man diese Regel nämlich auf ein bestehendes Verzeichnis, dann vererbt er zwar den Owner auf sämtliche Children, die ACL aber aus einem mir unerfindlichen Grund nicht. In der GUI kann man dann einen Haken setzen “Apply for all Children bla” und angeblich erwischt man den auch über irgendein WMI-Object, aber anscheinend hat das noch niemand in der Realität probiert. “Best-Practice” ist ein:
get-chiditems $Homedir | for-each { set-acl -path $_.fullname }
oder ähnlich, das dauert dann halt leider auch nur etwa 5 Minuten pro Account, statt der 5 Sekunden die das Häckchen in der GUI braucht, naja dafür muss ich nicht 35 tausendmal auf OK klicken.

Linux und Dell

Wie Niels schon auf einer Unterseite berichtete, haben wir im Sommer unsere betagten Latitude E6400 gegen etwas aktuellere Hardware eingetauscht, das Latitude E6220. Mir war diesmal wichtig, dass das Gerät klein und stromsparend ist… also im Vergleich zum besagten E6400 welches ich mit einer halbwegs performanten NVidia-Grafikkarte konfiguriert hatte.

Kleiner ist es, nur noch etwas über 12 Zoll, statt 14; kein interens optisches Laufwerk (und auch nicht als extern, weil nicht mitbestellt …); etwas leichter ist es auch und die Akkulaufzeit liegt mit über 4 Stunden deutlich über den 20 Minuten die mein alter gehalten hat (der im Auslieferungszustand auch nur knapp über 2 Stunden hielt). Der Core-i5 ist ausreichend schnell um nicht zu sagen, schneller als mein Spielrechner daheim und die Intelgrafik reicht für Bürozeug mehr als aus, Filme schafft die sicher auch hab ich aber noch nicht getestet. Die meiste Zeit arbeite ich damit tatsächlich, daher ist auf der Festplatte auch nur ein Debian/Testing installiert..
Wie ich das installiert habe weiß ich gar nicht mehr, aber als Niels seines neulich neuinstallieren wollte, ging das nicht so auf anhieb. Ich glaube damals einfach eine Testing-CD auf einen USB-Stick kopiert zu haben, möglich wäre aber auch eine Installation über mein Diskless-Linux zu Hause … war nicht mehr nachvollziehbar, anscheinend war ich an dem Tag betrunken :/

Bis auf anfängliche Abstürze die mit irgendeinem Kernelupdate behoben waren, hatte ich auch keine Probleme bis ich letzte Woche das BIOS updaten wollte. Das ist zwar unter Linux auch schon eine Weile möglich und Dell selbst bietet hier dafür eine Anleitung, Tools und entsprechende Firmwarebinaries, aber natürlich nicht für das E6220 ..
Dann gibt es zumindest noch das Delltechcenter das mir auch unbekannt war, wo man für Windows CAB-Dateien findet die man in WinPE einbauen kann, das half mir nur auch wieder nicht, weil da auch keine Firmwarebinaries drin waren..

Also mittels WAIK mal eben einen USB-Stick mit WinPE zusammengefrickelt und die beiden Windows-Bios-Updates mit drauf kopiert, fertig … naja fast. Der USB-Stick hat sich da irgendwie immer etwas quer gestellt, weil da schon diverse Bootloader ihre Spuren hinterlassen hatten. Da sei nur der Hinweis auf Diskpart gegeben, das ist mehr oder minder selbsterklärend um eine Primärpartition anzulegen und mit Fat32 zu formatieren, ja ich weiß das geht auch in bunt -.-

Dann kopiert man da halt mit xcopy oder was auch immer seine von copype erstellten Dateien drauf, hängt den USB-Stick an den Laptop und bootet und ein paar Augenblicke später hat man dann auch die aktuelleste BIOS Version und nicht mehr die A01

opsi-makeproductfile

Softwareverteilung mit opsi – Spass mit cpio

Wir setzen bei der Arbeit auf opsi, um die Software auf die Windows-Rechner zu bekommen. Das klappt auch meistens ganz gut: Die Pakete sind – solange Silent- bzw. unattended-Installationsverfahren von der jeweiligen Software unterstützt werden – schnell gebaut. Jedenfalls die meisten.

Aber da die Studierenden neben kleineren Programmen wie einem PDF-Viewer auch noch die großen Keulen wie Photoshop oder SAS (Statistiksoftware) wollen, werden die Pakete mittlerweile recht  groß…zu groß, wie wir festgestellt haben: Das Programm opsi-makeproductfile arbeitet zwar fleißig ‘ne halbe bis ganze Stunde vor sich hin, um beispielsweise die 14GB SAS mit Schleife und allem zu verpacken, spuckt am Ende aber nur ein 1KB großes Opsi-Paket aus, dass mal einfach nix macht – was nicht verwundert, fehlen dem kleinen Bytes doch ein, zwei, viele Spielkameraden.

Um den Server als Ursache auszuschließen habe ich auf meinem Arbeitsrechner fix eine virtuelle opsi-Server-Instanz aufgesetzt: 50 GB Plattenplatz, 6GB RAM und ordentlich Platz auf /tmp und SWAP sollten ja ausschließen, dass da was an Speichergrenzen gerät. Aber leider war der “Erfolg” der gleiche wie auf dem Server – 1KB lächeln einen freundlich an.

Folglich muss es irgendwo eine Software-Grenze geben und die war dann auch Dank des Internets schnell gefunden: Standardmäßig nutzt opsi cpio anstelle von tar, um die Pakete zu erzeugen. Fand ich immer super, cpio wird u.a. auch bei Archlinux für die Ramdisk genutzt, klingt modern,super und gut. Aber: Im Gegensatz zu tar gibt es diverse maximale Dateigrößen. Und die reißt ein SAS-opsi-Paket mit 14 GB einfach mal alle. 2GB, 4GB oder 8GB – alles ist im Angebot und alles ist mal einfach viel zu wenig.

Zum Glück kann man opsi sagen, dass cpio durch tar ersetzt werden soll. Wenn man opsi-makeproductfile mit dem Parameter “-F tar” aufruft, klappt es auch mit großen Paketen. Mal gucken, ob sich der Aufwand gelohnt hat und das Programm sich vernünftig installiert…ansonsten stehen mehr als 100 Rechner an, die von Hand betankt werden dürfen….und alle so yeah!

Systemumstellung und Stromabschaltung im Rechenzentrum

Niels hatte es ja im letzten Artikel schon verkündet: unser Diskless Linux ist nun auf einem aktuellem Stand am Campus im Einsatz. Wenn man berücksichtigt wie ausführlich wir das System getestet haben, sind erstaunlich wenige Fehler bisher aufgetreten. Ein kleines Missgeschick geht dabei natürlich wieder auf mein Konto… Das setzen der Uhrzeit sollte man erledigen, bevor man versucht sich am AD anzumelden, ansonsten kann das dazu führen das es behauptet die Abweichungen zwischen den Uhrzeiten sei zu groß. Etwas hinderlich ist es dann wenn man nicht genau weiß ob man die Systemzeit auf UTC oder GMT+1 (+/- Sommerzeit) setzen muß, aber das werde ich wohl noch in den nächsten Tagen herausfinden. Ansonsten hab ich nur vergessen 4 Rechner im AD einzutragen, das hab ich heute mal nachgeholt…

In der Nacht vom Freitag auf Samstag im Rechenzentrum der Strom abgestellt, das wurde lange vorher angekündigt und entsprechend von uns ebenso generalstabsmäßig geplant. In der Realität hab ich einfach gegen 23 Uhr nacheinander unsere Server heruntergefahren und der Plan war es am Samstag gegen neun bei der GWDG aufzuschlagen um die Server wieder einzuschalten… der Plan ging leider nicht so ganz auf, aus irgendeinem Grund habe ich verschlafen was möglicherweise mit dem Konsum von alkoholhaltigen Getränken zu tun haben könnte :/
Also etwas verspätet im Maschinensaal unsere Server wieder eingeschaltet und bei zweien festgestellt das der Bootloader kaputt ist, dummerweise natürlich ausgerechnet der LDAP-Server … hat leider auch etwas länger gedauert, aber gegen 12 Uhr lief wieder alles und das war auch die Uhrzeit die ich angekündigt hatte. Kurz noch in der SUB vorbeigeschaut um mich persönlich davon zu überzeugen, dass unsere Studierenden wieder arbeiten können und dann gemütlich nach Hause gedackelt …
Um kurz vor 15Uhr hatte dann noch mal Daniela angerufen und mitgeteilt, dass es noch kleine Probleme mit einigen Nutzerkonten gibt, also nochmal kurz in die SUB gefahren, weil ich von zuhause nicht an die Server komme -.- Das Problem konnte dann auch relativ schnell gelöst werden und lässt nur die Frage offen warum ich ein dienstliches Mobiltelefon habe, wenn man mich eh auf meinem privatem Handy anruft Oo
Sonntag gab es dann noch ein klitzekleines Rechteproblem  auf dem Webserver, da gehörte irgendwie das mysql-Verzeichnis nicht mehr dem mysql-Nutzer.. naja Voodoozeug halt, auch etwas womit ich mich beschäftige sollte ich mich irgendwann mal wieder langweilen.

Und als Notiz an mich selbst: beim nächsten GWDG-Besuch mal ein aktuelles Bild vom Serverschrank machen, vor allem die Verkabelung auf der Rückseite. Das ist ein abschreckendes Beispiel wie man es nicht machen sollte..

dino_bg_gast_thumbnail

DINO 2011 goes live :-)

Spätestens morgen früh ist es soweit: Das neue DINO-System bootet auf allen Linux-Terminals von studIT. Was genau DINO ist (und warum es so cool ist :-) ) wollen Dennis und ich nach und nach hier erklären.

Die wichtigsten Neuerungen gegenüber der alten Version (neben aktualisierter Software – versteht sich) sind der Wechsel weg von Ubuntu zurück zu Debian Stable (mit einigen Paketen aus Linux Mint Debian Edition), die Nutzung des Uni-ADs als Kerberos-Dienst und der anonyme, beschränkte Gast-Zugang zum Angebot der SUB Göttingen – auch auch dazu werden wir bestimmt noch jeweils gesondert was schreiben oder aber auf die Seiten von studIT verweisen (ist ja egal, wo wir die Info schreiben…).

Und zum Schluss wieder mal die “lustige” Erkenntnis, dass alles Testen – diesmal mit 15 unserer Mitarbeiter – nicht alle Fehler abdeckt. Highlight vom 2011 Release ist bisher, dass wir den unwahrscheinlichen, wohl eher nicht nachgefragten und überhaupt völlig abwegigen Fall, das die Studierenden Drucken wollen….so nicht auf dem Schirm hatten… Dank an Heiko, der uns Montag abend, kurz nach 17:00 Uhr noch daran erinnert hat. Und nachdem das Print-Paket von xfce4 nachinstalliert war und Niels sämtliche falsche Schreibweisen, die cups so erlaubt, durchprobiert hatte, lief auch das Drucken wie gewünscht.

(Das ich beim Konfigurieren der Accounts den Fall, dass auch mal nichts zu machen ist, wenn das Ding aktuell ist, vergessen habe, ist jetzt zwar auch nicht eine meiner Sternstunden, aber ist jetzt ja auch schon behoben….und morgen mache ich eine Grafik, damit der Überblick mal wieder da ist ;-) )

Lustige Programmierfehler

Programmierfehler ist jetzt nicht unbedingt richtig, denn das meiste sind simple Shellskripte, aber wir wollen mal nicht so kleinlich sein.
Für unser Kooperationsprojekt mit der SUB sollen wir einen zusätzliches Login anbieten, das nur auf lokale Resourcen im GoeNet zugreifen darf. Das ist soweit kein Problem, der Account wird einfach mit adduser erstellt und dann hängt man da mit iptables ein paar Regeln dran die mittels Ownermatch einfach alles verbieten.
Zusätzlich soll das Homeverzeichnis nach dem Ausloggen gelöscht werden, auch kein Problem das machen wir einfach über den das Init-Script des Displaymanagers, jedesmal wenn der startet schaut er nach welche Accounts lokal angelegt sind und schmeißt die Weg.
Schon am Freitag Nachmittag war allerdings irgendwas nicht in Ordnung, aus irgendeinem Grund stürzte der GDM schon beim booten ab, da ich ein bisschen mit upstart und rcconf rumgespielt habe, dachte ich mir das wär meine Schuld und verschiebe die Problembehebung einfach auf Montag …
Heute habe ich also die meiste Zeit des Tages damit verbracht einen Fehler in den Startabhängigkeiten zu suchen der nicht existiert. Genaugenommen kommen da eigentlich zwei Fehler auf einmal zusammen, zum einem meine unfähigkeit zu kommunizieren und zum anderen ein kleiner logischer Fehler in Niels GDM Anpassung.
Um diese Zusatzaccountgeschichte möglichst flexibel zu gestalten habe ich einfach /etc/default/custom-accounts  angelegt und dort stehen halt die Accountnamen drin die mein Script dann verarbeitet. Das gleiche macht Niels auch, hat er nur woanders abgelegt, nicht weiter schlimm ich wunderte mich nur die ganze Zeit warum der falsche Account angelegt wird …
Fehler zwei ist dann das wegwerfen des Homeverzeichnisses das sieht so aus:

HOMEDIR_TO_CLEAN=awk -F: -v user=$i 'user == $1 {print $(NF - 1)}' /etc/passwd
rm -rf $HOMEDIR_TO_CLEAN/*
rm -rf $HOMEDIR_TO_CLEAN/.[A-Za-z0-9]*

An dieser Stelle kann man sich überlegen, wenn in Niels Datei ein Account drin steht den ich nicht anlege und dessen Homeverzeichnis trotzdem gelöscht wird. Kleiner Tip, die Rückgabe des Awk-Kommandos ist dann leer …
Aus rm -rf nutzer/* wird dann /* und das ist etwas hinderlich -.-
Also ein kurzer if ! [ -z ] eingebaut -> nicht leer, und schon werfen wir beim booten auch nicht mehr unser Rootverzeichnis ins Nirvana. Natürlich ist das auch letztlich wieder meine Schuld, weil ich /bin, /sbin, /lib und /usr komplett in das AuFS lege, sonst würde da einfach eine Fehlermeldung stehen das man die Dateien nicht löschen kann …

man müsste sich Dinge auch notieren ..

Da ich dazu neige alles mögliche zu vergessen, was ich nicht irgendwo notiert habe und Google uns bei der Suche immer brav hilft, möchte ich hier mal wieder in ein paar Zeilen die Geschehnisse der letzten Wochen festhalten.

Den Witz mit der FX160 brauch ich nicht zu erwähnen, ich versteh nicht wieso eine Grafikkarte kein DVI unterstützt obwohl ein DVI-Port vorhanden ist, ist mir auch egal.
Nach einigen Stunden des Feintunings an unserem Diskless Debian, haben wir am vergangenen Montag ein paar Freiwillige das System testen lassen insgesamt ist es wohl bereit für den Produktiveinsatz. Ein paar kleine Bugs gab es noch zu beseitigen, von meiner Seite waren das natürlich wieder absolute Perlen administrativen Nicht-könnens. Herr Hinke, also ich, ist der Meinung den Kernel könnte man wenigstens schon noch selbst übersetzen und das tue ich auch gern und häufig. Ich vergesse dann nur ab und zu die Zielgruppe aus den Augen, so wurde mir freundlich mitgeteilt, dass Cardreaderunterstützung schon eine feine Sache ist im 21. Jahrhundert. Die Ausrede das ich keine Module kompiliere die ich selbst nicht benutze wurde nicht akzeptiert ..
Das hat natürlich direkt Fehler 2 hervorgerufen, nicht funktionierende udisks mit Active-Directory Accounts. Dazu sei nur erwähnt das der nscd vor dbus starten sollte, dann funktioniert es auch, zumindest in der Theorie. In der Praxis benötigt der eingesetze XFCE noch HAL, welches über PolicyKit gestartet werden soll und das tut es auch nachdem sich jemand einloggt.
Irgendwann ist mir aufgefallen das immer nach dem ersten Login das automagische Mounten von Laufwerken nicht klappt, weil HAL anscheinend zu spät startet. Die häßliche Lösung: hald –daemon=yes in die rc.local schreiben, mit der nächsten XFCE-Version fliegt das eh raus …
Der dritte Fehler war es dann sich darauf zu verlassen das man bei der Installtion schon drauf geachtet hat, das die Abhängigkeiten von sysv-rc alle geklappt haben. Nach dem nun die Uhrzeit synchronisiert wird, bevor man sich am AD anmeldet klappt das nun auch fehlerfrei. Zusätzlich ist die Bootzeit jetzt auf knapp 25 Sekunden herunter, was ich schon ganz in Ordnung finde.

Heute Nachmittag hab ich mir dann vorgenommen den Beweis anzutreten, dass das System auch Distributionsunabhängig ist und wollte Archlinux aufsetzen, mehr als das Basissystem hab ich aber auch nicht installiert, zwischendurch hab ich aus versehen noch ein LVM kaputt gespielt. Merke lvresize führt nicht selbstständig rezisefs aus … naja, das steht auch in jedem HowTo und in der manpage, aber wer liest sowas schon vorher?
Stattdessen hab ich neben Squeeze i386 ein amd64 aufgesetzt. Sobald dort unsere angegepassten Pakete eingespielt werden, könnte man also darüber nachdenken auf den x86-64 Clients ein 64-Bit System anzubieten.

Ein Gedanke ging mir noch durch den Kopf, ob man anhand des dhcp-request Pakets das Betriebssystem herausfinden kann, damit beschäftige ich mich vermutlich morgen. Hintergrund des ganzen ist eine Dualbootumgebung für den Kursbetrieb. Da beide Maschinen im AD betrieben werden, ich aber noch keine Möglichkeit gefunden habe, eine Windowskeytab “zu klauen”, möchte ich denen einfach je nach Betriebssystem einen anderen Hostnamen zuweisen.

Am Rande sei noch erwähnt das es lustig ist wenn eine Firma sich meldet mit “Hallo der Kollege der ihre Anfrage bearbeitet hat, arbeitet nicht mehr bei uns. Könnten Sie uns ihre Unterlagen noch mal zuschicken? Wir haben nur ein paar unvollständige Notizen gefunden…”, dabei geht es natürlich auch wieder um größeres Projekt und ich frage mich wie sich solche Firmen überhaupt auf dem Markt halten können Oo

Auch lustig ist es, wenn man beim Ausparken aus der elterlichen Hofeinfahrt (mit Mama’s Auto) mit dem Hoftor kollidiert, weil man vergessen hat es vorher auch zu öffnen. Naja ich fand es nicht lustig, meine Mutter schon, zum Glück hab ich nur ein Loch in die untere Plastikheckschürze gefahren -.-

Niels ist ja der Meinung das Wort “lustig” würde hier, also im Büro, ziemlich inflationär benutzt und wir sollten damit aufhören. Vor allem wenn man damit nicht lustig im Sinne von witzig meint. Eine brauchbare Alternative ist ihm allerdings nicht eingefallen. Da dieses Phänomen allerdings auch im deutschsprachigem EU-Ausland auftritt, scheint es zumindest zu keinen größeren Missverständnissen zu führen. Ich hab zwar manchmal den Eindruck dort versteht man mich auch nicht immer richtig, aber das liegt in den meisten Fällen vermutlich eher an meiner ungeschickten Wortwahl. In den anderen Fällen ist es wohl “nicht verstehen wollen” oder wie mir gestern mitgeteilt wurde, macht es anscheinend Spass mich (grundlos) zu ärgern -.-

Und weil ich das hier als Notizzettel gerne missbrauche, erinner ich mich grad nochmal daran Dienstag in die Werkstatt zu fahren.

Update: das Archlinux bootet auch, mir war nur nicht klar dass das ein “Profisystem” ist, wo der grafische Installer laut Herrn I. vim und bash sind…
Ich hab da ja eigentlich nichts gegen, aber von der “hauptsache bunt und shiny”-Fraktion hatte ich etwas anderes erwartet ..

… und jetzt scripten wir um das ActiveDirectory herum …

Vorweg, ich habe 5 Minuten länger gebraucht als geplant, ansonsten möchte ich darauf hinweisen das Mr. Scott immernoch das Maschinendeck am laufen hält und zwar erfolgreich.

Heute habe ich mich mal mit der Windows Powershell beschäftigt. Ich stand vor dem Problem, das ich 400+ Rechner automatisiert mit einem von mir festgelegten Kontenpasswort im ActiveDirectory anlegen wollte. Dabei handelt es sich um die Linuxrechner hier am Standort die in naher Zukunft unsere DXS Umgebung bereichern sollen.

Schritt 1: lernen wie man mit der PowerShell überhaupt etwas macht, das obligatorische “hallo welt!” war sehr einfach.
Schritt 2: Aufrufe über das ADSI-Commandlet um die API zum anlegen von Objekten zu benutzen, das war auch einfach.
Schritt 3: Herausfinden wo im Technet die UserAccountControl-Zahlen stehen, das hat schon etwas länger gedauert
Schritt 4: MultiValue-Felder .. da benutzt man wohl Arrays und .PutEx
Schritt 5: Passwort setzen auf einen vorgegeben Wert und nicht mehr den Computernamen

Das ganze hat mich jetzt die meiste Zeit des Nachmittages beschäftigt, funktioniert aber schon mal soweit. Morgen mach ich das dann noch schön und ordentlich damit keiner mehr meckert.
Und so sieht das bis jetzt aus:

Als kleines extra hab ich mir dann doch nochmal ktpass genauer angesehen worüber ich solang geflucht habe. Offensichtlich schreibt das bei uns einfach nur die Passwörter nicht ins Kerberos was die Option +rndpass etwas unsinnig macht.
Wenn man das aber mit “-pass Klartextpasswort” aufruft erzeugt mir das eine Keytab die auch unter Linux richtig funktioniert.
Zum schluss lass ich mir also die Passwörter zufällig von der PowerShell erzeugen und übergebe die als Parameter an ktpass -> Wiese grün …
Aber auch erst morgen …

Mr. Scott macht jetzt Feierabend

Update: Testweise für 150 Klienten ein Konto angelegt mit Zufallspasswort und zugehöriger Keytab, läuft :)
Script ist auch etwas schöner bin nur zu faul es upzudaten, aber ich erstelle jetzt auch unter-OUs und teste vorm anlegen ob  vielleicht schon ein gleichnamiges Objekt vorhanden ist.