| | 1 | = Bereitstellung eines Mini-Linux (Kiosk) |
| | 2 | |
| | 3 | Porteus ist ein auf Slackware basierendes Linux, welches von DVD, USB-Stick, HDD aber eben auch über PXE/TFTP/HTTP bootet und einen Browser, SSHD, VNCD bereitstellt. |
| | 4 | |
| | 5 | == PXE |
| | 6 | Der DHCP (densmasq) stellt neben der IP auch PXE-Bootmenu zur Verfügung. Mit dem TAG |
| | 7 | {{{ |
| | 8 | pxe-service=x86PC,Porteus Kiosk,/kiosk/pxelinux,10.16.112.2 |
| | 9 | }}} |
| | 10 | bootet jeder mit kiosk getaggte Client vom TFTPD auf 10.16.112.2 |
| | 11 | {{{ |
| | 12 | 00:00:00:00:00:00,set:kiosk,kiosk01,12h |
| | 13 | }}} |
| | 14 | |
| | 15 | == TFTPD |
| | 16 | TFTP-HPA stellt das TFTP-Root unter /srv/tftp bereit, im Unterordner kiosk müssen liegen: |
| | 17 | {{{ |
| | 18 | pxelinux.0 |
| | 19 | pxelinux.cfg (Ordner) |
| | 20 | | |
| | 21 | +- default (Bootmenüeinträge für unbekannte Clients) |
| | 22 | +- kiosk32 (Porteus 32) |
| | 23 | +- kiosk64 (Porteus 64) |
| | 24 | +- 01-MAC-Adresse (für spezielle clients - oder) |
| | 25 | +- HEX (IP-Adresse in HEX, z.B. 0A107001 = 10.16.112.1) |
| | 26 | }}} |
| | 27 | |
| | 28 | Die Client-Dateien per SymLink auf kiosk32 oder kiosk64 legen: |
| | 29 | |
| | 30 | {{{ |
| | 31 | #kiosk64 |
| | 32 | |
| | 33 | label porteus |
| | 34 | menu label Porteus Kiosk 64bit |
| | 35 | kernel porteus/vmlinuz |
| | 36 | append initrd=porteus/initrd.xz,porteus/initrdpxe.xz quiet http_server=10.16.112.2/porteus/ |
| | 37 | |
| | 38 | #kiosk32 |
| | 39 | label porteus_i586 |
| | 40 | menu label Porteus Kiosk 32bit |
| | 41 | kernel porteus_i586/vmlinuz |
| | 42 | append initrd=porteus_i586/initrd.xz,porteus_i586/initrdpxe.xz quiet http_server=10.16.112.2/porteus_i586/ |
| | 43 | }}} |
| | 44 | |
| | 45 | Unter /srv/tftpd/kiosk/porteus bzw. /srv/tftpd/kiosk/porteus_i586 liegen die Porteus-Dateien: |
| | 46 | {{{ |
| | 47 | http (Ordner) |
| | 48 | | |
| | 49 | +- docs (Ordner) |
| | 50 | | |
| | 51 | +- default.jpg GNU_GPL kiosk.jpg kiosk.sgn License.txt version |
| | 52 | +- xzm (Ordner) |
| | 53 | | |
| | 54 | +- 000-kernel.xzm 001-core.xzm 002-firefox.xzm 003-settings.xzm 004-wifi.xzm 08-ssh.xzm 09-x11vnc.xzm |
| | 55 | initrdpxe.xz |
| | 56 | initrd.xz |
| | 57 | vmlinuz |
| | 58 | }}} |
| | 59 | |
| | 60 | |
| | 61 | == HTTPD |
| | 62 | Der Apache2 stellt die Dateien unter /srv/tftp/kiosk/porteus/http als /porteus bzw. /srv/tftp/kiosk/porteus_i586/http als /porteus_i586 für den Boot bereit, /etc/apache2/sites-enabled/000-default: |
| | 63 | {{{ |
| | 64 | Alias "/porteus" "/srv/tftpd/kiosk/porteus/http" |
| | 65 | <Directory "/srv/tftpd/kiosk/porteus/http"> |
| | 66 | Options Indexes |
| | 67 | Require all granted |
| | 68 | </Directory> |
| | 69 | |
| | 70 | Alias "/porteus_i586" "/srv/tftpd/kiosk/porteus_i586/http" |
| | 71 | <Directory "/srv/tftpd/kiosk/porteus_i586/http"> |
| | 72 | Options Indexes |
| | 73 | Require all granted |
| | 74 | </Directory> |
| | 75 | }}} |
| | 76 | |
| | 77 | == Porteus-Config |
| | 78 | Porteus Kiosk legt in der Datei docs/kiosk.sgn eine verschlüsselte Konfiguration ab. In unserem Fall ist dort hinterlegt, dass beim Booten die eigentliche Konfiguration vom paedml.kg-fds.de geholt werden soll: |
| | 79 | |
| | 80 | {{{ |
| | 81 | kiosk_config=http://paedml.kg-fds.de/kiosk/config.php |
| | 82 | }}} |
| | 83 | |
| | 84 | Auf dem paedml kann damit über die übergebene PCID (Porteus) oder die IP des Clients für jeden Client eine eigene Config übermittelt werden. |
| | 85 | |
| | 86 | == Porteus-Boot |
| | 87 | PXE-Boot (DHCP 10.16.112.2) zum TFTP (10.16.112.2), vor dort kommen vmlinuz, initrd.xz und initrdpxe.xz, die vom HTTP (10.16.112.2 - ist als APPEND-Parameter angehängt) die .xzm-Module nachladen. Ein C-Programm (/sbin/init) aus dem Modul 03-settings.xzm entschlüsselt die kiosk.sgn, lädt die Config vom paedml.kg-fds.de nach und startet den Client (X11, Firefox, VNCD und SSHD). Die zu ladende Webseite wird in der Config angegeben. |