| 441 | | == Mountall-Workaround in `/etc/rc.local` |
| 442 | | |
| 443 | | **Dieser Workaround wird vermutlich nicht mehr benötigt! Der neue Server scheint auch ohne gut zu booten.** |
| 444 | | |
| 445 | | (Wenn nötig, in `/etc/fstab` die NFS-Mounts mit dem Flag `noauto` versehen und in `/etc/rc.local` das Skript `kepler--mountall-workaround` aufrufen.) |
| 446 | | |
| 447 | | Querverweis: #856 |
| 448 | | |
| 449 | | |
| 450 | | == Herunterfahren unterbinden |
| 451 | | |
| 452 | | **Achtung! Dieser Punkt steht im Verdacht, für die !Login/Logout-Probleme auf den LtspServern verantwortlich zu sein! Vorerst lieber auslassen!** |
| 453 | | |
| 454 | | Obwohl mittels dconf bereits der //Shutdown// und der //Restart-Eintrag// aus dem Systemmenü ausgeblendet wurde, ist es sinnvoll, normalen Nutzern prinzipiell diese Rechte wegzunehmen. (Einerseits, weil es vielleicht einen anderen Weg als das Systemmenü gibt, an diese Optionen zu gelangen. Andererseits, weil dconf derzeit (noch?) nicht das Ausblenden des //Suspend//-Eintrags erlaubt.) |
| 455 | | |
| 456 | | Das ist bequem über ein policykit-Konfigurationsfile möglich: |
| 457 | | |
| 458 | | {{{ |
| 459 | | # cat > /etc/polkit-1/localauthority/90-mandatory.d/kepler--disable-shutdown-restart-suspend-hibernate.pkla <<EOF |
| 460 | | [Disable shutdown/whatever] |
| 461 | | Identity=unix-user:* |
| 462 | | Action=org.freedesktop.consolekit.system.stop;org.freedesktop.consolekit.system.restart;org.freedesktop.upower.suspend;org.freedesktop.upower.hibernate |
| 463 | | ResultAny=no |
| 464 | | ResultInactive=no |
| 465 | | ResultActive=no |
| 466 | | EOF |
| 467 | | }}} |
| 468 | | (Querverweise: http://askubuntu.com/questions/93542/how-to-disable-shutdown-reboot-suspend-hibernate/93956#93956, #215) |
| 501 | | |
| 502 | | |
| 503 | | == Nagios auf paedml anpassen |
| 504 | | |
| 505 | | - **Auf dem paedml** in `/etc/nagios3/conf.d/linuxmuster_custom.cfg` entsprechende Einträge per copy-and-paste erstellen, die den neuen Server auf Lebenszeichen testen. |
| 506 | | - Ist die neue Maschine virtualisiert, zwei Einträge erstellen, sowohl für den Virtualisierungshost wie auch die VM. |
| 507 | | |
| 508 | | |
| 509 | | == LTSP einrichten |
| 510 | | |
| 511 | | === LTSP-Client-Image |
| 512 | | |
| 513 | | - 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: |
| 514 | | {{{ |
| 515 | | # rm -r /etc/ltsp/* |
| 516 | | # rm -r /opt/ltsp/* |
| 517 | | }}} |
| 518 | | |
| 519 | | - Dann weiter wie unter LtspServerUpdate#ltsp-build-client beschrieben. |
| 520 | | |
| 521 | | |
| 522 | | === dnsmasq |
| 523 | | |
| 524 | | 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. |
| 525 | | |
| 526 | | - Unser neuer Server benötigt das Verzeichnis `/etc/linuxmuster`: |
| 527 | | {{{ |
| 528 | | # mkdir /etc/linuxmuster |
| 529 | | }}} |
| 530 | | - dann: |
| 531 | | {{{ |
| 532 | | # apt-get install dnsmasq |
| 533 | | # ln -s /etc/linuxmuster/ltsp_config /etc/dnsmasq.d/ |
| 534 | | }}} |
| 535 | | - In `/etc/default/dnsmasq` ändern: |
| 536 | | {{{ |
| 537 | | CONFIG_DIR=/etc/dnsmasq.d/ltsp_config/$(hostname)/conf,.dpkg-dist,.dpkg-old,.dpkg-new |
| 538 | | }}} |
| 539 | | |
| 540 | | === make_ltsp_config-Skript |
| 541 | | |
| 542 | | Auf dem paedml muss ein Verzeichnis für die DHCP-Config des neuen Servers angelegt werden: |
| 543 | | |
| 544 | | Auf dem paedml:: |
| 545 | | {{{ |
| 546 | | # mkdir -p /etc/linuxmuster/ltsp_config/ltsp<ServerNummer>/ |
| 547 | | }}} |
| 548 | | |
| 549 | | Das Skript `make_ltsp_config`, das die zu beantwortenden DHCP-Anfragen festlegt, muss um den Hostnamen des neuen Servers erweitert werden:\\ |
| 550 | | Auf dem paedml die passenden Anpassungen vornehmen (Schleifen): |
| 551 | | {{{ |
| 552 | | # emacs -nw /usr/local/sbin/make_ltsp_config |
| 553 | | # emacs -nw /usr/local/sbin/make_ltsp_config.php |
| 554 | | # svn commit /usr/local/sbin/make_ltsp_config* |
| 555 | | # make_ltsp_config |
| 556 | | }}} |
| 557 | | |
| 558 | | === TFT-Boot einrichten |
| 559 | | |
| 560 | | - Da die Datei `/var/lib/tftpboot/ltsp/i386/pxelinux.cfg/default` bei jedem Update des Client-Images überschrieben wird, verwenden wir eine Datei namens `0A`, was dem ersten Byte der IP-Adresse unseres Netzwerks entspricht (10.*.*.*). Diese erhält Vorrang vor `default`. Also:\\ |
| 561 | | Datei `/var/lib/tftpboot/ltsp/i386/pxelinux.cfg/0A` erzeugen, mit Inhalt |
| 562 | | |
| 563 | | Im Schülernetz:: |
| 564 | | {{{ |
| 565 | | default keplerltsp |
| 566 | | label keplerltsp |
| 567 | | kernel vmlinuz |
| 568 | | 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 |
| 569 | | }}} |
| 570 | | |
| 571 | | Im Lehrernetz:: |
| 572 | | {{{ |
| 573 | | default keplerltsp |
| 574 | | label keplerltsp |
| 575 | | kernel vmlinuz |
| 576 | | append ro initrd=initrd.img nbdroot=10.16.112.<ServerIP>:/opt/ltsp/i386 root=/dev/nbd0 init=/sbin/init-ltsp quiet splash plymouth:force-splash vt.handoff=7 |
| 577 | | }}} |
| 578 | | |
| 579 | | === Automatisches Herunterfahren der Clients beim Server-Shutdown |
| 580 | | |
| 581 | | Das Herunterfahren des Servers hat katastrophale Auswirkungen auf laufende Clients. Die Clients müssen also sauber abgeschaltet werden, bevor der Server neu gebootet werden kann. |
| 582 | | Derzeit verwenden wir einen Polling-Mechanismus, mit dem die Clients bei "ihrem" Server regelmäßig anfragen, ob sie herunterfahren sollen. Dieser Dienst wird über `inetd` auf Port 2001 zur Verfügung gestellt: |
| 583 | | {{{ |
| 584 | | # cat >> /etc/inetd.conf <<EOF |
| 585 | | 2001 stream tcp nowait nobody /usr/sbin/tcpd /bin/cat /etc/ltsp-message |
| 586 | | EOF |
| 587 | | }}} |
| 588 | | |
| 589 | | Um diese "shutdown"-Nachricht zu setzen, verwenden wir das sehr schöne "Molly-Guard". Per Default verhindert das versehentliches Herunterfahren. Wir verwenden es hier so: |
| 590 | | {{{ |
| 591 | | # apt-get install molly-guard |
| 592 | | # cd /etc/molly-guard/run.d |
| 593 | | # mv 30-query-hostname disabled--30-query-hostname |
| 594 | | }}} |
| 595 | | {{{ |
| 596 | | # cat > 30-kepler--ask-confirmation <<"EOF" |
| 597 | | #!/bin/bash |
| 598 | | |
| 599 | | echo "This will shut down all my LTSP clients and reboot this server. |
| 600 | | Note: Don't do this while people are logged in on the clients, |
| 601 | | or they will kill you. You have been warned." |
| 602 | | |
| 603 | | read -n1 -p "Is this really what you want to do (y/n)? " answer |
| 604 | | echo |
| 605 | | |
| 606 | | if [[ $answer == "y" ]] ; then |
| 607 | | exit 0 |
| 608 | | else |
| 609 | | exit 1 |
| 610 | | fi |
| 611 | | EOF |
| 612 | | }}} |
| 613 | | {{{ |
| 614 | | # cat > 40-kepler--shutdown-my-clients <<EOF |
| 615 | | #!/bin/bash |
| 616 | | |
| 617 | | if [[ $(id -u) != 0 ]] ; then |
| 618 | | echo $0: Need to be root |
| 619 | | exit 1 |
| 620 | | fi |
| 621 | | |
| 622 | | shutdownclients --mine |
| 623 | | |
| 624 | | exit $? |
| 625 | | EOF |
| 626 | | }}} |
| 627 | | {{{ |
| 628 | | # chmod a+x 30-kepler--ask-confirmation |
| 629 | | # chmod a+x 40-kepler--shutdown-my-clients |
| 630 | | # chmod a-x disabled--30-query-hostname |
| 631 | | }}} |
| 632 | | |
| 633 | | Geht beim Shutdown etwas schief, darf die Shutdown-Message nicht in der Datei `/etc/ltsp-message` stehen bleiben, weil sonst die Clients direkt nach dem Start wieder herunterfahren (ticket:1114). Die Datei sollte daher bei jedem Boot geleert werden. |
| 634 | | |
| 635 | | Dazu in /etc/rc.local die Zeilen einfügen: |
| 636 | | {{{ |
| 637 | | echo "Clearing /etc/ltsp-message." |
| 638 | | echo > /etc/ltsp-message |
| 639 | | }}} |
| 640 | | |