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: