Install Workstations Automatically
Turn an empty workstation (that’s not on) into a usable workstation, so that users can log in and begin work.
Only the theory of operation is described at the moment - this is not (yet) a practical howto. The process described has been tested with Fedora Core 4 and Dell GX270. The instructions probably work on most Fedora versions and slightly modified on Ubuntu. Only BIOS setup is machine specific, otherwise many kinds of computers can work with the same kickstart file.
© 2005 Tero Karvinen www.iki.fi/karvinen
Procedure Overview
Workstation Prequisites
BIOS
- PXE booting is supported by BIOS and enabled
- Wake On LAN (aka WOL, magic packet, Automatically boot on NIC) is supported and enabled
- Boot PXE only on Wake on LAN (otherwise normal boot order floppy, cd, hd)
On many BIOSes, the setup procedure is not very logical. Booting trough network with PXE only for WOL makes it easy to prevent compters installing OS again after reboot.
Working network hardware connecting workstations to a server trough a switch.
MAC numbers of each workstation. Can be obtained from a switch with snmpwalk or with a broadcast ping
# ping -b 10.0.0.255 # arp
Server Prequisites
- DHCP server (for distribution network configuration to workstations and for starting PXE) - TFTP server (for distributing PXE images to workstations) - HTTP server (for distributing ks.cfg and package mirror) - A tested kickstart configuration ks.cfg
Process
- Wake On LAN. Server sends Wake On LAN magic packet to each workstation. Workstations boot (even though they are completely shut down). Workstations boot to PXE, because it is set so in BIOS.
- DHCP. Workstations BIOS PXE agent starts, built in DHCP client starts sending DHCP_DISCOVER, requesting network configuration and PXE boot instructions. Server gives the clients the basic network settings (ip address, network mask, default gateway, domain name servers) and PXE booting instructions (next-server, filename)
- PXE. Workstations BIOS PXE‘s built in TFTP client (trivial file transfer protocol, not same as ftp) starts to download filename (pxelinux.0) from next-server (our install server) as instructed in DHCP_OFFER.
- The boot loader, pxelinux.0 displays a boot menu as described in pxelinux.cfg/default
- After a delay, one label in boot menu is chosen, BIOS PXE TFTP client downloads kernel (vmlinuz) and ramdisk image (initrd)
- Linux boots, installer (anaconda) starts. Installer uses ks.cfg according to instructions passed by bootloader.
- Kickstart. Installer runs, downloads netstg2.img and packages from server (http)
- Installer runs normally. Questions automatically get answers from ks.cfg
- Reboot. Computer reboots after installation. Because Boot to PXE only with WOL, install does not start automatically.
- Done. Installation is ready. Users can log in and use computer and all progams normally.
Random tips
- “../os/” folder. Use ‘wget -r’ to make a local mirror. ftp://ftp.funet.fi/pub/linux/mirrors/fedora/linux/core/4/i386/os/
- tftp is an xinetd service. It is started with ‘chkconfig tftp on’
- tfpt requires a hole in the firewall, for example