devstack/doc/source/guides/pxe-boot.html
Monty Taylor 0cbddea50d Move the doc paths to match other repos
In order to build in the Infra system, we'd like to be able to reuse the
existing doc build macros. To support that, move docs/source to
doc/source and docs/html to doc/build/html.

Change-Id: Ibd8e8e82e54c69b182120df67e6ec6908fed2908
2014-10-14 12:13:07 -04:00

148 lines
5.7 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>PXE Boot Server Guide - DevStack</title>
<meta name="description" content="">
<meta name="author" content="">
<!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<!-- Le styles -->
<link href="../assets/css/bootstrap.css" rel="stylesheet">
<link href="../assets/css/local.css" rel="stylesheet">
<style type="text/css">
body { padding-top: 60px; }
dd { padding: 10px; }
</style>
<!-- Le javascripts -->
<script src="../assets/js/jquery-1.7.1.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../assets/js/bootstrap.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="brand" href="/">DevStack</a>
<ul class="nav pull-right">
<li><a href="../overview.html">Overview</a></li>
<li><a href="../changes.html">Changes</a></li>
<li><a href="../faq.html">FAQ</a></li>
<li><a href="http://github.com/openstack-dev/devstack">GitHub</a></li>
<li><a href="https://review.openstack.org/#/q/status:open+project:openstack-dev/devstack,n,z">Gerrit</a></li>
</ul>
</div>
</div>
</div>
<div class="container">
<section id="overview">
<h1>PXE Boot Server Guide: Magic Dust for Network Boot</h1>
<p>Boot DevStack from a PXE server to a RAM disk.</p>
</section>
<section id="requirements">
<div class="page-header">
<h2>Prerequisites <small>Hardware & OpenWRT</small></h2>
</div>
<h3>Hardware</h3>
<p>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.</p>
<h3>OpenWRT</h3>
<p>Any recent 'Backfire' build of OpenWRT will work for the boot server project. We build from trunk and have made the images available at <a href="http://openwrt.xr7.org/openwrt">http://openwrt.xr7.org/openwrt</a>.</p>
</section>
<section id="installation">
<div class="page-header">
<h2>Installation <small>bit blasting</small></h2>
</div>
<h3>Install the Image</h3>
<p>This process follows <a href="http://wiki.openwrt.org/toh/buffalo/wzr-hp-g300h">the OpenWRT doc OEM Install</a> 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.</p>
<ul>
<li>Get openwrt-ar71xx-wzr-hp-g300nh-squashfs-tftp.bin
<pre>wget http://openwrt.xr7.org/openwrt/ar71xx/openwrt-ar71xx-wzr-hp-g300nh-squashfs-tftp.bin</pre>
</li>
<li>Connect computer to LAN port 4 (closest to WAN port)</li>
<li>Set computer interface to IP address in the 192.168.11.2</li>
<li>Add static arp entry for router
<pre>arp -s 192.168.11.1 &lt;mac-address&gt;</pre>
</li>
<li>Start TFTP transfer attempt
<pre>tftp 192.168.11.1
binary
rexmt 1
timeout 60
put openwrt-ar71xx-wzr-hp-g300nh-squashfs-tftp.bin</pre>
</li>
<li>Power on router. Router will reboot and initialize on 192.168.1.1.</li>
<li>Delete static arp entry for router
<pre>arp -d 192.168.11.1</pre>
</li>
<li>Set computer to DHCP, connect and telnet to router and set root password.</li>
</ul>
<h3>Configure the Router</h3>
<ul>
<li>Update <code>/etc/opkg.conf</code> to point to our repo:
<pre>src/gz packages http://192.168.5.13/openwrt/build/ar71xx/packages</pre>
</li>
<li>Configure anon mounts:
<pre>uci delete fstab.@mount[0]
uci commit fstab
/etc/init.d/fstab restart</pre>
</li>
<li>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:
<pre>uci set dhcp.lan.start=65
uci set dhcp.lan.limit=60
uci commit dhcp</pre>
</li>
<li>Enable TFTP:
<pre>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</pre>
</li>
</ul>
<h3>Set Up tftpboot</h3>
<ul>
<li>Create the <code>/tmp/tftpboot</code> structure and populate it:
<pre>cd ~/devstack
tools/build_pxe_boot.sh /tmp</pre>
This calls <code>tools/build_ramdisk.sh</code> to create a 2GB ramdisk
containing a complete development Oneiric OS plus the
OpenStack code checkouts.
</li>
<li>Copy <code>tftpboot</code> to a USB drive:
<pre>mount /dev/sdb1 /mnt/tmp
rsync -a /tmp/tftpboot/ /mnt/tmp/tftpboot/
umount /mnt/tmp</pre>
</li>
<li>Plug USB drive into router. It will be automounted and is ready to serve content.</li>
</ul>
<p>Now <a href="ramdisk.html">return</a> to the RAM disk Guide to kick
off your DevStack experience.</p>
</section>
<footer>
<p>&copy; Openstack Foundation 2011-2013 &mdash; this is not an official OpenStack project...</p>
</footer>
</div> <!-- /container -->
</body>
</html>