Boot DevStack from a PXE server to a RAM disk.
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.
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.
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 <mac-address>
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.
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 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
uci set dhcp.@dnsmasq.enable_tftp=1 uci set dhcp.@dnsmasq.tftp_root=/mnt/sda1/tftpboot uci set dhcp.@dnsmasq.dhcp_boot=pxelinux.0 uci commit dhcp /etc/init.d/dnsmasq restart
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.