Launchpad Entry: server-lucid-cobbler
Packages affected: dhcp3-server, tftpd-hpa, cobbler (new package)
Cobbler is a project developed by Red Hat implementing a provisioning server. This spec describes the work needed to a) get Cobbler into Ubuntu and b) get Ubuntu support into Cobbler.
Ubuntu now includes the Cobbler provisioning server. It allows you to easily deploy Ubuntu based systems using PXE.
Cobbler is an actively maintained provisioning server, which provides simple means for deploying Linux based systems on a large scale using PXE booting. We currently have no offering in this space, so Cobbler should fill it nicely.
* Alice receives a shipment of new servers. She'd like to avoid the noise of performing the OS installation in her office, and would also like to not spend half the day in the server room. Instead, she makes a note of the MAC address and asks one of her minions to take the server to server room and hook it up to power and the LAN. Meanwhile, she tells cobbler to install the "base server" profile onto the MAC address. When the server first appears on the network, it'll PXE boot and do the installation, reboot, and be ready for use.
Note: This does not specify the design of cobbler itself, but just the changes we need to make to Cobbler to make it work with and on Ubuntu.
Debian/Ubuntu style repositories are radically different from RedHat based ones. Cobbler should learn to import from ISO's, but also from an existing mirror.
The directory structure employed by upstream Cobbler is highly incompatible with our interpretation of the FHS. This will need to be fixed.
Cobbler works by configuring a BOOTP and tftp server to offer kernel, initrd and kernel command line to PXE clients. It will need to do so in a Debian Policy compliant manner.
Cobbler import currently does not grok Ubuntu and Debian ISO's. It will need to correctly detect the architecture the ISO was made for, and search through the ISO looking for the netboot image. It will then import the entire contents of the CD so that it can be used as an install mirror. It should learn the correct URL to pass through clients that are to use this mirror for installing.
We should ship sample kickseed files for Ubuntu, which should result in an install identical to what you'd get if you were to choose the defaults all the way through d-i.
In Fedora, on each "export" cobbler writes out an entire, new dhcpd.conf based on a template. The template has the general config for the dhcp server at the top, and then all the specifics for Cobbler at the bottom (usually a section per system to be provisioned). What we'll do instead is to leave the dhcpd configuration alone and presume the admin has configured it correctly to begin with, and the put the Cobbler specific stuff in a file by itself and make sure it's included in dhcpd's configuration (either by means of a dhcp3-server.conf.d directory or a specific "include" directory.
The default path for the tftproot should be the same for the tftpd we have in main and for cobbler.
It's important that we are able to test new features, and demonstrate them to users. Use this section to describe a short plan that anybody can follow that demonstrates the feature is working. This can then be used during testing, and to show off after release.
This need not be added or completed until the specification is nearing beta.
* With the kvm-pxe package, kvm in Ubuntu can now do PXE booting, which should make testing a breeze. * Upstream is very keen on getting Ubuntu support into Cobbler.