# # 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"; } }