[ipxe-devel] iPXE without DHCP 66/67 Settings
Michael Brown
mbrown at fensystems.co.uk
Mon Dec 20 21:04:25 UTC 2010
On Monday 20 Dec 2010 19:43:57 Albert Hernandez wrote:
> We are not in control of our DHCP servers and we want to use iPXE to push
> out software distributions to our servers. We want to create a single
> bootable ISO so we can use to deploy the image to the systems.
>
> I have been able to press CTRL-B and been able to set the minimum variable
> FILENAME and NEXT-SERVER then issue the AUTBOOT command and the imaging
> process begins. Although this is acceptable in a lab configuration, it is
> not for a production environment.
>
> Also we have to have a list of NEXT-SERVERS and have the boot process try
> each one until the list is exhausted. Once the list is exhausted then
> fail. This list is would be sequentially process and if the connection
> returns any error, then skip that server and proceed to the next.
I would suggest using an embedded script. You can do this using
make bin/ipxe.iso EMBEDDED_IMAGE=stjoe.ipxe
where stjoe.ipxe is a text file containing:
#!ipxe
dhcp
chain tftp://my-server1/my-filename ||
chain tftp://my-server2/my-filename ||
chain tftp://my-server3/my-filename ||
echo Boot failed
exit 1
This will try each server in turn, falling through to the next entry in the
list if it fails for any reason. Note the trailing "||", which is required to
prevent the script from immediately aborting if the "chain" command fails.
Note that this method will *not* set the "next-server" and "filename"
variables. It is possible that your PXE NBP may require these variables to be
set. If this is the case, you can use a slightly longer version of the above
script:
#!ipxe
dhcp
set filename my-filename
set next-server my-server1
chain ${next-server}/${filename} ||
set next-server my-server2
chain ${next-server}/${filename} ||
set next-server my-server3
chain ${next-server}/${filename} ||
echo Boot failed
exit 1
Michael
More information about the ipxe-devel
mailing list