[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Diskless Administration



On Sam, 19 Jul 2003, Stefan Baehre wrote:
> Ich möchte in einem kleinen Heim-LAN die Datenhaltung zentrieren,
> also ein Fileserver, die restlichen Rechner diskless Clients. Das

Wir haben das auf unserem Uni Institut mit ca 15 Rechnern so laufen.

> Welches ist der richtige Weg, auf so einem System Software zu
> installieren? Tut man es auf einem Client, werden nicht zwingend alle
> Dateien in das Master-Image installiert, z.B. der /etc und /var Zweig

Wir haben einen Master DC, der die Dateisysteme per NFS rw bekommt, die
clients sind alle ro von /.

Jeder client DC hat ein eigenes /etc und /var, dass wird aber jedesmal
beim booten auf dem server mit rsync abgeglichen.

Ablauf (ich verwende *nicht* das diskless Packerl, sondern habe ein
einziges boot script selber geschreiben, dass vor allen anderen
anläuft):

if [ ! `hostname` = masterdc ] ; then
	# ethernet ist vom netboot sschon laufend., noch lo starten
        ifconfig lo 127.0.0.1 up
	# das ist ein ssh key der *nur* ein Programm ausführen kann,
	# nämlich das build-dc-etc (siehe unten) script, in dem die 
	# clients /etc und /var
	# mit den des master dc abgeglichen werden
        ssh -i /root/.ssh/dcstart.id_dsa mein.nfs.und.alles.server
        mount -n /proc
        /etc/init.d/portmap start
        echo -n "Mounting local etc directory under /etc:"
        mount -n -o nolock -t nfs ip-adrr-des-srver:/usr/dc/debian-dc/`hostname`/etc /etc
	 echo " done"
	echo -n "Mounting local var directory under /var:"
	mount -o nolock -t nfs ip-addr-des-server:/usr/dc/debian-dc/`hostname`/var /var
	echo " done"
        echo -n "Fixing /etc/mtab: "
        cat /proc/mounts > /etc/mtab
        echo "done"
        exit 0
fi


Das script build-dc-etc schaut so aus:
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/var 2>&1
cd $IP
#
# hier werden die DC spezifischen Konfigurationsfiles hinübergespielt:
#
echo "Copying changed /etc files ..."
cp -a etc-changefiles/* etc/ 2>&1
#
# Wir generieren auch noch ein eigenes XF86Config file, da wir ziemlich
# verschiedene Konfigurationen haben
#
echo "Generating XF86Config-4 file ..."
. etc/X11/X-spec.txt
sed -e "s/%%DEVICE%%/$DEVICE/g;s/%%MONITOR%%/$MONITOR/g;s/%%LONG%%/$LONG/g" etc/X11/XF86Config-4.generic > etc/X11/XF86Config-4
echo "Local DC setup complete."


Das wars. Obiges script in den rcS.d start Prozess eingehängt, den ssh
key mit den entsprechenden options generieren, und alles läuft. 

Software wird entweder auf dem amster dc installiert, oder mit
	chroot /usr/dc/debian-dc
beim nächsten boot ist wieder alles syncron auf den anderen DCs.

Wenn du genauere Anleitungen brauchst, kann ich dir sicher helfen!

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
-------------------------------------------------------------------------------
DUNCRAGGON (n.)
The name of Charles Bronson's retirement cottage.
			--- Douglas Adams, The Meaning of Liff



Reply to: