University Netboot

Created For - Work

Created - Feb. 21, 2014, 8 p.m.

Binary available - Link

Source available - Link

Language Used - Python

In order to meet the requirements of a stable, easy to maintain lab environment, I chose to implement an LTSP solution. I have created two LTSP servers, one based on Ubuntu 12.04 and the other on Ubuntu 14.04. Each server offers different images, including a base lab image, an ACM programming competition image, and an Embedded Systems lab image. The lab computers are served boot information from DNSmasq (we have no control over the university dns server) and chainload an ipxe image with an embedded script that directs the clients to our boot server. Our boot server runs a Python web script that generates the boot menu. The boot menu is generated for each client based on the mac address of the client. I maintain a MySQL database with certain information for each client, namely last known IP, default boot option and room number. For example, the only clients that get the Embedded Systems boot option are in room Derr 236. Furthermore, client computers that are not registered are not permitted to netboot. When such clients attempt to netboot, they are given a ticket number and an email address to contact. This ensures we have accurate records for each client. My co-worker Mason Egger wrote an admin web interface for the registration system in Perl.