wiki:Orbit/Building/PXE

Version 6 (modified by faiyaz, 18 years ago) ( diff )

Orbit > Building Orbit > PXE

PXE on Orbit

To bootstrap the testbed nodes, in fact any server in the system, we use PXE to have the nodes load an image which contains a nodeagent and a frisbee client.

PXE requires the following support:

  1. A DHCP server pointing to an TFTP server
  2. A TFTP server proving the following:
    1. A network bootstrap program (NBP)
    2. A file containing instructions for the NBP
    3. A boot image
  3. A PXE grid service

Ideally the later referenced "orbit-pxe-server" apt package should include dependencies to all required packages and should setup everything. For instance, it should depend on gridservices and should then automatically instantiate the PXE grid service.

DHCP Server

To support PXE we need a DHCP server. This server does not necessarily need to be instantiated at the same machine as the TFTP server, but it's configuration needs to point to it.

Installing a DHCP server on Debian is as simple as:

% apt-get install dhcp

Are we using "dhcp3"?

To support PXE, we need to add to /etc/dhcpd.conf something like:

option domain-name "example.com";

default-lease-time 600;
max-lease-time 7200;

allow booting;
allow bootp;

# The next paragraph needs to be modified to fit your case
subnet 192.168.1.0 netmask 255.255.255.0 {
  range 192.168.1.200 192.168.1.253;
  option broadcast-address 192.168.1.255;
# the gateway address which can be different
# (access to the internet for instance)
  option routers 192.168.1.1;
# indicate the dns you want to use
  option domain-name-servers 192.168.1.3;
}

group {
 next-server 192.168.1.3;
 host tftpclient {
# tftp client hardware address
  hardware ethernet  00:10:DC:27:6C:15;
  filename "/tftpboot/pxelinux.bin";
 }
}

Where are we getting the 'pxelinux.bin' file from? Is that in an apt, or should we add that to our "orbit-pxe-server" package?

After you have edited the dhcpd configuration file, restart it with "/etc/init.d/dhcpd restart".

Installing a TFTP server

This should go away as we should make a dependency on the orbit-pxe-server package.

Installing NBP — pxelinux

Installing an PXE image

The PXE client gets the address of the TFTP server through DHCP. Taking it's IP address it attempts to download a specific file containing further instructions from the TFPT server. The name of the file is created from the PXE client's IP address. For Orbit, the instructions are identical for every node and are stored in "/tftpboot/pxelinux.cfg/default.orbit-version". This file instructs the node to fetch the image "/tftpboot/initrd-orbit-pxe-version.img" from the TFTP server and boot into it.

Both files will be installed through:

% apt-get install orbit-pxe-server

Installing the PXE Grid Service

Every service on Orbit which can be controlled by the experimenter requires a grid service component. The PXE grid service must be installed on the TFTP server.

% apt-get install gridservices
% cd /etc/gridservices/enabled
% ln -s ../available/pxe .
% /etc/init.d/gridservices restart
Note: See TracWiki for help on using the wiki.