Jump to: navigation, search

Difference between revisions of "XenServer/Install/PXE"

(Some modifications)
 
(8 intermediate revisions by 4 users not shown)
Line 1: Line 1:
__NOTOC__
 
<<[[TableOfContents]]()>>
 
  
= PXE Install Server for Xenserver =
+
__TOC__
 +
 
 +
= PXE Install Server for [[XenServer]] =
 +
 
 
== Why do I need this? ==
 
== Why do I need this? ==
If you choose to use Xenserver as the hypervisor for your Openstack deployment, you probably want the install to be automatic. At Citrix, we find it useful to have a PXE server around, even in a simple development environment. It makes it much easier to start automating tests later on.
+
If you choose to use [[XenServer]] as the hypervisor for your [[OpenStack]] deployment, you probably want the install to be automatic. At Citrix, we find it useful to have a PXE server around, even in a simple development environment. It makes it much easier to start automating tests later on.
 +
 
  
 
== Ingredients ==
 
== Ingredients ==
I am using the following:
+
This guide was written using:
 +
# Xenserver 6.0.2
 +
# Ubuntu 11.10 virtual machine as the PXE server, although this could also be a physical machine.
 +
 
 +
However, it should be equally applicable to modern versions of both XenServer and Ubuntu.
  
# Xenserver 6.0.2<<BR>>Get the [[XenServer]] CD from [http://www.citrix.com/XenServer here] and click "Try It", then select "Start a free [[XenServer]] trial".
 
# Ubuntu 11.10 virtual machine as the PXE server. You may just as well use a physical machine.
 
  
 
== On your Ubuntu 11.10 machine ==
 
== On your Ubuntu 11.10 machine ==
 +
 
=== Install the following packages ===
 
=== Install the following packages ===
 
 
<pre><nowiki>
 
<pre><nowiki>
 
sudo apt-get install apache2 isc-dhcp-server tftpd-hpa
 
sudo apt-get install apache2 isc-dhcp-server tftpd-hpa
Line 22: Line 26:
 
The interface eth1 on my machine is on a network called "Network 1". Please change the instructions below to match your network setup.
 
The interface eth1 on my machine is on a network called "Network 1". Please change the instructions below to match your network setup.
  
 
+
Caution: Ensure that your "Network 1" is isolated from any corporate network, to avoid any interference from our DHCP, PXE server.
<pre><nowiki>#!wiki caution
 
Ensure that your "Network 1" is isolated from any corporate network, to avoid any interference from our DHCP, PXE server.
 
</nowiki></pre>
 
 
 
 
 
 
<pre><nowiki>
 
<pre><nowiki>
 
auto eth1
 
auto eth1
Line 38: Line 37:
  
 
=== Edit /etc/dhcp/dhcpd.conf and add the following ===
 
=== Edit /etc/dhcp/dhcpd.conf and add the following ===
 
 
<pre><nowiki>
 
<pre><nowiki>
 
allow bootp;
 
allow bootp;
Line 53: Line 51:
 
=== tftpboot ===
 
=== tftpboot ===
 
Mount the iso you downloaded and copy over the following to your /var/lib/tftpboot folder:
 
Mount the iso you downloaded and copy over the following to your /var/lib/tftpboot folder:
 
 
 
<pre><nowiki>
 
<pre><nowiki>
 
cd <path to XenServer CD>
 
cd <path to XenServer CD>
Line 66: Line 62:
  
 
=== pxelinux.cfg/default ===
 
=== pxelinux.cfg/default ===
 
+
First you need to add the menu UI file handler.
 +
<pre><nowiki>
 +
cp /usr/lib/syslinux/menu.c32 /var/lib/tftpboot/
 +
</nowiki></pre>
 +
And then :
 
<pre><nowiki>
 
<pre><nowiki>
 
mkdir /var/lib/tftpboot/pxelinux.cfg
 
mkdir /var/lib/tftpboot/pxelinux.cfg
 
</nowiki></pre>
 
</nowiki></pre>
  
Paste the following in /var/lib/tftpboot/pxelinux.cfg/default
+
=== Edit /var/lib/tftpboot/pxelinux.cfg/default and paste the following ===
 
 
 
 
 
<pre><nowiki>
 
<pre><nowiki>
default local
+
DEFAULT local
prompt 1
+
UI menu.c32
timeout 60
+
PROMPT 1
 +
TIMEOUT 60
  
label local
+
LABEL local
 
         localboot 0
 
         localboot 0
  
label install-xenserver
+
LABEL Install-XenServer
 
         kernel mboot.c32
 
         kernel mboot.c32
 
         append xenserver/xen.gz dom0_max_vcpus=2 dom0_mem=752M com1=115200,8n1 console=com1,vga --- xenserver/vmlinuz xencons=hvc console=hvc0 console=tty0 answerfile=http://192.168.0.1/answerfile install --- xenserver/install.img
 
         append xenserver/xen.gz dom0_max_vcpus=2 dom0_mem=752M com1=115200,8n1 console=com1,vga --- xenserver/vmlinuz xencons=hvc console=hvc0 console=tty0 answerfile=http://192.168.0.1/answerfile install --- xenserver/install.img
Line 89: Line 88:
 
=== The Answer File ===
 
=== The Answer File ===
 
You may use the sample answerfile below. This must be placed in /var/www/answerfile.
 
You may use the sample answerfile below. This must be placed in /var/www/answerfile.
 
 
 
<pre><nowiki>
 
<pre><nowiki>
 
<?xml version="1.0"?>
 
