The Fast Linux Deployment Toolkit
Shell JavaScript
Pull request Compare This branch is 31 commits ahead of 4ndr3w:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bootimage
screenshots Fix minor spelling errors Jul 7, 2014
server
.gitignore
LICENSE
README.md
pxeboot.tar.gz
setup.md
startup.sh

README.md

FLDT

The Fast Linux Deployment Toolkit

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.

External References:

Screenshot

Hosts

Install

Prerequisites

  • Node.js
  • Redis-Server
  • CPIO
  • A NFS export of image files located at /images
  • A DHCP server configured for PXE booting, along with TFTPd
  • A compiled Linux kernel with support for your hardware, devtmpfs, and NFS filesystems.

Installation

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.

Customizing Image Process

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.