Version 1 (modified by 18 years ago) ( diff ) | ,
---|
Go back —> Documentation —> Documentation/orbit-pxe
Loading Orbit-PXE
Whether you are imaging a node, saving a node image or doing inventory control Orbit nodes get orbit-pxe image loaded first into RAM. The way this is accomplished is by having the PXE server make a symbolic link of the node's IP address in hex to the orbit-pxe configuration file on the TFTP server. By default PXE configuration is to have the node boot off its local hard disk.
/tftpboot/pxelinux.cfg/default
default harddisk label harddisk localboot 0
When orbit-pxe is to be loaded the nodehandler first tells the PXE server to set the symbolic link up to the orbit-pxe configuration. It does this by issuing a GET request to the the following URL to the PXE server:
http://pxe:5012/pxe/setBootImage?img=<image name>&node=<node ID>&ip=<ip address of node>
The PXE server in turn then creates a symbolic link for the respective IP address in hex. For example, if the node has an IP address of 10.18.1.2 (the case of sandbox8, node1-2) the respective IP address in hex is 0x0A.12.01.12 and as such its symbolic links' filename will be 0A120112.
/tftpboot/pxelinux.cfg/0A120112 —> orbit-2.0.0
DEFAULT boel LABEL boel KERNEL linux-orbit-pxe-2.6.20.4 APPEND rw init=/sbin/init initrd=initramfs-orbit-pxe-2.0.0.gz console=tty0 console=ttyS0,9600 DISPLAY message.txt PROMPT 1 TIMEOUT 1
After the symbolic link request the nodehandler will the reboot the node and based on this example the node will then load linux-orbit-pxe-2.6.20.4 with initramfs-orbit-pxe-2.0.0.gz as its initramfs cpio archive. The kernel then boots and finally calls /etc/init.d/rcS:
#!/bin/sh NETDEV_0="eth0" NETDEV_DHCP="eth1" UDHCPC_SCRIPT="/etc/udhcp.script" UDHCPC="/sbin/udhcpc" IP_CONFIG="/bin/ip" mount -t proc proc /proc # Get network up $IP_CONFIG link set $NETDEV_0 up $IP_CONFIG link set $NETDEV_DHCP up $UDHCPC -i $NETDEV_DHCP -s $UDHCPC_SCRIPT cat /.orbit_image # Start nodeagent nodeagent&
After this nodeagent will just wait until nodehandler issues it further commands.