mittels Radmind ist es möglich, mehrere Rechner zentral zu verwalten.
http://rsug.itd.umich.edu/software/radmind/
Funktionsweise
Das ganze funktioniert grob folgendermaßen:
- Ein Rechner dient als "Vorlage"
- Von diesem Rechner werden sogenannte "Loadsets" erstellt (Base- / Overload).
- Diese werden auf einen Server übetragen.
- Die zu administrierenden Clients gleichen ihre Dateisysteme gegen die auf dem Server gespeicherten "Loadsets" ab.
Einem Transskript, welches eine Aufzählung aller im Loadset enthaltenen "Elemente" (z.B.: Dateien, Verzeichnisse, Links) des Dateisystems ist.
Diese Aufzählung ist eine Textdatei, die u.a. den Typ, Namen, Änderungsdatum und Prüfsumme enthält.
Und den Dateien selbst.
Eine Baseload ist das initiale Abbild des Dateisystems, des Rechners, der als Vorlage dient.
Hier sind sämtliche (ab / alles) Elemente des Dateisystems enthalten.
Ein Overload beschreibt die Unterschiede zwischen vorher erstellten Loadsets (Base- / Overload) und dem aktuellen Zustand des Dateisystems.
Installation
Eine (nicht mehr ganz aktuelle) Version von Radmind ist im Portage-Tree enthalten.
Improvisiertes Runscripts für Radmind:
/etc/init.d/radmind
Code: Select all
#!/sbin/runscript
depend() {
need net
use dns logger
}
start() {
ebegin "Starting radmind"
start-stop-daemon --start --exec /usr/sbin/radmind \
--pidfile /var/run/radmind.pid \
-- -p /var/run/radmind.pid ${RADMIND_OPTS}
eend $? "Failed to start radmind"
}
stop() {
ebegin "Stopping radmind"
start-stop-daemon --stop \
--pidfile /var/run/radmind.pid \
--exec /usr/sbin/radmind
eend $? "Failed to stop radmind"
}
Code: Select all
# /etc/conf.d/radmind
RADMIND_OPTS="-w 1 -U -a 10.5.9.250"
Code: Select all
# /etc/conf.d/radmind
RADMIND_OPTS="-a 10.5.9.250"
Muster Client für die "Vorlagen"
Es muss ein "negatives Transskript" erstellt werden, welches alle Elemente des Dateisystems auflistet, die bei der Erstellung von Loadsets nicht berücksichtigt werden sollen.
Hierzu am besten erstmal ein Transskript des ganzen Dateisystems erstellen
Code: Select all
fsdiff -C -c sha1 –o /var/radmind/client/base.T /
Danach nochmals /var/radmind/client/base.T erstellen.
Code: Select all
fsdiff -C -c sha1 –o /var/radmind/client/base.T /
Dieses /var/radmind/client/base.T ist dann das Transskript für die Baseload.
Server
/var/radmind/config wird Benutzt um sogenannte Command-Files, die Transskripte zusammenfassen, Client IP-Adressen (IP Adressbereichen) zuzuordnen.
Z.B.:
Code: Select all
192.168.0.42 meinCommandFile.K
192.168.0.<10-20> nocheinCommandFile.K
Code: Select all
touch /var/radmind/command/neu.K
echo "IP-AdresseMusterClient /var/radmind/command/neu.K" > /var/radmind/config
Code: Select all
/usr/local/sbin/radmind
Code: Select all
/etc/init.d/radmind start
Auf dem Client:
Code: Select all
lcreate -h ServerAdresse /var/radmind/client/base.T
Code: Select all
lcreate –N –h ServerAdresse /var/radmind/client/negative.T
Code: Select all
cd /var/radmind/tmp/transcript
lcksum -c sha1 -n base.T
lcksum -c sha1 negative.T
Code: Select all
mv /var/radmind/tmp/transcript/base.T /var/radmind/transcript/
mv /var/radmind/tmp/transcript/negative.T /var/radmind/transcript/
mv /var/radmind/tmp/file/base.T /var/radmind/file/
mv /var/radmind/tmp/file/negative.T /var/radmind/file/
Hier /var/radmind/command/neu.K
Code: Select all
p base.T
n negative.T
Auf dem "Muster Client"
Code: Select all
ktcheck –c sha1 -h ServerAdresse
fsdiff -A -c sha1 /
An diesem Punkt können nun auch andere Clients, auf denen Radmind installiert ist mit diesem Loadset versorgt werden.
Code: Select all
ktcheck –c sha1 -h ServerAdresse
fsdiff -A -c sha1 / | lapply -h ServerAdresse
Overloads können nun ähnlich erstellt werden.
Z.B. nachdem auf dem "Muster Client" eine neue Software installiert oder ein Update durchgeführt wurde.
Auf dem Muster Client:
Code: Select all
fsdiff -C -c sha1 –o /var/radmind/client/meineNeueOverload.T /
lcreate -h ServerAdresse /var/radmind/client/meineNeueOverload.T
Code: Select all
cd /var/radmind/tmp/transcript
lcksum -c sha1 -n meineNeueOverload.T
Code: Select all
mv /var/radmind/tmp/transcript/meineNeueOverload.T /var/radmind/transcript/
mv /var/radmind/tmp/file/meineNeueOverload.T /var/radmind/file/
Hier /var/radmind/command/neu.K
Code: Select all
p base.T
p meineNeueOverload.T
n negative.T
Quellen
http://rsug.itd.umich.edu/software/radmind/
http://webapps.itcs.umich.edu/radmind/i ... e_Tutorial
http://webapps.itcs.umich.edu/radmind/i ... S_Cookbook
http://webapps.itcs.umich.edu/radmind/i ... /Main_Page
soweit ... werde diesen Beitrag eventuell noch um TLS (SSL Authentifizierung und Verschlüsselung) erweitern.
Gruß,
rc
