Files
xen/tools/examples/defaults
T
mjw@wray-m-3.hpl.hp.com 0f48aa43d8 bitkeeper revision 1.959.1.2 (40cec47bY9QNauJ8KR9IhT-ZdJCb-A)
Fix domain start problem for dom create - id was an int.
Make IP default adressing tolerate eth0 not having an address.
2004-06-15 09:42:19 +00:00

98 lines
3.1 KiB
Plaintext

import xenctl.ip
##### Edit this python file to reflect the configuration of your system
##### This example script expects a variable called 'vmid' to be set.
def config_usage ():
print >>sys.stderr,"""
The config file '%s' requires the following variable to be defined:
vmid -- Numeric identifier for the new domain, used to calculate
the VM's IP address and root partition. E.g. -Dvmid=1
""" % config_file
try:
vmid=int(vmid) # convert to integer
except:
print >>sys.stderr,"%s: This script expects 'vmid' to be set using -D vmid=X" % config_file
assert()
if vmid == 0:
print >>sys.stderr,"%s: 'vmid' must be greater than 0" % config_file
assert()
# STEP 1. Specify kernel image file and otional ramdisk. Can be gzip'ed.
image = "../../../install/boot/xenolinux.gz"
ramdisk = ""
#ramdisk = "/boot/initrd.gz"
builder_fn='linux' # this is a linux domain
# STEP 2. The initial memory allocation (in megabytes) for the new domain.
mem_size = 64
# STEP 3. A handy name for your new domain.
domain_name = "This is VM %d" % vmid
# STEP 4. Which CPU to start domain on?
#cpu = -1 # leave to Xen to pick
cpu = vmid # set based on vmid (mod number of CPUs)
# STEP 5. Specify IP address(es), for the new domain. You need to
# configure IP addrs within the domain just as you do normally. This
# is just to let Xen know about them so it can route packets
# appropriately.
#vfr_ipaddr = ["111.222.333.444","222.333.444.555"]
vfr_ipaddr = [xenctl.ip.add_offset_to_ip(xenctl.ip.get_current_ipaddr(),vmid),
xenctl.ip.add_offset_to_ip('169.254.1.0',vmid),]
# STEP 6. Identify any physcial partitions or virtual disks you want the
# domain to have access to, and what you want them accessible as
# e.g. vbd_list = [ ('phy:sda1','sda1', 'w'),
# ('phy:sda%d' % (3+vmid), 'hda2', 'r'),
# ('vd:as73gd784dh','hda1','w'),
# ('phy:cdrom','hdd','r')
vbd_list = [ ('phy:sda%d'%(7+vmid),'sda1','w' ),
('phy:sda6','sda6','r') ]
# STEP 5b. Set the VBD expertise level. Most people should leave this
# on 0, at least to begin with - this script can detect most dangerous
# disk sharing between domains and with this set to zero it will only
# allow read only sharing.
vbd_expert = 0
# STEP 7. Build the command line for the new domain. Edit as req'd.
# You only need the ip= line if you're NFS booting or the root file system
# doesn't set it later e.g. in ifcfg-eth0 or via DHCP
# You can use 'extrabit' to set the runlevel and custom environment
# variables used by custom rc scripts (e.g. VMID=, usr= )
netmask = xenctl.ip.get_current_ipmask()
gateway = xenctl.ip.get_current_ipgw()
nfsserv = '169.254.1.0'
cmdline_ip = "ip="+vfr_ipaddr[0]+":"+nfsserv+":"+gateway+":"+netmask+"::eth0:off"
cmdline_root = "root=/dev/sda1 ro"
#cmdline_root = "root=/dev/nfs nfsroot=/full/path/to/root/directory"
cmdline_extra = "4 VMID=%d usr=/dev/sda6" % vmid
# STEP 8. Set according to whether you want the script to watch the domain
# and auto-restart it should it die or exit.
auto_restart = False
#auto_restart = True
# STEP 9. (Optional) Define a console port number for the new domain.
# console_port = 9610+vmid