On Fre, 12 Nov 2004, jensebluemchen wrote:
> ich bin gerade dabei ein Netzwerk mit Diskless Workstations aufzubauen. Da 
> ich Linux Neuling bin komme ich allerdings gerade nicht weiter.

Habe ich gemacht f�r unser Institut. Aber als Linux Neuling ist das
glaube ich ein gr�beres Unterfangen.

Meine Unterlagen/BEschreibung auf woody basierend:

HOWTO boot diskless clients mit etherboot, shared nfs sys etc etc etc
=======================================================================
(relativ alt, �nderungen 12.8.2004 NP)

1) etherboot rom f�r die entsprechende Karte basteln und brennen. 
        Ich habe eines mit Optionen f�r MENU, MOTD, local devices
        und DHCP!
        (Umstellung auf PXE ist geplannt)

2) dhcp am server (siehe dhcp.conf) verteilt kernel image (nbi format)
        erstellen mit
        mknbi-linux --ip="dhcp" vmlinuz > vmlinuz.net
   nat�rlich mit entsprechenden files. (In dhcp.conf steht der file name!)
   WICHTIG config Punkte f�r kernel compilieren:
        CONFIG_IP_PNP=y
        CONFIG_IP_PNP_DHCP=y
        CONFIG_DEVFS_FS=y               JA devfs ist NOTWENDIG!!!

3) Maschine startet und wirft etherboot rom auf netzwerk karte an, die
   sendet boot requests, bekommt vom server den kernel mit tftpboot.

4) kernel bootet mit ip="dhcp" (von mknbi-linux �bernommen), sucht daher
   mit nfs ein root fs, die infos bekommt es vom dhcp server (hostname,
   router, gw, ... siehe dhcp.conf), mounted root fs = das shared fs
   f�r alle DCs (!ACHTUNG: Wir haben die fs von server und diskless
   clients getrennt, wenn server auf eine 64bit architektur umzieht
   macht das keine Probleme)

5) Ein neues debian start script habe ich erstellt: diskless dass nach
        diskless:/etc/rcS.d/S02diskless
   gelinkt wird. WICHTIG: S01devfsd muss vorher gestartet werden, wird
   aber automatisch wenn man devfsd installiert.

Kommentiertes diskless.sh
#
# diskless.sh
#
# mounting local files systems specific for this client.
#
#
# check auf HAUPT diskless client, von dem Installation gemacht wird, der
# auf alles schreib berechtigungen hat. Der client hat die Master /etc und
# Master /var directories. Alle anderen machen dies:
if [ ! `hostname` = polaris ] ; then
# lo up, klaro
        ifconfig lo 127.0.0.1 up
#
#       Hier gibt es einen ssh key (dcstart.id_dsa) der KEINE passphrase
#       hat, aber wo auf dem server immer das gleiche Programm ausgefuehrt
#       wird: gamma:/usr/local/sbin/build-dc-etc
#
        ssh -i /root/.ssh/dcstart.id_dsa gamma.logic.tuwien.ac.at
# mount proc notwendig
        mount -n /proc
# protmap notwendig f�r  nfs mounten
        /etc/init.d/portmap start
# mounten 
        echo -n "mount new etc ... "
        mount -n -o nolock -t nfs 
128.130.175.3:/usr/dc/debian-dc/`hostname`/etc /etc
        echo "done."
        echo -n "Mounting local var directory under /var:"
        mount -o nolock -t nfs 128.130.175.3:/usr/dc/debian-dc/`hostname`/var 
/var
        echo " done"
# sagt eh alles
        echo -n "Fixing /etc/mtab: "
        cat /proc/mounts > /etc/mtab
        echo "done"
fi

################################


Was tut nun build-dc-etc:
#!/bin/bash
#
# build-dc-etc
#
# Usage: build-dc-etc
#
# The relevant IP adresse is taken from the SSH_CLIENT environment variable!

set $SSH_CLIENT
IP=$1
echo "------------> IP=$IP"

cd /usr/dc/debian-dc
if [ ! -d $IP ] ; then
        echo "`basename $0`: The IPADDR: $IP does not exist in /usr/dc/debian-dc
/"
        exit 1
fi
echo "Syncing /etc files ..."
rsync -av root/etc/ $IP/etc 2>&1
echo "Syncing /var files ..."
rsync -av --exclude='tmp/*' --exclude='lib/logcheck/*' --delete root/var/ $IP/va
r 2>&1
cd $IP
echo -n "Cleaning up /var directory ... "
echo -n "nfs state ... "
rm -rf var/lib/nfs/*
echo "done."
echo -n "Copying changed /etc files ... "
cp -a etc-changefiles/* etc/ 2>&1
echo "done."
echo -n "Generating XF86Config-4 file ... "
. etc/X11/X-spec.txt
sed -e "s/%%DEVICE%%/$DEVICE/g;s/%%MONITOR%%/$MONITOR/g;s/%%LONG%%/$LONG/g" ../X
F86Config-4.generic > etc/X11/XF86Config-4
echo "done."
echo "Local DC setup complete."

#####################################################################

5a) �nderungsfiles (etc.changes) enthalten bei uns NUR
        /etc/hostname           der richtige hostname, wichtig!
        /etc/X11/XF86Config-4   da verschiedene Monitore
    sonst NICHTS im Moment, kann aber jederzeit angepasst werden
    (Ideen daf�r: empty cron scripts, ...)

6) Ab hier geht alles ganz normal debian m��ig weiter, keine �nderungen im
   ganz normalen ablauf, NICHTS sonst.

6a) Nat�rlich darf man nicht auf nis etc vergessen ;-) Wie kommen sonst
    die Infos �ber Benutzer an die DCs.

7) Weitere Punkte (die aber eventuell auch anders zu l�sen sind, je nach
   Erfordernissen): 
        /var/mail und /home wird auch per nfs vom server verteilt,
        mailprogramme laufen lokal
        mails werden vom lokalen exim an den server exim weitergeleitet, der
        macht rewriting etc etc



Wie l�uft die erste Installation, die des Master DC ab: Einfach: Entweder von
floppy oder cdrom (falls vorhanden) booten, h�ndisch filesystems per nfs
mounten, alles �bers netz installieren.

Unser file Struktur am server:
SERVER DC DIR/
--> tftpboot
----> motd
----> debian
-------> lx-2.2.21.net
--> debian-dc
----> root
------> etc
------> var
----> andererdc1
------> etc             da wird immer alles vom master etc reinkopiert
------> var             das wird von cron scripts vom master var erstellt.
------> etc-changefiles hier sind nur die �nderungsfiles, hostname, X config
----> anderedc2
------> etc
------> var
------> etc-changefiles
...


Herzliche Gr��e

Norbert

-------------------------------------------------------------------------------
Norbert Preining <preining AT logic DOT at>         Technische Universit�t Wien
gpg DSA: 0x09C5B094      fp: 14DF 2E6C 0307 BE6D AD76  A9C0 D2BF 4AA3 09C5 B094
-------------------------------------------------------------------------------
Far out in the uncharted backwaters of the unfashionable
end of the western spiral arm of the Galaxy lies a small
unregarded yellow sun.
                 --- Douglas Adams, The Hitchhikers Guide to the Galaxy


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)

Antwort per Email an