Ironic: Setup/Configure iPXE

Setup the enviroment and configure Ironic to use iPXE for deployments. If
IRONIC_IPXE_ENABLED enviroment variable is True, DevStack will now start
and configure an Apache HTTP server to serve the images, will copy the
undionly.kpxe boot file in place of the standard pxelinux.0 and will set
the right configuration to Ironic to deploy the images using iPXE+HTTP.

Implements: blueprint ipxe-boot
Change-Id: I0ea40cb8bbf9236c634f803c2bde1081634679ff
diff --git a/files/apache-ironic.template b/files/apache-ironic.template
new file mode 100644
index 0000000..8864194
--- /dev/null
+++ b/files/apache-ironic.template
@@ -0,0 +1,12 @@
+Listen %PUBLICPORT%
+
+<VirtualHost *:%PUBLICPORT%>
+    DocumentRoot "%HTTPROOT%"
+    <Directory "%HTTPROOT%">
+        Options Indexes FollowSymLinks
+        AllowOverride None
+        Order allow,deny
+        Allow from all
+        Require all granted
+    </Directory>
+</VirtualHost>
diff --git a/files/apts/ironic b/files/apts/ironic
index fe9c07f..8674d9f 100644
--- a/files/apts/ironic
+++ b/files/apts/ironic
@@ -1,5 +1,6 @@
 ipmitool
 iptables
+ipxe
 libguestfs0
 libvirt-bin
 openssh-client
diff --git a/files/rpms/ironic b/files/rpms/ironic
index 0c81081..959ac3c 100644
--- a/files/rpms/ironic
+++ b/files/rpms/ironic
@@ -1,5 +1,6 @@
 ipmitool
 iptables
+ipxe-bootimgs
 libguestfs
 libvirt
 libvirt-python