View Source

{hudson-plugin-info:pluginId=pxe}
{excerpt}This plugin enhances Hudson to support network-booting PCs for rapid, hands-free installations of various OSes, thereby making new slave installations easier.{excerpt}

More specifically, this plugin adds the TFTP service and proxy DHCP service to Hudson. These two combinations enable PCs on the same network to [network boot (also known as PXE boot)|http://en.wikipedia.org/wiki/Preboot_Execution_Environment] and install OSes such as Linux, Solaris, and Windows.

This plugin assumes that your network already has a functioning DHCP server, running on a computer different from Hudson master.

h2.Set up
Download the {{*.iso}} files for OSes that you want to install. Currently, the following OSes are supported. See the respective page for what ISO file you need.

* [OpenSolaris|OpenSolaris PXE boot ISO images]
* [Ubuntu|Ubuntu PXE boot ISO images]
* [Fedora|Fedora PXE boot ISO images]
* [CentOS|CentOS PXE boot ISO images]
* [VMWare ESXi|VMWare ESXi PXE boot ISO images]
* [OracleVM Server|OracleVM Server PXE boot ISO images]

Place those ISO files on the Hudson master, and tell Hudson where they are. Go to "Manage Hudson" > "Network Slave Installation Management" > "Configure":

!pxe-cd.png|align=centre!

Configure Hudson about the additional configuration information. This is necessary because TFTP and DHCP services require the root privilege on Unix.

!pxe-config.png|align=centre!

h2.Installing PCs
Put a PC on the same network as the Hudson master (IOW, topology-wise close enough so that broadcast UDP packets from PCs get to Hudson), and boot from network (on most PCs, this is done by pressing F12 during the BIOS POST screen.)
{info:title=If pressing F12 doesn't help}Some BIOS has a separate configuration entry to enable/disable PXE boot. Some BIOS requires you to tweak boot priority list to boot from network. If your PC can't seem to boot from network, go into BIOS set up, and look for keywords like 'PXE', 'LAN', 'boot priority', 'boot device', etc.{info}
{info:title=Installing PCs on the remote network}If your PCs to be network booted are located in a different network, run "{{java -jar [hudson-proxy-service-jar-with-dependencies.jar|http://maven.dyndns.org/2/org/jvnet/hudson/pxeboot/hudson-proxy-service/] UrlOfHudson}}" on a computer in the same network as the new PC to have it relay the request.{info}

Once the network boot menu appears. Choose the OS that you want to install.

!pxe-bootmenu.png|align=centre!

Depending on the OSes, you can choose to install interactively or automatically. The interactive installation option can be convenient for installing PCs for use outside Hudson.

!pxe-ubuntu-menu.png|align=centre!

If you choose automatic installation, PCs will install itself and reboot by itself.

h2.Future Work
* Documenting Windows auto installation
* Advanced mode that lets people specify the full kickstart/preseed/ai-manifest files
* Automatically register newly installed PCs as Hudson slaves

* OS support is extensible. Contributions of new OS types are welcome.

h2.Changelog
h5.Version 1.5 (Feb 2 2010)
* Supported booting OracleVM Server.
* Supported booting VMWare ESXi.

h5.Version 1.4 (Jan 9 2010)
* Allow override of root URL with {{hudson.plugins.pxe.PXE.rootURL}} system property.

h5.Version 1.3 (Sep 3 2009)
* Ubuntu installer exposes more configuration options now.
* DHCP proxy service can now selectively respond to requests, allowing multiple network boot services to co-exist.

h5.Version 1.2 (May 15 2009)
* Added [Parted Magic|http://partedmagic.com/] support for disk re-partitioning
* Updated Ubuntu preseeding file to work with 9.04.

h5.Version 1.1 (May 10 2009)
* Corrected typo

h5.Version 1.0 (May 3 2009)
* Initial version