From acd10cda5486614c0e7cf0e81f2a1cc7e10a17b1 Mon Sep 17 00:00:00 2001 From: steve Date: Sun, 18 Dec 2005 19:05:58 +0000 Subject: [PATCH] 2005-12-18 19:05:58 by steve Documentation updates. --- xen-create-image | 159 ++++++++++++++++++++++++++++++++++------------- 1 file changed, 115 insertions(+), 44 deletions(-) diff --git a/xen-create-image b/xen-create-image index 6550dea..d1aa2df 100755 --- a/xen-create-image +++ b/xen-create-image @@ -13,10 +13,11 @@ --manual Read this scripts manual. Size / General options: - --size Set the size of the primary disk image. - --swap Set the size of the swap partition. + --dir Specify where the output images should go. --fs Specify the filesystem type to use. --memory Setup the amount of memory allocated to the instance. + --size Set the size of the primary disk image. + --swap Set the size of the swap partition. Networking options: --dhcp Setup the image to get an IP address via DHCP @@ -27,7 +28,6 @@ Mandatory options: - --dir Specify where the output images should go. --hostname Set the images hostname. =cut @@ -38,6 +38,34 @@ =over 8 +=item B<--broadcast> +Specify the broadcast address for the virtual image, only useful if DHCP is not used. + +=item B<--dhcp> +Specify that the virtual image should use DHCP to obtain its networking information. + +=item B<--fs> +Specify the filesystem the image should be given. Valid options are 'ext3', +'xfs', or 'reiserfs'. + +=item B<--gateway> +Specify the gateway address for the virtual image, only useful if DHCP is not used. + +=item B<--help> +Show the brief help information. + +=item B<--manual> +Read the manual, with examples. + +=item B<--memory> +Specify the amount of memory the virtual image should be allocated. Defaults +to 96Mb. + +=item B<--mirror> +Specify the mirror to use to the installation of Sarge, defaults to http://ftp.us.debian.org/debian + +=item B<--network> +Specify the network the virtual image is living upon. Only useful if DHCP is not used. =item B<--size> Specify the size of the virtual images primary drive. The size may be suffixed with either Mb, or Gb. @@ -46,19 +74,13 @@ suffixed with either Mb, or Gb. Specify the size of the virtual images swap partition. The size may be suffixed with either Mb, or Gb. -=item B<--help> -Show the brief help information. - -=item B<--manual> -Read the manual, with examples. =back =cut - -=head1 EXAMPLE +=head1 EXAMPLES The following will create a 2Gb disk image, along with a 128Mb swap file with Debian Sarge setup and running via DHCP. @@ -66,6 +88,32 @@ Read the manual, with examples. xen-create-image --size=2Gb --swap=128Mb --dhcp \ --dir=/home/xen --hostname=vm01.my.flat + This next example sets up a host which has the name 'vm02' and + IP address 192.168.1.200, with the gateway address of 192.168.1.1 + + xen-create-image --size=2Gb --swap=128Mb \ + --ip=192.168.1.200 --netmask=255.255.255.0 --network=192.168.1.0 \ + --gateway=192.168.1.1 \ + --dir=/home/xen --hostname=vm02 + + To save time these command line options may be specified in the + configuration file discussed later. + + The directory specified for the output will be used to store the files + which are produced. To avoid clutter each host will have its images + stored beneath the specified directory, named after the hostname. + + For example the images created above will be stored as: + + $dir/domains/vm01.my.flat/ + $dir/domains/vm01.my.flat/disk.img + $dir/domains/vm01.my.flat/swap.img + + $dir/domains/vm02.my.flat/ + $dir/domains/vm02.my.flat/disk.img + $dir/domains/vm02.my.flat/swap.img + + The '/domains/' subdirectory will be created if necessary. =cut @@ -74,43 +122,62 @@ Read the manual, with examples. =head1 DESCRIPTION - This is a reasonably simple script which is more of a cheap hack - than a production tool, however it does appear to work nicely for - my own uses. + xen-create-image is a simple script which allows you to create new + Xen instances of Debian Sarge. The new images conmprise of two + files: - The output of this script will be two files for each new instance: - - 1. One 2Gb file for the installations primary disk image. - 2. One 128Mb file for the images swap partition. - - Usage: - - - The initial two arguments '--hostname' and '--dir' are mandatory, - and control the hostname and output directory respectively. Other - parameters are all network based, either give the list as shown above - or use the '--dhcp' option to setup the host with a DHCP allocated - IP address. - - 'dir' is used to create the output disk images which are referenced - in the Xen configuration file. They will be created as: - - - $dir/domains/ - $dir/domains/$hostname/disk.img - $dir/domains/$hostname/swap.img - - The '/domains/' subdirectory, and sub-subdirectory named after the - hostname will be created if necessary. - - Basic setup with your hosts file, resolv.conf, etc works just fine. + 1. One disk image which will be treated as the primary disk drive. + 2. One swap image. The image will also have an OpenSSH server installed upon it, and - an appropriate /etc/inittab file created. + an appropriate /etc/inittab file created, along with copies of the + hosts password and shadow files. - You are *strongly* advised to chroot() into the new instance once - it has been setup to prune the users in the /etc/passwd file which - will be copied from your hosts system. + +=head1 CONFIGURATION + + To reduce the length of the command line each of the options may + be specified inside a configuration file. + + The script will check three files for options: + + 1. /etc/xen-tools/xen-tools.conf + 2. ~/.xen-tools.conf + 3. ./etc/xen-tools.conf + + The files may contain comments, which begin with the hash '#' character + and are otherwise of the format 'key = value. + + A sample configuration file would look like this: + + +=for example begin + +# +# General options. +# +dir = /home/xen # Ouptut directory +memory = 128Mb # 128Mb for each new image. + +# +# Images +# +fs = ext3 # We like EXT3 +swap = 128mb # 128Mb of swap. +size = 2Gb # 2Gb images. + +# +# Networking options. +# +network = 192.168.1.0 +gateway = 192.168.1.1 +broadcast = 255.255.255.0 + +=for example end + + This allows a new image to be created with only two command line flags: + + xen-create-image --hostname='vm03.my.flat' --ip=192.168.1.201 =head1 AUTHOR @@ -120,11 +187,15 @@ Read the manual, with examples. -- http://www.steve.org.uk/ - $Id: xen-create-image,v 1.15 2005-12-18 18:38:21 steve Exp $ + $Id: xen-create-image,v 1.16 2005-12-18 19:05:58 steve Exp $ =cut +=head1 CONTRIBUTORS + + Radu Spineanu + =head1 LICENSE Copyright (c) 2005 by Steve Kemp. All rights reserved.