<?xml version="1.0"?>
Line 105: Line 102:
  
 
=== Copy packages* and  XS-REPOSITORY-LIST to your webserver ===
 
=== Copy packages* and  XS-REPOSITORY-LIST to your webserver ===
 
 
<pre><nowiki>
 
<pre><nowiki>
 
cd <path to XenServer CD>
 
cd <path to XenServer CD>
Line 114: Line 110:
  
 
=== Start services ===
 
=== Start services ===
 
 
<pre><nowiki>
 
<pre><nowiki>
 
sudo /etc/init.d/networking restart  #if you changed /network/interfaces
 
sudo /etc/init.d/networking restart  #if you changed /network/interfaces
Line 120: Line 115:
 
sudo /etc/init.d/tftpd-hpa start
 
sudo /etc/init.d/tftpd-hpa start
 
</nowiki></pre>
 
</nowiki></pre>
 +
  
 
== Ready to run ==
 
== Ready to run ==
 
On your target machine, ensure that boot sequence is set to boot from network. Reboot your machine. Ensure it acquires a DHCP address from your PXE server. At the boot prompt, enter install-xenserver and take a deep breath.
 
On your target machine, ensure that boot sequence is set to boot from network. Reboot your machine. Ensure it acquires a DHCP address from your PXE server. At the boot prompt, enter install-xenserver and take a deep breath.
 +
 +
 +
= Further Reading =
 +
For more details see:
 +
* http://docs.vmd.citrix.com/XenServer/6.0.0/1.0/en_gb/installation.html#pxe_boot_install
 +
* http://xen.org/files/XenCloud/installation.pdf

Latest revision as of 13:35, 18 May 2014

PXE Install Server for XenServer

Why do I need this?

If you choose to use XenServer as the hypervisor for your OpenStack deployment, you probably want the install to be automatic. At Citrix, we find it useful to have a PXE server around, even in a simple development environment. It makes it much easier to start automating tests later on.


Ingredients

This guide was written using:

# Xenserver 6.0.2
# Ubuntu 11.10 virtual machine as the PXE server, although this could also be a physical machine.

However, it should be equally applicable to modern versions of both XenServer and Ubuntu.


On your Ubuntu 11.10 machine

Install the following packages

sudo apt-get install apache2 isc-dhcp-server tftpd-hpa

Edit /etc/network/interfaces

The interface eth1 on my machine is on a network called "Network 1". Please change the instructions below to match your network setup.

Caution: Ensure that your "Network 1" is isolated from any corporate network, to avoid any interference from our DHCP, PXE server.

auto eth1
iface eth1 inet static
        address 192.168.0.1
        netmask 255.255.0.0
        network 192.168.0.0
        broadcast 192.168.0.255

Edit /etc/dhcp/dhcpd.conf and add the following

allow bootp;

use-host-decl-names true;
option domain-name "Network 1";
option domain-name-servers 192.168.0.1;
subnet 192.168.0.0 netmask 255.255.255.0 {
        range 192.168.0.100 192.168.0.200;
        filename "pxelinux.0";
}

tftpboot

Mount the iso you downloaded and copy over the following to your /var/lib/tftpboot folder:

cd <path to XenServer CD>
cp ./boot/pxelinux/mboot.c32 /var/lib/tftpboot
cp ./boot/pxelinux/pxelinux.0 /var/lib/tftpboot
mkdir -p /var/lib/tftpboot/xenserver
cp ./boot/vmlinuz /var/lib/tftpboot/xenserver
cp ./boot/xen.gz /var/lib/tftpboot/xenserver
cp ./install.img /var/lib/tftpboot/xenserver

pxelinux.cfg/default

First you need to add the menu UI file handler.

cp /usr/lib/syslinux/menu.c32 /var/lib/tftpboot/

And then :

mkdir /var/lib/tftpboot/pxelinux.cfg

Edit /var/lib/tftpboot/pxelinux.cfg/default and paste the following

DEFAULT local
UI menu.c32
PROMPT 1
TIMEOUT 60

LABEL local
        localboot 0

LABEL Install-XenServer
        kernel mboot.c32
        append xenserver/xen.gz dom0_max_vcpus=2 dom0_mem=752M com1=115200,8n1 console=com1,vga --- xenserver/vmlinuz xencons=hvc console=hvc0 console=tty0 answerfile=http://192.168.0.1/answerfile install --- xenserver/install.img

The Answer File

You may use the sample answerfile below. This must be placed in /var/www/answerfile.

<?xml version="1.0"?>
<installation srtype="ext">
<primary-disk>sda</primary-disk>
<keymap>us</keymap>
<root-password>mypass</root-password>                      <=== fill this
<source type="url">http://192.168.0.1/xenserver/</source>
<ntp-server>IP address of my ntp server</ntp-server>       <=== fill this
<admin-interface name="eth0" proto="dhcp" />
<timezone>America/Los_Angeles</timezone>
</installation>

Copy packages* and XS-REPOSITORY-LIST to your webserver

cd <path to XenServer CD>
mkdir /var/www/xenserver      # path you gave in the answerfile
cp -r packages* /var/www/xenserver
cp XS-REPOSITORY-LIST /var/www/xenserver

Start services

sudo /etc/init.d/networking restart  #if you changed /network/interfaces
sudo /etc/init.d/isc-dhcp-server start
sudo /etc/init.d/tftpd-hpa start


Ready to run

On your target machine, ensure that boot sequence is set to boot from network. Reboot your machine. Ensure it acquires a DHCP address from your PXE server. At the boot prompt, enter install-xenserver and take a deep breath.


Further Reading

For more details see: