| Version 71 (modified by , 13 years ago) ( diff ) |
|---|
- Aufsetzen eines neuen LtspServers from scratch
Aufsetzen eines neuen LtspServers from scratch
Hier werden Hinweise beschrieben, wie man einen völlig neuen LtspServer im pädagogischen Netzwerk des Kepler-Gymnasiums aufsetzen kann. Dies ist i.d.R. erheblich aufwändiger, als einen existierenden Server auf eine neue Maschine zu klonen.
Vorbermerkung
Zur Zeit sieht es so aus, als ob wir in Zukunft nur noch virtualisierte Server verwenden werden. Der Rest dieser Seite geht also davon aus, dass ein Virtualisierer (bei uns derzeit ProxMox 2) bereits korrekt aufgesetzt ist. Der "bare metal" Host sollte mit einem RAID 1 aufgesetzt sein, die virtuelle Maschine selbst kann daher ein einfaches Dateisystem haben.
Im folgenden gehen wir davon aus, dass das Root-Dateisystem der neuen VM auf /dev/vda angelegt wird und der Swap auf /dev/vdb.
Gelten diese Gegebenheiten zum aktuellen Zeitpunkt nicht mehr, so muss das Vorgehen auf dieser Seite entsprechend angepasst werden.
Edubuntu installieren
- Ein aktuelles Edubuntu-Installations-ISO herunterladen und in das virtuelle DVD-Laufwerk der VM einhängen
- VM starten
- Sprache "Deutsch" auswählen
- "Edubuntu installieren auswählen"
- "Aktualisierungen herunterladen" auswählen
- "Lizensierte Inhalte installieren" auswählen
- "LTSP installieren" auswählen
- Bei der Partitionswahl "etwas anderes" auswählen, dann wählen:
/dev/vda1als//dev/vdb1als Swap
- Nutzer "linadmin" mit dem zugehörigen Passwort
Die Installation dauert nur wenige Minuten :-).
- Installations-DVD aus dem virtuellen DVD-Laufwerk entfernen und den neuen Server booten.
Grundkonfiguration
Netzwerk einrichten
- als lindamin einloggen
- mittels
sudo -sHroot werden - Unser neuer Server benötigt zuerst eine feste IP-Adresse im Kepler-Netzwerk.
# editor /etc/networks/interfaces
- Anpassen nach dem folgende Schema:
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 #iface eth0 inet dhcp iface eth0 inet static dns-nameservers 10.32.1.251 dns-search kg-fds.de address 10.32.2.<ServerNummer> netmask 255.240.0.0 gateway 10.32.1.254 network 10.32.0.0 broadcast 10.47.255.255 - Server neu booten
- Anpassen nach dem folgende Schema:
Ab jetzt ist unser neuer Server im Kepler-Netzwerk (und im VPN) unter ssh linadmin@10.32.2.<ServerNummer> erreichbar und hat Verbindung zum Internet.
Natürlich soll unser neuer Server im Netzwerk auch einen Namen haben, daher
- In
paedml:/etc/hostseinen Eintrag für "ltsp<ServerNummer>" eintragen und den dnsmasq neu starten. (Hinweis: Steht der neue Server im Lehrernetz, so gehört der Eintrag auf den Rechnerdhcp(10.16.112.2):dhcp:/etc/hosts.)
SSH-Zugang einrichten
- Wir loggen uns per
ssh linadmin@ltsp<ServerNummer>ein. - Wir werden root mittels
sudo -sH - Pakete auf den neusten Stand bringen:
# apt-get update # apt-get dist-upgrade
- Bevor wir irgend etwas weiteres beginnen, installieren wir einen Editor :-) :
# apt-get install emacs
- Root-Login ermöglichen:
# passwd
- Den SSH-Schlüssel von
root@LTSP, sowie dieknown hostsundauthorized_keysvon einem existierenden LtspServer auf unseren neuen Server schieben:- auf einem laufenden LtspServer als root einloggen, dort:
# rsync -a .ssh ltsp<ServerNummer>:
- auf einem laufenden LtspServer als root einloggen, dort:
Ab jetzt können sich kup, bau, root@paedml und root@LTSP mit ihren SSH-Schlüsseln einloggen.
- Den Passwort-Login für Root unterbinden:
# emacs -nw /etc/ssh/sshd_config # service ssh force-reload
Option "PermitRootLogin without-password" setzen.
Filesysteme beim Boot automatisch reparieren
In /etc/default/rcS ändern:
FSCKFIX=yes
Niemals am GRUB-Bootschirm warten
- In
/etc/default/grubeinfügen:# This is a headless server. We never want it to wait for user input: GRUB_RECORDFAIL_TIMEOUT=60
- dann
update grubausführen
An dieser Stelle bietet sich ein Backup der VM an.
Zugriff auf den paedml
Interne Firewall
Damit der neue Server über alle Ports auf den paedml zugreifen darf (für LDAP, NFS, etc), muss dafür ein Eintrag in der Konfiguration der "internen Firewall" der Linuxmusterlösung eingefügt werden. (Siehe auch PaedmlAnpassungen.)
In paedml:/etc/init.d/linuxmuster-base:
iptables -A IN-eth1-ALLOWED -s 10.32.2.<ServerNummer>/32 -j ACCEPT
NFS-Anbindung
Die Anbindung an verschiedene Serververzeichnisse geschieht bei uns momentan gemischt über NFS und CIFS. Das Setup ist aber noch immer im Fluss, siehe u.a. #1213, #1192.
Momentan werden die Himeverzeichnisse nicht über NFS gemountet (sondern "just in Time" beim Login per pam_mount über CIFS (s.u.). Daher ist home unten auskommentiert. Je nach Bedarf anpassen!
- In
/etc/fstabhinzufügen (Hinweis: dienoautoEInträge sind ein Workaround und können möglicherweise inzwischen entfallen, siehe #856):# Home ueber NFS: #10.32.1.1:/nfsexport/home/students /home/students nfs _netdev,bg,noauto 0 0 #10.32.1.1:/nfsexport/home/teachers /home/teachers nfs _netdev,bg,noauto 0 0 10.32.1.1:/nfsexport/home/share /home/share nfs _netdev,bg,noauto 0 0 10.32.1.1:/nfsexport/tasks /var/cache/sophomorix/tasks nfs _netdev,bg,noauto 0 0 10.32.1.1:/nfsexport/home/ftp/Scans /home/ftp/Scans nfs _netdev,bg,noauto 0 0 10.32.1.1:/nfsexport/home/cds /home/cds nfs _netdev,bg,noauto 0 0
- Verzeichnisse anlegen, richtige Besitzrechte einstellen und mounten
# mkdir -p /home/{students,teachers,share,ftp/Scans,cds} /var/cache/sophomorix/tasks # chgrp teachers /home/teachers # chmod o-r /home/teachers # apt-get install nfs-common # mount -a
LDAP-Anbindung
1. Option: linuxmuster.net-Paket
Die einfachste Möglichkeit, die LDAP-Anbindung an den Linuxmuster.net-Server (paedml) einzurichten, wäre sicherlich, das entsprechende linuxmuster.net-Paket zu installieren (linuxmuster-client-auth). Die Pakete gibt es aber nur für die LTS-Versionen von Ubuntu. Befinden wir uns auf einer nicht-LTS-Version, müssen wir die Anbindung von Hand vornehmen.
2. Option: LDAP manuell konfigurieren
- LDAP-Client-Pakete und Name Server Caching Daemon installieren
# apt-get install ldap-auth-client nscd
- Server:
ldaps://10.32.1.1/ - Distinguished name:
dc=kg-fds,dc=de - LDAP-Version: 3
- Make local root Database admin: ja
- LDAP-Login nötig: nein
- LDAP account for root: cn=admin,dc=kg-fds,dc=de
- LDAP-Root-Passwort: (siehe
paedml:/etc/ldap/slapd.conf)
- Server:
- Wir verwenden innherhalb des Kepler-Netzwerkes keine Zertifikate für SSL-Verbindungen.
Daher in/etc/ldap.confändern:tls_checkpeer no
- Nun dem Name Service Switch sagen, dass er die Nutezrinformationen über LDAP beziehen soll:
In/etc/nsswitch.confändern:passwd: compat ldap group: compat ldap shadow: compat ldap
Ab jetzt könnten sich Nutzer des Kepler-Netzwerkes mit ihrem Nutzernamen und Passwort einloggen -- wenn sie ein Homeverzeichnis hätten. Sofern die Homeverzeichnisse nicht komplett über NFS gemountet werden, wird hierzu der Service pam_mount verwendet, der die Homeverzeichnisse just in time anlegt und mountet.
pam_mount konfigurieren (CIFS-Anbindung)
Dieser Schritt wird nur benötigt, wenn die Homeverzeichnisse (wie bei der Linuxmuster.net üblich) just in time über CIFS gemountet werden. Zudem mounten wir die Verzeichnisse als workaround derzeit nicht direkt nach /home/, sondern nach /home/pam_mounts. Die Sache ist noch immer in der Testphase.
# apt-get install libpam-mount cifs-utils
In /etc/security/pam_moubnt.conf.xml ändern/hinzufügen:
<debug enable="1" />
<!-- Volume definitions --> <volume options="rw,nosuid,nodev,iocharset=utf8,nobrl" user="*" mountpoint="~" path="%(USER)" server="paedml" fstype="cifs" />
Ab jetzt können sich Nutzer des Kepler-Netzwerkes mit Nutzername und Passwort einloggen und sehen ihr Homeverzeichnis.
LightDM konfigurieren
LightDM-Optionen setzen. Z.B. muss die Eingabe eines Benutzernamens erlaubt werden. Die Gast-Sitzung sollte deaktiviert sein. Hier kann auch die voreingestellte Sitzung gewählt werden:
In
/etc/lightdm/lightdm.conf:[SeatDefaults] user-session=gnome-fallback greeter-hide-users=false greeter-show-manual-login=true greeter-allow-guest=false
- dann
# restart lightdm
Software
Einige zusätzliche Software muss installiert und konfiguriert werden.
- Siehe hierzu LtspServerUpdate/Saucy: Die dort beschriebenen Prozeduren zu Gnome-Panel, Docky und Hintergrundbild durchführen.
- weitere Software:
# apt-get install dconf-editor subversion nautilus-dropbox synapse codeblocks pingus hedgewars
- TODO: weitere?
Vorgaben für Gnome-Settings (dconf) einrichten
- User-Datenbank einrichten und erzeugen:
# cat > /etc/dconf/profile/user <<EOF user-db:user system-db:site EOF
# mkdir /etc/dconf/db/site.d # cat > /etc/dconf/db/site.d/00_site_settings <<EOF [org/gnome/metacity] compositing-manager=true [com/ubuntu/update-notifier] auto-launch=false hide-reboot-notification=true no-show-notifications=true show-apport-crashes=false [apps/indicator-session] suppress-restart-menuitem=true suppress-shutdown-menuitem=true [com/canonical/unity/launcher] favorites=['application://nautilus-home.desktop','application://gnome-activity-journal.desktop','application://firefox.desktop','application://libreoffice-writer.desktop','application://libreoffice-calc.desktop','application://libreoffice-impress.desktop','unity://running-apps','unity://expo-icon','unity://devices'] # turn on the desktop switcher [org/compiz/profiles/unity/plugins/core] hsize=2 vsize=2 # turn off curser plugin in gnome-settings-daemon, see ticket:1212 [org/gnome/settings-daemon/plugins/cursor] active=false # set default keyboard layout from "de-nodeadkeys" to "de", see ticket:1217 [org/gnome/desktop/input-sources] sources=[('xkb', 'de'), ('xkb', 'de+nodeadkeys')] EOF# mkdir /etc/dconf/db/site.d/locks # cat > /etc/dconf/db/site.d/locks/00_site_locks <<EOF /org/gnome/metacity/compositing-manager /com/ubuntu/update-notifier/auto-launch /apps/indicator-session/suppress-shutdown-menuitem /apps/indicator-session/suppress-restart-menuitem /org/gnome/settings-daemon/plugins/cursor/active /org/gnome/desktop/input-sources/sources EOF
# dconf update
Vorgaben für GConf einrichten
Nachdem Docky nicht mehr verwendet wird, benötigen wir keine Vorgaben mehr, die über das klassiche GCOnf verteilt werden.
pam_systemd
TODO
ev. pam_systemd abschalten, siehe #1208
Timeserver
- ntpd installieren (zuverlässiger als das mitgelieferte
ntpdate, sieheman ntpdate)# apt-get install ntp
- in
/etc/ntp.confalleserver-Zeilen auskommentieren, dann einfügen:# server 10.32.1.253
Start- und Cronskripte
TODO
Skripts in /etc/init.d
TODO
Herunterfahren unterbinden
TODO
LTSP einrichten
LTSP-Client-Image
Wenn während der Installation von Edubuntu die Option LTSP ausgewählt wurde, sind die nötigen Pakete schon installiert. Dann wurde auch bereits ein Client-Image erzeugt, das für uns ungeeignet ist und entfernt werden sollte:
# rm -r /etc/ltsp/*
Das weitere Verfahren entspricht dem unter LtspServerUpdate#Release-UpgradederClient-Images beschriebenen.
lts.conf
Unsere lts.conf befindet sich im SVN und muss von dort in das TFTP-Boot-Verzeichnis verlinkt werden:
# rm /var/lib/tftpboot/ltsp/i386/lts.conf # ln -s /root/LTSP-setup/lts.conf /var/lib/tftpboot/ltsp/i386/
dnsmasq
- Auf den LtspServern läuft ein
dnsmasq, der die DHCP-Anfragen der Clients beantwortet. Die Antwort beinhaltet dann den TFT-Server, von dem der Client seinen Netzwerkbootprozess fortsetzt.# apt-get install dnsmasq # ln -s /etc/linuxmuster/ltsp_config /etc/dnsmasq.d/
- In
/etc/default/dnsmasqändern:CONFIG_DIR=/etc/dnsmasq.d/ltsp_config/$(hostname)/conf,.dpkg-dist,.dpkg-old,.dpkg-new
- dnsmasq neu starten
# service dnsmasq restart
make_ltsp_config-Skript
- Unser neuer Server benötigt das Verzeichnis
/etc/linuxmuster:# mkdir /etc/linuxmuster
- Auf dem paedml muss ein Verzeichnis für die DHCP-Config des neuen Servers angelegt werden (anbei: es wäre besser, wenn das
make_ltspc_onfig-Skript dies erledigen würde):
Auf dem paedml:
# mkdir -p /etc/linuxmuster/ltsp_config/ltsp<ServerNummer>/conf
- Das Skript
make_ltsp_config, das die zu beantwortenden DHCP-Anfragen festlegt, muss um den Hostnamen des neuen Servers erweitert werden:
Auf dem paedml die passenden Anpassungen vornehmen (Schleifen):
# emacs -nw /usr/local/sbin/make_ltsp_config # emacs -nw /usr/local/sbin/make_ltsp_config.php # svn commit /usr/local/sbin/make_ltsp_config* # make_ltsp_config
TFT-Boot einrichten
- Da die Datei
/var/lib/tftpboot/ltsp/i386/pxelinux.cfg/defaultbei jedem Update des Client-Images überschrieben wird, verwenden wir eine Datei namens0A, was dem ersten Byte der IP-Adresse unseres Netzwerks entspricht (10.*.*.*). Diese erhält Vorrang vordefault. Also:
Datei /var/lib/tftpboot/ltsp/i386/pxelinux.cfg/0A erzeugen, mit Inhalt
default keplerltsp label keplerltsp kernel vmlinuz append ro initrd=initrd.img nbdroot=10.32.2.<ServerNummer>:/opt/ltsp/i386 root=/dev/nbd0 init=/sbin/init-ltsp quiet splash plymouth:force-splash vt.handoff=7
Automatisches Herunterfahren der Clients
- TODO: Molly-Guard einrichten.
- in
/etc/inetd.confdiese Zeile anfügen:2001 stream tcp nowait nobody /usr/sbin/tcpd /bin/cat /etc/ltsp-message
Die Inhalte dieser Wiki-Seite erscheinen, (wo anwendbar und nicht anderweitig angegeben), unter einer Creative-Commons-Lizenz CC BY NC SA 3.0 Germany. Urheber: Dr. Rüdiger Kupper, Kepler-Gymnasium Freudenstadt.