FLDT (Fast Linux Deployment Toolkit) uses a variety of open source tools to quickly image and configure Linux hardware, and is versatile enough to handle either single machines or large batches of systems. This combination of various small, sharp tools is key for the Unix philosophy of "Do One Thing and Do It Well."
FLDT was developed by Penn Manor High School student Andrew Lobos in conjunction with the Penn Manor IT Team for use in the 2014 Penn Manor High School 1:1 Student Laptop Program.
Imaging is accomplished by using partclone to copy and restore only the used blocks from the file system. Images are transferred to clients via NFS or multicasted via udpcast. FLDT also provides methods for running post-image scripts, such as machine-specific configurations like automatically setting hostnames and forcing password change on next boot. Additionally, the host database and imaging can be managed via a custom Node.js powered web panel.
Information about the Penn Manor 1:1 student laptop program, which heavily used this software, can be found here.
/images
The information listed below will provide generic instructions on the setup process. For a detailed guide on the entire setup process, please refer to the setup guide.
Basic installation is as follows:
# Clone the project and project files
git clone http://github.com/tomswartz07/FLDT
# Install Node.js dependencies
cd FLDT/server
npm install
# Build bootimages
cd ../bootimage
./makeimage
cp -r images/* /var/lib/tftpboot
Next, set up a PXE infrastructure to boot the generated images. A detailed guide for setting up the PXE boot environment is found on the ArchWiki.
FLDT is not as turn-key as other imaging solutions, such as FOG - but it makes up for this in the ease by which it may be configured.
Each "action" that FLDT performs is a separate script, which is put into the bootable image. For example, a bash script may be used to force the user to reset a password on first login.
If you need FLDT to do something different, simply edit the scripts in bootimage/scripts
and run makeimage.sh
to regenerate the boot images.