170 lines
3.1 KiB
Cheetah
170 lines
3.1 KiB
Cheetah
#
|
|
# Configuration file for the Xen instance {$hostname}, created
|
|
# by xen-tools {$xen_tools_version} on { scalar localtime }.
|
|
#
|
|
|
|
#
|
|
# Kernel + memory size
|
|
#
|
|
{ if ( ( $kernel ) && ( !defined($pygrub)) )
|
|
{
|
|
$OUT .= "kernel = '$kernel'\n";
|
|
$OUT .= "extra = 'elevator=noop'";
|
|
}
|
|
}
|
|
{ if ( ( $initrd ) && ( !defined($pygrub)) )
|
|
{
|
|
$OUT.= "ramdisk = '$initrd'";
|
|
}
|
|
}
|
|
{
|
|
if ( $pygrub )
|
|
{
|
|
my $pygrub_bin = '';
|
|
foreach my $pygrub_path (reverse glob('/usr/lib/xen-*/bin/pygrub
|
|
/usr/lib/xen-default/bin/pygrub
|
|
/usr/*bin/pygrub')) {
|
|
if (-x $pygrub_path) {
|
|
$pygrub_bin = $pygrub_path;
|
|
last;
|
|
}
|
|
}
|
|
|
|
die "pygrub not found" unless $pygrub_bin;
|
|
|
|
$OUT .= "bootloader = '$pygrub_bin'\n";
|
|
}
|
|
}
|
|
vcpus = '{$vcpus}'
|
|
memory = '{$memory}'
|
|
|
|
#
|
|
# Disk device(s).
|
|
#
|
|
{
|
|
if ( !defined($image_vbd ) )
|
|
{
|
|
for ( my $i = $#PARTITIONS; $i >= 0 ; $i-- )
|
|
{
|
|
if ( $PARTITIONS[$i]{'mountpoint'} eq '/' )
|
|
{
|
|
$OUT .= "root = '/dev/$device" . ($i + 1) . " ro'\n";
|
|
}
|
|
}
|
|
$OUT .= "disk = [\n";
|
|
for ( my $i = $#PARTITIONS; $i >= 0 ; $i-- )
|
|
{
|
|
if ( $PARTITIONS[$i]{'mountpoint'} eq '/' )
|
|
{
|
|
$OUT .= " '$PARTITIONS[$i]{'imagetype'}$PARTITIONS[$i]{'image'},$device" . ( $i + 1 ) .",w',\n";
|
|
}
|
|
}
|
|
for ( my $i = $#PARTITIONS; $i >= 0 ; $i-- )
|
|
{
|
|
if ( $PARTITIONS[$i]{'mountpoint'} ne '/' )
|
|
{
|
|
$OUT .= " '$PARTITIONS[$i]{'imagetype'}$PARTITIONS[$i]{'image'},$device" . ( $i + 1 ) .",w',\n";
|
|
}
|
|
}
|
|
$OUT .= " ]\n";
|
|
}
|
|
}
|
|
|
|
#
|
|
# Physical volumes
|
|
#
|
|
{
|
|
if ( $image_vbd )
|
|
{
|
|
$OUT .= "root = '/dev/$device" . "2 ro'\n";
|
|
$OUT .= "disk = [\n";
|
|
$OUT .= " '$image_vbd," . $device . "2,w',\n";
|
|
|
|
if ( $swap_vbd )
|
|
{
|
|
$OUT .= " '$swap_vbd," . $device . "1,w',\n";
|
|
}
|
|
$OUT .= " ]\n";
|
|
}
|
|
}
|
|
|
|
#
|
|
# Hostname
|
|
#
|
|
name = '{$hostname}'
|
|
|
|
#
|
|
# Networking
|
|
#
|
|
{ if ( $dhcp )
|
|
{
|
|
$OUT .= "dhcp = 'dhcp'\n";
|
|
|
|
# Setup the mac address, if present.
|
|
my $m = '';
|
|
if ( $mac )
|
|
{
|
|
$m = "mac=$mac"
|
|
}
|
|
my $br = '';
|
|
if ( $bridge )
|
|
{
|
|
if ( $mac )
|
|
{
|
|
$br = ",bridge=$bridge"
|
|
}
|
|
else
|
|
{
|
|
$br = "bridge=$bridge"
|
|
}
|
|
}
|
|
$OUT .= "vif = [ '";
|
|
$OUT .= "$m";
|
|
$OUT .= "$br";
|
|
$OUT .= "' ]";
|
|
}
|
|
else
|
|
{
|
|
#
|
|
# Setup the mac address, if present.
|
|
#
|
|
my $m = '';
|
|
if ( $mac )
|
|
{
|
|
$m = ",mac=$mac"
|
|
}
|
|
|
|
my $vn = '';
|
|
if ( $vifname )
|
|
{
|
|
$vn = ",vifname=$vifname";
|
|
}
|
|
|
|
my $br = '';
|
|
if ( $bridge )
|
|
{
|
|
$br = ",bridge=$bridge"
|
|
}
|
|
|
|
$OUT .= "vif = [ 'ip=$ips";
|
|
$OUT .= "$m";
|
|
$OUT .= "$vn";
|
|
$OUT .= "$br";
|
|
$OUT .= "' ]";
|
|
}
|
|
}
|
|
|
|
#
|
|
# Behaviour
|
|
#
|
|
on_poweroff = 'destroy'
|
|
on_reboot = 'restart'
|
|
on_crash = 'restart'
|
|
|
|
|
|
{ if ( $admins )
|
|
{
|
|
$OUT .= "xen_shell = '$admins'\n";
|
|
}
|
|
}
|