`DevStack >`__
- `Overview <../overview.html>`__
- `Changes <../changes.html>`__
- `FAQ <../faq.html>`__
- `git.openstack.org `__
- `Gerrit `__
PXE Boot Server Guide: Magic Dust for Network Boot
==================================================
Boot DevStack from a PXE server to a RAM disk.
Prerequisites Hardware & OpenWRT
--------------------------------
Hardware
~~~~~~~~
The whole point of this exercise is to have a highly portable boot
server, so using a small router with a USB port is the desired platform.
This guide uses a Buffalo WZR-HP-G300NH as an example, but it is easily
generalized for other supported platforms. See openwrt.org for more.
OpenWRT
~~~~~~~
Any recent 'Backfire' build of OpenWRT will work for the boot server
project. We build from trunk and have made the images available at
`http://openwrt.xr7.org/openwrt `__.
Installation bit blasting
-------------------------
Install the Image
~~~~~~~~~~~~~~~~~
This process follows `the OpenWRT doc OEM
Install `__ to tftp
the new image onto the router. You need a computer to set up the router,
we assume it is a recent Linux or OS/X installation.
- Get openwrt-ar71xx-wzr-hp-g300nh-squashfs-tftp.bin
::
wget http://openwrt.xr7.org/openwrt/ar71xx/openwrt-ar71xx-wzr-hp-g300nh-squashfs-tftp.bin
- Connect computer to LAN port 4 (closest to WAN port)
- Set computer interface to IP address in the 192.168.11.2
- Add static arp entry for router
::
arp -s 192.168.11.1
- Start TFTP transfer attempt
::
tftp 192.168.11.1
binary
rexmt 1
timeout 60
put openwrt-ar71xx-wzr-hp-g300nh-squashfs-tftp.bin
- Power on router. Router will reboot and initialize on 192.168.1.1.
- Delete static arp entry for router
::
arp -d 192.168.11.1
- Set computer to DHCP, connect and telnet to router and set root
password.
Configure the Router
~~~~~~~~~~~~~~~~~~~~
- Update ``/etc/opkg.conf`` to point to our repo:
::
src/gz packages http://192.168.5.13/openwrt/build/ar71xx/packages
- Configure anon mounts:
::
uci delete fstab.@mount[0]
uci commit fstab
/etc/init.d/fstab restart
- Reset the DHCP address range. DevStack will claim the upper /25 of
the router's LAN address space for floating IPs so the default DHCP
address range needs to be moved:
::
uci set dhcp.lan.start=65
uci set dhcp.lan.limit=60
uci commit dhcp
- Enable TFTP:
::
uci set dhcp.@dnsmasq[0].enable_tftp=1
uci set dhcp.@dnsmasq[0].tftp_root=/mnt/sda1/tftpboot
uci set dhcp.@dnsmasq[0].dhcp_boot=pxelinux.0
uci commit dhcp
/etc/init.d/dnsmasq restart
Set Up tftpboot
~~~~~~~~~~~~~~~
- Create the ``/tmp/tftpboot`` structure and populate it:
::
cd ~/devstack
tools/build_pxe_boot.sh /tmp
This calls ``tools/build_ramdisk.sh`` to create a 2GB ramdisk
containing a complete development Oneiric OS plus the OpenStack code
checkouts.
- Copy ``tftpboot`` to a USB drive:
::
mount /dev/sdb1 /mnt/tmp
rsync -a /tmp/tftpboot/ /mnt/tmp/tftpboot/
umount /mnt/tmp
- Plug USB drive into router. It will be automounted and is ready to
serve content.
Now `return `__ to the RAM disk Guide to kick off your
DevStack experience.