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)