Version 6 (modified by 19 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:
- A DHCP server pointing to an TFTP server
- A TFTP server proving the following:
- A network bootstrap program (NBP)
- A file containing instructions for the NBP
- A boot image
- 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