define( 'DISALLOW_FILE_EDIT', true );
The post Creating a Xen template appeared first on Managed Wordpress Hosting | Managed VPS Hosting | Stack Star.
]]>With Xen, you have to create your own. Here is a straight forward guide for how to do it.
1. Bootstrap a DomU named
I recommend using a file-backed VBD, but partition or LVM volume will work fine as well. Here is an example /etc/xen/centos4-tpl
kernel = "/boot/vmlinuz-2.6.12.6-xenU" memory = 256 name = "centos4-tpl" disk = [ 'file:/opt/xen/domains/centos4-tpl/diskimage,sdb1,w','file:/opt/xen/domains/centos4-tpl/swapimage,sdb2,w' ] root = "/dev/sdb1 ro" dhcp="dhcp
This is just a normal system (DomU) install – see Centos-4 on Xen for an example. Un-customize files
2.Inside the VM, edit the following files
/etc/hosts
remove any address lines other than localhost
/etc/sysconfig/network
use a generic hostname which will be unique to each deployment
NETWORKING=yes HOSTNAME=centos4-tpl-changeme.example.com
/etc/sysconfig/network-scripts/ifcfg-eth0
should look like this:
DEVICE=eth0 ONBOOT=yes BOOTPROTO=dhcp
also important – remove any line starting with HWADDR, e.g.:
HWADDR=00:10:5A:XX:YY:ZZ
Other configuration files to consider tweaking include /etc/dhclient.conf & /etc/hosts
3. Files to remove:
– SSH Host key files (auto-created at boot time)
rm -f /etc/ssh/*host*
4. Shutdown the template VM
xm shutdown centos4-tpl
You might normally link your VMs into /etc/xen/auto. I recommend against this as the template VM can be left shutdown until/unless you want to update it, saving valuable RAM and CPU cycles.
Clone the virtual disk Now we can deploy from the template by cloning the data into a clean diskimage (or partition or LVM volume). Create the diskimage using an appropriate size (must be larger than the template). Oh -the nice thing here is that there is flexibility. For instance, you can have a file-based diskimage and clone the data onto LVM volumes. As long as you can mount the (virtual) disks, you can clone templatized systems.
Here we use /mnt/disk to mount the new system disk, and /mnt/image to mount the template disk.
First, mount the template disk.
mount -o loop /opt/xen/domains/centos4-tpl/diskimage /mnt/image
Next, create and mount the new system (DomU) disk space & swap space.
mkdir -p /opt/xen/domains/cloned cd /opt/xen/domains/cloned dd if=/dev/zero of=diskimage bs=1024k count=2048 dd if=/dev/zero of=swapimage bs=1024k count=256 mkfs.ext3 diskimage mkswap swapimage mkdir -p /mnt/disk mount -o loop /opt/xen/domains/cloned/diskimage /mnt/disk
Create the exclude file in /tmp/XenCloneExclude
proc/* users/* tmp/* lost+found/ etc/mtab
Copy the data across
rsync -av -SHWD --exclude-from="/tmp/XenCloneExclude" /mnt/image/ /mnt/disk
Chroot into the newly copied template and fixup certain files
chroot /mnt/disk /bin/bash
Fix the hostname, etc in the files we “un-customized” in the template.
Exit, unmount both the template image and volume
umount /mnt/disk umount /mnt/image
Setup your Xen config and be on your way!
cd /etc/xen
cp centos4-tpl cloned
(edit cloned to change name and paths to disk and swap)
xm create -c cloned
The post Creating a Xen template appeared first on Managed Wordpress Hosting | Managed VPS Hosting | Stack Star.
]]>