1
0
mirror of synced 2026-02-22 06:37:35 +00:00

Compare commits

..

77 Commits

Author SHA1 Message Date
Axel Beckert
846266eedb Mention Alexander Mette in the changelog as he also sent a patch for #652110, just upstream 2012-05-08 00:11:23 +02:00
Axel Beckert
b5175f6f3b Properly set $FAIL instead of just calling die() 2012-05-08 00:09:09 +02:00
Axel Beckert
7a01a08aa4 Replace tabs with spaces 2012-05-07 23:06:29 +02:00
Axel Beckert
57e6d5d480 Use $ips instead of $IP_ADDRESSES to keep variable names consistent
Update t/xt-create-xen-config.t to cope with the new variable
2012-05-07 23:06:21 +02:00
Axel Beckert
cfd615b62d Mention Vagrant Cascadian's patch in the changelog 2012-05-07 22:18:34 +02:00
Vagrant Cascadian
81656a9ef5 only attempt to generate the ssh host keys if not already present 2012-05-07 22:16:39 +02:00
Axel Beckert
f4103617e6 Update README and long description in debian/control for new releases 2012-05-07 22:00:03 +02:00
Axel Beckert
ce626e3e9f Add dependency on openssh-client for ssh-keygen (Closes: #649108) 2012-05-07 21:50:36 +02:00
Axel Beckert
3e44a19a66 xt-guess-suite-and-mirror exits with non-zero if no proper mirror could be found 2012-05-07 21:42:03 +02:00
Axel Beckert
a9aea889d8 Support sources.list.d (i.e. when no sources.list exists; closes #650300) 2012-05-07 21:33:40 +02:00
Axel Beckert
f55461b1bc Mention Brian Bennett's fix in the Debian changelog 2012-05-07 21:22:36 +02:00
Brian Bennett
89e9a54b06 Fix misbehaviour if the --ip option is passed multiple times
According to xen-create-image(8) if --ip is passed multipe times then the
first IP is used as the "system" IP and the rest are used as aliases. What
actually happened is the last IP is the "system" IP and all other IP's are
silently ignored. (Closes Debian bug #652110)
2012-05-07 21:18:36 +02:00
Axel Beckert
e808f3989a Merge branch '4.2' of gitorious.org:xen-tools/xen-tools into 4.2
Conflicts:
	debian/changelog
2012-04-24 19:55:03 +02:00
Axel Beckert
d8561d4b7d Preliminary support for Ubuntu 12.10 Quantal Quetzal 2012-04-24 19:51:01 +02:00
Axel Beckert
f2e97be786 Reorder Debian changelog entry 2012-03-30 18:58:11 +02:00
Axel Beckert
359a6c13f0 Debian package: Fix lintian warning debian-rules-missing-recommended-target 2012-03-30 18:43:47 +02:00
Axel Beckert
4c7e7d8134 Debian package: Bump Standards-Version to 3.9.3 2012-03-30 18:41:53 +02:00
Axel Beckert
e1ff891a24 No more suggest evms-cli.
It's no more available on any supported Dom0 distribution.

Thanks to Markus Waldeck for the hint.

Conflicts from cherry-pick:

	debian/changelog
2012-03-30 17:49:38 +02:00
Axel Beckert
09179f2dea Support Ubuntu 12.04 LTS Precise, update mirrors for discontinued releases 2012-03-30 17:22:59 +02:00
Axel Beckert
0d1bc0e61c Workaround for missing unit parsing in xen-create-nfs (Closes: #648814) 2011-11-15 23:45:35 +01:00
Axel Beckert
1725e269cf Fix wildcard vs regexp in memory configuration parsing. 2011-11-15 22:33:15 +01:00
Axel Beckert
858b47dc2a Also mention oneiric in the xen-tools.conf inline documentation 2011-09-14 19:38:51 +02:00
Axel Beckert
e9f968c322 More stuff necessary for Ubuntu Oneiric support 2011-09-13 17:23:18 +02:00
Axel Beckert
9921c9a3e8 TODO: xen-create-image doesn't unmount the tempdir properly if /proc wasn't mounted inside 2011-09-13 16:39:30 +02:00
Axel Beckert
be09f2fbf2 Fix Lintian warning copyright-refers-to-symlink-license. 2011-09-13 16:26:22 +02:00
Axel Beckert
85d8a3b338 Support Ubuntu 11.10 Oneiric (LP: #848654) 2011-09-13 16:10:09 +02:00
Axel Beckert
8206a3c4be Mention fixed bug around disk_device in changelog 2011-04-19 23:47:26 +02:00
Axel Beckert
7dd416a57a Document valid values for serialDev and diskDev more precise 2011-04-19 23:16:20 +02:00
Dmitry Nedospasov
31ce92ed7a Minor fix: disk_device check 2011-04-19 23:04:27 +02:00
Stéphane Jourdois
f993b86060 Temporary fix for disk device checks
The check for disk devices was completly broken, fix it temporarily.

This check is also kinda wrong, but is still an improvement over the
current test, so submit it waiting for a better idea.
2011-04-19 23:04:13 +02:00
Axel Beckert
d61d55baef Bump version to 4.2.1+dev for now 2011-03-17 02:59:28 +01:00
Axel Beckert
870ec1adac Call it a release (4.2.1) 2011-03-17 01:23:55 +01:00
Axel Beckert
8bd3206eff Unmount /proc and /dev/pts just before unmounting the disk image (Closes: #588783) 2011-03-17 01:23:15 +01:00
Axel Beckert
5bace3a7e2 Add new commandline option syntax check ipv4_or_auto (Closes: #611407) 2011-03-17 01:23:15 +01:00
Axel Beckert
cf9b356e6d tab -> 8 blanks 2011-03-17 01:23:15 +01:00
Axel Beckert
423ea8157d Mention Guillaume Pernot and his fix in AUTHORS and debian/changelog 2011-03-17 01:23:14 +01:00
Axel Beckert
0ba1ec6f55 Fix sarge amd64 mirror URL (it's now on archive.debian.org, too) 2011-03-17 01:23:14 +01:00
Guillaume Pernot
bfc8051b10 Fix installation of Sarge i386 on amd64 host (Closes: #611397) 2011-03-17 01:23:14 +01:00
Axel Beckert
c2b16e9a50 Mention Raphaël Halimi and his fix in AUTHORS and debian/changelog 2011-03-17 01:23:13 +01:00
Raphaël HALIMI
754e1c7c0c Fix role script editor crashes with dash (Closes: #605203) 2011-03-17 01:23:13 +01:00
Stéphane Jourdois
47bdce47d4 4.2 has been released
Move KNOWN_BUGS items to 4.3
2011-03-17 01:23:13 +01:00
Axel Beckert
7584bac380 Bump version to 4.2+dev for now, not sure if there will be a 4.2.1 or 4.3 next, maybe both 2011-03-17 01:23:13 +01:00
Axel Beckert
de28845d13 debian/changelog: UNRELEASED -> unstable 2010-10-06 00:06:27 +02:00
Axel Beckert
df54e1fe0c Move availability info to the end of the README's About section
manpage -> man page
2010-09-30 16:32:39 +02:00
Dmitry Nedospasov
638594c9ba Minor changes to documentation of xen-create-image 2010-09-24 20:00:10 +02:00
Dmitry Nedospasov
650c8d51f6 Alphabetical order 2010-09-24 19:59:45 +02:00
Dmitry Nedospasov
a98f2feb9e Add note for fs=xfs, sort options alphabetically 2010-09-24 19:41:22 +02:00
Dmitry Nedospasov
30617e6f80 Minor Changes to README 2010-09-24 19:27:08 +02:00
Axel Beckert
a463c15c1e Update comment about Radu being Debian package maintainer in list of contributors 2010-09-22 18:46:52 +02:00
Axel Beckert
273d451d4b Add Jorge Armando Medina to list of contributors 2010-09-22 18:39:08 +02:00
Axel Beckert
7301278417 Some TODOs for xen-update-image 2010-09-22 18:21:10 +02:00
Axel Beckert
d200c2ad5f Update authorship and copyright in bin/* and debian/copyright 2010-09-22 18:18:58 +02:00
Axel Beckert
2eb73b5a25 README: Reword some paragraphs; add xt-guess-suite-and-mirror 2010-09-22 18:10:29 +02:00
Axel Beckert
5154eb4f7e Encode AUTHORS in UTF-8
Only affects Stéphane's given name.
2010-09-22 15:55:55 +02:00
Axel Beckert
dfdf2fed67 Move Stéphane to the list of primary authors 2010-09-22 15:55:30 +02:00
Axel Beckert
2b3bf60ab0 README: Remove nearly obsolete comment on LP#539814 as it's fixed in lucid-proposed-updates 2010-09-21 16:40:24 +02:00
Axel Beckert
308cad902b README: Remove obsolete paragraph about older versions of Ubuntu 2010-09-21 16:35:21 +02:00
Axel Beckert
5a0964d32e TODO: I want to introduce Perl::Critic for the xen-tools developement 2010-09-21 14:54:09 +02:00
Axel Beckert
6414247eca Update TODO categories
It's quite clear that there won't be any big changes to 4.2 anymore
2010-09-21 14:53:31 +02:00
Axel Beckert
53599dd64b Also add Natty and Wheezy to README 2010-09-21 14:37:32 +02:00
Axel Beckert
35a8ed530b Fix debian/changelog entry
rc -> release, package build -> debian package build
2010-09-21 14:29:14 +02:00
Axel Beckert
17f6bd30a1 Switch default mirror for EoL'ed Ubuntu 8.10 (Intrepid) and Debian 4.0 (Etch) to the distributions' archives for old releases 2010-09-21 14:26:42 +02:00
Axel Beckert
8fca20d4d8 Preliminary support for Ubuntu 11.04 (Natty) and Debian 7.0 (Wheezy) 2010-09-21 14:16:58 +02:00
Axel Beckert
2c0f824f4c Add bugfix in last commit to debian/changelog 2010-09-21 13:57:30 +02:00
Jorge Armando Medina
5f49bddca5 xen-create-image: allow xvc0 in --serial_device option. 2010-09-21 13:33:49 +02:00
Axel Beckert
e80568ec17 Prepare 4.2 release 2010-09-13 14:46:33 +02:00
Axel Beckert
d8f8d6c816 Reformat README file, update authors 2010-09-13 14:38:50 +02:00
Axel Beckert
9d3f09b50d Document more clearly how to build the package from a git working copy. 2010-09-13 14:37:11 +02:00
Axel Beckert
5d51730054 Updates examples in xen-tools.conf to better reflect current state 2010-09-09 12:21:21 +02:00
Axel Beckert
94de43cf54 make install: Fix broken reinstallation by removing all /usr/lib/xen-tools/*.d symlinks before creating new ones.
Thanks to Roland Giesler for noticing and reporting this bug.
2010-09-08 23:34:50 +02:00
Axel Beckert
397299ed0a Mention last commit/revert in the debian/changelog as it fixes a bug reported via Debian BTS 2010-09-07 02:03:42 +02:00
Axel Beckert
bc811daa17 Revert "Generate ChangeLog during package build"
This reverts commit 0cb518bc5a and fixes
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=595883

The changelog MUST not be generated during the Debian package build as
it relies on a checked out copy of the VCS repository -- what the
Debian package isn't. The Debian (and any other packaging) gets the
changelog from our tar.gz balls.

We will have to fix the issue, which the reverted commit tried to fix,
differently.
2010-09-07 01:55:25 +02:00
Axel Beckert
fd8f94935a Bump version number to 4.2 RC2 (may become 4.2 "final").
Start new debian/changelog entry, mention Dmitry's fix for #484652.
2010-08-31 00:58:54 +02:00
Dmitry Nedospasov
1e8b4d57c6 Fixed Debian Bug 484652, minor formating 2010-08-31 00:11:00 +02:00
Dmitry Nedospasov
80d002d8a8 swap-dev or noswap must be set with image-dev 2010-08-31 00:11:00 +02:00
Dmitry Nedospasov
8189d013bc Added TODO 2010-08-30 19:44:10 +02:00
Axel Beckert
2d84d9c681 TODO: Refactor the code for less variants of calling cp, rm, mv, etc. 2010-08-25 15:05:20 +02:00
29 changed files with 493 additions and 290 deletions

16
AUTHORS
View File

@@ -3,6 +3,7 @@ Primary Authors
Axel Beckert <abe@deuxchevaux.org>
Dmitry Nedospasov <dmitry@nedos.net>
Stéphane Jourdois <sjourdois [at] com.gmail>
Steve Kemp <steve [at] uk.org.steve>
@@ -32,6 +33,9 @@ Contributions
Stefan Fritsch <sf [at] de.sfritsch>
- Contributed the policy-rc.d fixups for common.sh
Raphaël Halimi <raphael.halimi [at] com.gmail>
- Contribute bashism fix
Sven Hertge <sven [at] de.svenhartge>
- Bugfix for Debian/Gentoo package installation.
@@ -41,10 +45,6 @@ Contributions
Kirk Ismay <captain [at] com.netidea>
- Added hook for automatic CFEngine installation.
Stéphane Jourdois <sjourdois [at] com.gmail>
- Fixed a lot of typos and other small bugs
- Fixed the test suite
Sascha Kettler <kettler [at] net.gmx>
- Implemented support for arbitary partitioning schemes.
@@ -52,6 +52,9 @@ Contributions
- Improved binary detection and good suggestions.
- Better portability for non-bash shells.
Jorge Armando Medina <jmedina [at] com.e-compugraf>
- Fix for backward compatibility with xvc0 serial consoles
Gordon Messmer <gmessmer [at] edu.washington.u>
- Supplied .spec file for building .rpm packages.
@@ -62,6 +65,9 @@ Contributions
Nathan O'Sullivan <nathan [at] au.com.mammoth>
- New features wrt. options and helper functions
Guillaume Pernot <gpernot [at] org.praksys>
- Fixed Sarge amd64 special case
Walter Reiner <walter [at] at.wreiner>
- Provided --image-dev + --swap-dev patch.
@@ -76,7 +82,7 @@ Contributions
Radu Spineanu <radu [at] org.debian>
- Supplied many small tweaks, bugfixes, and suggestions.
- Radu is also the Debian package maintainer and has CVS commit access.
- Radu is also one of the former Debian package maintainers.
Henning Sprang <henning_sprang [at] de.gmx>
- Many suggestions and useful Debian bug reports.

View File

@@ -1,6 +1,6 @@
KNOWN BUGS in xen-tools
Bugs to fix before a 4.2 release
Bugs to fix before a 4.3 release
--------------------------------
* xen-delete-image doesn't remove all logical volumes if --partitions is used.
@@ -11,3 +11,5 @@ Bugs to fix before a 4.2 release
http://xen-tools.org/pipermail/xen-tools-discuss/2010-May/000757.html
* xen-delete-image ignores extension setting
* xen-create-image doesn't unmount the tempdir properly if /proc wasn't mounted inside

View File

@@ -14,7 +14,7 @@
#
TMP ?= /tmp
DIST_PREFIX = ${TMP}
VERSION = 4.2rc1
VERSION = 4.2.1+dev
DEBVERSION = $(shell echo $(VERSION)|sed 's/\(rc\|pre\|beta\|alpha\)/~\1/')
BASE = xen-tools
VCS = $(shell if git ls-files > /dev/null; then echo git; \
@@ -145,6 +145,7 @@ install-bin:
#
install-hooks:
for i in roles/* ; do if [ -f $$i ]; then cp $$i ${prefix}/etc/xen-tools/role.d; fi ; done
for i in ${prefix}/usr/lib/xen-tools/*.d; do if [ -L "$$i" ]; then rm -vf "$$i"; fi; done
mkdir -p ${prefix}/usr/lib/xen-tools/centos-4.d/
mkdir -p ${prefix}/usr/lib/xen-tools/centos-5.d/
mkdir -p ${prefix}/usr/lib/xen-tools/fedora-core-6.d/
@@ -166,6 +167,7 @@ install-hooks:
-cd ${prefix}/usr/lib/xen-tools/ && ln -s debian.d etch.d
-cd ${prefix}/usr/lib/xen-tools/ && ln -s debian.d lenny.d
-cd ${prefix}/usr/lib/xen-tools/ && ln -s debian.d squeeze.d
-cd ${prefix}/usr/lib/xen-tools/ && ln -s debian.d wheezy.d
-cd ${prefix}/usr/lib/xen-tools/ && ln -s debian.d sid.d
-cd ${prefix}/usr/lib/xen-tools/ && ln -s debian.d testing.d
-cd ${prefix}/usr/lib/xen-tools/ && ln -s debian.d stable.d
@@ -185,6 +187,10 @@ install-hooks:
cp -R hooks/karmic/*-* ${prefix}/usr/lib/xen-tools/karmic.d/
-cd ${prefix}/usr/lib/xen-tools/ && ln -s karmic.d lucid.d
-cd ${prefix}/usr/lib/xen-tools/ && ln -s karmic.d maverick.d
-cd ${prefix}/usr/lib/xen-tools/ && ln -s karmic.d natty.d
-cd ${prefix}/usr/lib/xen-tools/ && ln -s karmic.d oneiric.d
-cd ${prefix}/usr/lib/xen-tools/ && ln -s karmic.d precise.d
-cd ${prefix}/usr/lib/xen-tools/ && ln -s karmic.d quantal.d
cp hooks/common.sh ${prefix}/usr/lib/xen-tools

76
README
View File

@@ -1,3 +1,5 @@
xen-tools
---------
Homepage:
http://www.xen-tools.org/software/xen-tools
@@ -6,32 +8,28 @@ Git Repository:
http://gitorious.org/xen-tools
Mailing Lists:
http://xen-tools.org/software/xen-tools/lists.html
http://www.xen-tools.org/software/xen-tools/lists.html
xen-tools
---------
The xen-tools package contains a collection of Perl scripts for
working with Xen guest images under Debian GNU/Linux.
About:
Xen-tools contains a collection of Perl scripts for working with Xen
guest images under Linux.
Using this software, you can easily create new Xen guests configured
to be accessible over your local network and complete with an installed
copy of OpenSSH.
to be accessible over the network via OpenSSH.
xen-tools currently has scripts to install most releases of Debian
(starting with 3.1 "Sarge") and Ubuntu (starting with 6.06 LTS
"Dapper") and some RPM-based distributions.
However currently only Debian and Ubuntu releases are tested and
known to work, i.e.:
However, currently only Debian and Ubuntu releases are tested and
known to work, i.e.:
Debian:
* Sarge 3.1 (i386 only)
* Etch 4.0
* Lenny 5.0
* Squeeze 6.0
* Wheezy 7.0
* Sid (works at least at the moment of writing :-)
Ubuntu:
@@ -43,22 +41,21 @@ xen-tools
* Interpid Ibex 8.10
* Jaunty Jackaplope 9.04
* Karmic Koala 9.10
* Lucid Lynx 10.04 (see [2])
* Maverick Meerkat 10.10 (works at least at the moment of writing :-)
* Lucid Lynx 10.04
* Maverick Meerkat 10.10
* Natty Narwhal 11.04
* Oneiric Ocelot 11.10
* Precise Pangolin 12.04
* Quantal Quetzal 12.10 (preliminary support as it's not yet available)
[1] There is an issue with debootstrap on hardy not installing ksyslogd
This can be fixed by chrooting into the newly installed system
and removing the startup scripts. See:
http://www.linux-vserver.org/Installing_Ubuntu_8.04_Hardy_as_guest
[2] As of writing this 24.04.10, there is an issue with tar on
Lucid with kernels < 2.6.22 this should however be patched right
after release. See:
https://bugs.launchpad.net/ubuntu/+source/tar/+bug/539814
Older versions of ubuntu may work, however you will have to have to find
a mirror that still hosts them. Currently the oldest Ubuntu Distribution
on Canonical's archive.ubuntu.com is Hardy Heron.
Xen-Tools are available prepackaged in Debian and as source tar-ball
for local installation. Installing from source should work flawlessly
on most Linux systems that meet the installation requirements.
Requirements
------------
@@ -74,24 +71,31 @@ Requirements
* Make, if you are not installing through a package manager
You can try to install RPM-based distributions such as CentOS, or
Fedora Core you will need a correctly installed and configured
Fedora Core, but you will need a correctly installed and configured
"rinse" package. This is currently not supported.
If you wish to create new Xen instances which may be controlled by
users via a login shell you should also install the xen-shell package
which is available from:
users via a login shell you can have a look at the (currently
unmaintained) xen-shell package which is available from:
http://xen-tools.org/software/xen-shell/
Installation
------------
As root or with sudo, execute "make install".
See debian/README.source how to build the Debian package from a
checked out copy of the git repository (i.e. without a source tar
ball).
The Scripts
-----------
There now follows a brief description of each included script,
for more thorough documentation please consult the appropriate
manpage.
Here is a brief description of each included script, for more
thorough documentation please consult the appropriate man page.
xen-create-image
@@ -100,10 +104,6 @@ xen-create-image
This script is designed to create new images which may be used
with the Xen hypervisor.
The virtual images will have their networking settings created and,
you may optionally cause the new instance to boot once it has
been created.
This script performs the initial setup, then delegates the real
work to a collection of helper scripts:
@@ -118,6 +118,11 @@ xen-create-image
Create a configuration file in /etc/xen such that Xen can
boot the newly created machine.
* xt-guess-suite-and-mirror
In case of a Debian or Ubuntu Dom0, this script tries to guess
the most suitable suite and mirror for DomUs based on the Dom0's
/etc/apt/sources.list.
xen-create-nfs
--------------
@@ -159,6 +164,5 @@ xen-update-image
a Debian-derived distribution.
Steve
--
--
The Xen-Tools Developer Team

40
TODO
View File

@@ -3,8 +3,8 @@ TODO
See KNOWN_BUGS for real bugs.
Minor bugs to fix and features to add before a 4.2 release
----------------------------------------------------------
Bugs to fix and features to add for 5.0
---------------------------------------
* xen-create-image man page overhaul:
@@ -22,8 +22,24 @@ Minor bugs to fix and features to add before a 4.2 release
Currently no locales are set and this causes several domU errors
which appear in the domU's logs.
Maybe for a 4.3 or 5.0 release
------------------------------
* Documentation overhaul
Better explain what roles /should be/ used for, and that roles
are examples, and shouldn't cover every single scenario. They
are also easy to write.
* Think again about disk_device checks :
Newer Xen provides "xvda", older provided "sda". The current check for
valid values of disk_device (used for root device in domU /etc/fstab)
does only allow those values.
This forbids any deployment of LVM/RAID _inside_ domU, which cannot
be created by xen-tools anyway. So the current check is fine with the
current possibilities of xen-tools, but could become a limitation.
- Is it possible/wanted to "query" xend for default device names ?
- Is it possible to create /dev/mapper devices with xend conf ?
- Can we just avoid to ask for this value and not specify the device
in /etc/fstab (and use /dev/root, /dev/by-uuid, or anything ?)
* xen-create-image --dist=... / sources.list generation should be more fine-grained
@@ -118,12 +134,28 @@ Maybe for a 4.3 or 5.0 release
Like e.g. readConfigurationFile in xen-create-image and
xen-resize-image which are not completely identical.
* Refactor the code for less variants of calling cp, rm, mv, etc.
E.g. always use either cp() from File::Copy or /bin/cp, but not
both. To allow verbose copying, I (Axel) would prefer /bin/cp over
cp();
* Parse numerical parameters transparently for the user
The user shouldn't have to know weather he should specify size
as <size>G or <size>Gb or <size>. This should be parsed without
user interaction and rely on a common format.
* xen-update-image should mount /dev/pts before running apt-get
* xen-update-image should have options for using ...
... aptitude instead of apt-get
... dist-upgrade instead of upgrade
* Use Perl::Critic
Stuff from Steve's TODO list / Generic TODOs
--------------------------------------------

View File

@@ -45,6 +45,8 @@ xen-create-image - Easily create new Xen instances with networking and OpenSSH.
Read the specified file in addition to the global
configuration file.
--copyhosts Copy entries from the dom0's /etc/hosts file to the guest
--copy-cmd NOP: Ignored.
--debootstrap-cmd=/path/to/command
@@ -52,14 +54,36 @@ xen-create-image - Easily create new Xen instances with networking and OpenSSH.
debootstrap if both, debootstrap and cdebootstrap are
installed. Specifying the path is optional.
--disk_device=diskname
Use specified device name for virtual devices instead of
the default value "xvda".
--extension=ext
Specify the suffix to give the Xen configuration
file. (Default value: ".cfg")
--force Force overwriting existing images. This will remove
existing images or LVM volumes which match those which
are liable to be used by the new invocation.
--fs=fs Specify the filesystem type to use for the new guest.
Valid choices are 'ext2', 'ext3', 'ext4', 'reiserfs',
'xfs' or 'btrfs'.
'xfs' or 'btrfs'. (Note: pygrub *DOES NOT* support xfs)
--genpass=1 Generate a random root password (default, set to 0 to turn off)
--genpass_len=N
Override the default password length of 8 and generate a
random password of length N. Note: this only works in
conjunction with --genpass
--hash_method=algorithm
Override the default hashing method of sha256 and use the
provided algorithm. Can be : md5, sha256 or sha512
--hooks=1 Specify whether to run hooks after the image is created.
--ide Use IDE names for virtual devices (i.e. hda not xvda)
--image=str Specify whether to create "sparse" or "full" disk images.
Full images are mandatory when using LVM, so this setting
@@ -72,6 +96,8 @@ xen-create-image - Easily create new Xen instances with networking and OpenSSH.
Specify the initial ramdisk. If an image is specified it
must exist.
--install=1 Specify whether to install the guest system or not.
--keep Don't delete our images if installation fails.
--kernel=/path/to/kernel
@@ -85,16 +111,15 @@ xen-create-image - Easily create new Xen instances with networking and OpenSSH.
Set the path to the kernel modules to use for domU.
If modules are specified they must exist.
--nohosts Don't touch /etc/hosts on the dom0.
--noswap Do not create a swap partition. When this option is
used the system will not have a swap entry added to
its /etc/fstab file either.
--output=dir Specify the output directory to create the xen configuration
file within.
--install=1 Specify whether to install the guest system or not.
--hooks=1 Specify whether to run hooks after the image is created.
--nohosts Don't touch /etc/hosts on the dom0.
--copyhosts Copy entries from the dom0's /etc/hosts file to the guest
--partitions=file
Use a specific partition layout configuration file.
@@ -104,23 +129,14 @@ xen-create-image - Easily create new Xen instances with networking and OpenSSH.
fs, size, swap and noswap are ignored when using this
option.
--genpass=1 Generate a random root password (default, set to 0 to turn off)
--genpass_len=N
Override the default password length of 8 and generate a
random password of length N. Note: this only works in
conjunction with --genpass
--password=passphrase
Set the root password for the new guest.
--hash_method=algorithm
Override the default hashing method of sha256 and use the
provided algorithm. Can be : md5, sha256 or sha512
--passwd Ask for a root password interactively during setup.
NOTE: This overrides --genpass --password
--pygrub DomU should be booted using pygrub.
--role=role Run the specified role script(s) post-install.
Role scripts are discussed later in this manpage.
Can be an absolute path. Otherwise it's relative to the
@@ -134,36 +150,20 @@ xen-create-image - Easily create new Xen instances with networking and OpenSSH.
Specify the directory which contains the role scripts.
This defaults to /etc/xen-tools/role.d/
--scsi Use SCSI names for virtual devices (i.e. sda not xvda)
--serial_device=serialname
Install a getty on the specified serial device instead
of the default device.
--size=size Set the size of the primary disk image.
--tar-cmd NOP: Ignored.
--extension=ext
Specify the suffix to give the Xen configuration
file. (Default value: ".cfg")
--swap=size Set the size of the swap partition.
--swap-dev=/path/to/device
Specify a physical/logical volume for swap usage.
--noswap Do not create a swap partition. When this option is
used the system will not have a swap entry added to
its /etc/fstab file either.
--pygrub DomU should be booted using pygrub.
--ide Use IDE names for virtual devices (i.e. hda not xvda)
--scsi Use SCSI names for virtual devices (i.e. sda not xvda)
--disk_device=diskname
Use specified device name for virtual devices instead of
the default value "xvda".
--serial_device=serialname
Install a getty on the specified serial device instead
of the default device.
--tar-cmd NOP: Ignored.
--vcpus=num
Set the number of vcpus that the new instance will have
@@ -212,6 +212,14 @@ xen-create-image - Easily create new Xen instances with networking and OpenSSH.
Networking options:
--bridge=brname
Optionally, set a specific bridge for the new instance.
This can be especially useful when running multiple
bridges on a dom0.
--broadcast=123.456.789.ABC
Setup the broadcast address for the new instance.
--dhcp The guest will be configured to fetch its networking
details via DHCP.
@@ -236,20 +244,12 @@ xen-create-image - Easily create new Xen instances with networking and OpenSSH.
--netmask=123.456.789.ABC
Setup the netmask for the new instance.
--broadcast=123.456.789.ABC
Setup the broadcast address for the new instance.
--nameserver="123.456.789.ABC 123.456.789.DEF"
Setup the nameserver of the machine, multiple space
separated nameservers are allowed.
If not provided, Dom0's /etc/resolv.conf will be copied
to guest.
--bridge=brname
Optionally, set a specific bridge for the new instance.
This can be especially useful when running multiple
bridges on a machine.
--vifname=vifname
Optionally, set a specific vif name for the new instance.
@@ -262,10 +262,6 @@ xen-create-image - Easily create new Xen instances with networking and OpenSSH.
If you do not wish to use loopback images specify --lvm
or --evms. (These three options are mutually exclusive.)
--lvm=vg Specify the volume group to save images within.
If you do not wish to use LVM specify --dir or --evms.
(These three options are mutually exclusive.)
--evms=lvm2/container
Specify the container to save images within, i.e. '--evms
lvm2/mycontainer'. If you do not wish to use EVMS specify
@@ -277,6 +273,10 @@ xen-create-image - Easily create new Xen instances with networking and OpenSSH.
scripts will expect to be able to parse a domain name
out of it for various purposes.
--lvm=vg Specify the volume group to save images within.
If you do not wish to use LVM specify --dir or --evms.
(These three options are mutually exclusive.)
=cut
@@ -322,6 +322,9 @@ Create a Xen configuration file in so that xm can start the new domain.
than being restricted to just the two standard volumes. For more
details on this please see the later section in this manual "PARTITIONING".
If you wish to install additional packages or do any additional
configuration of your new guests, please read the section on "ROLES".
=cut
=head1 CONFIGURATION
@@ -639,7 +642,7 @@ Create a Xen configuration file in so that xm can start the new domain.
=head1 ROLES
Currently there are some roles scripts included which work for
the Debian and Ubuntu distrubtions only. They are included
the Debian and Ubuntu distrubtions only. They are included
primarily as examples of the kind of things you could accomplish.
The supplied scripts are:
@@ -731,17 +734,19 @@ Install an X11 server, using VNC and XDM
=for example cut
=head1 AUTHOR
=head1 AUTHORS
Steve
--
http://www.steve.org.uk/
Steve Kemp, http://www.steve.org.uk/
Axel Beckert, http://noone.org/abe/
Dmitry Nedospasov, http://nedos.net/
Stéphane Jourdois
=cut
=head1 LICENSE
Copyright (c) 2005-2009 by Steve Kemp. All rights reserved.
Copyright (c) 2005-2009 by Steve Kemp, (c) 2010 by The Xen-Tools
Development Team. All rights reserved.
This module is free software;
you can redistribute it and/or modify it under
@@ -801,7 +806,7 @@ my $FAIL = 0;
#
# Release number.
#
my $RELEASE = '4.2rc1';
my $RELEASE = '4.2.1+dev';
#
@@ -1246,7 +1251,7 @@ sub testXenConfig
# Read the configuration file.
#
open( CONFIG, "<", "/etc/xen/xend-config.sxp" ) or
die "Failed to read /etc/xen/xend-config.sxp: $!";
fail("Failed to read /etc/xen/xend-config.sxp: $!");
while (<CONFIG>)
{
next if ( !$_ || !length($_) );
@@ -1346,17 +1351,17 @@ sub setupDefaultOptions
$CONFIG{ 'mirror' } = '';
# Initialize per distribution mirror defaults: Debian
foreach my $debdist (qw(etch lenny squeeze sid testing stable unstable)) {
foreach my $debdist (qw(squeeze wheezy sid testing oldstable stable unstable)) {
$CONFIG{ 'mirror_'.$debdist } = $CONFIG{ 'mirror' }
}
foreach my $debdist (qw(sarge)) {
foreach my $debdist (qw(sarge etch lenny)) {
$CONFIG{ 'mirror_'.$debdist } = 'http://archive.debian.org/debian';
}
# Initialize per distribution mirror defaults: Ubuntu
foreach my $ubuntudist (qw(dapper hardy intrepid jaunty karmic lucid maverick)) {
foreach my $ubuntudist (qw(dapper hardy lucid natty oneiric precise quantal)) {
$CONFIG{ 'mirror_'.$ubuntudist } = 'http://archive.ubuntu.com/ubuntu';
}
foreach my $ubuntudist (qw(edgy feisty gutsy)) {
foreach my $ubuntudist (qw(edgy feisty gutsy intrepid jaunty karmic maverick)) {
$CONFIG{ 'mirror_'.$ubuntudist } = 'http://old-releases.ubuntu.com/ubuntu';
}
$CONFIG{ 'arch' } = '';
@@ -1446,7 +1451,7 @@ sub readConfigurationFile
my $line = "";
open( FILE, "<", $file ) or die "Cannot read file '$file' - $!";
open( FILE, "<", $file ) or fail("Cannot read file '$file' - $!");
while ( defined( $line = <FILE> ) )
{
@@ -1544,17 +1549,21 @@ sub checkOption
message => "must be an existing directory.\n",
},
serialDev => {
check => qr/^(?:\/dev\/)?(?:tty|hvc)[0-9]+$/,
message => "must be a serial device (tty*, hvc*).\n",
check => qr/^(?:\/dev\/)?(?:tty|[xh]vc)[0-9]+$/,
message => "must be a serial device (tty[0-9]+, hvc[0-9]+ or xvc[0-9]+).\n",
},
diskDev => {
check => qr/^(?:\/dev\/)?(?:tty|hvc)[0-9]+$/,
message => "must be a disk device (tty*, hvc*).\n",
check => qr/^(?:\/dev\/)?(?:xvd|sd)[a-z]+$/,
message => "must be a disk device (xvd[a-z]+, sd[a-z]+).\n",
},
ipv4 => {
check => qr/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/,
message => "must be valid IPv4.\n",
},
ipv4_or_auto => {
check => qr/^(?:auto|(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))$/,
message => "must be valid IPv4 or the keyword 'auto'.\n",
},
hostname => {
check => qr/^[a-z0-9][a-z0-9.-]{0,254}$/i,
message => "must be a valid hostname.\n",
@@ -1619,7 +1628,7 @@ sub checkOption
output => 'existingDir',
extension => 'filename',
mac => 'mac',
ip => 'ipv4',
ip => 'ipv4_or_auto',
hash_method => 'hashMethod',
);
@@ -1631,7 +1640,7 @@ sub checkOption
my $type = $optionsTypes{ $option };
# First, check if type exists
die unless exists $types{ $type };
fail("Type $type does not exist") unless exists $types{ $type };
my $check = $types{ $type }{ 'check' };
if (
@@ -1639,10 +1648,15 @@ sub checkOption
(ref $check eq 'CODE' and &$check( $value ) )
) {
# Option did validate, copy it
$CONFIG{ $option } = $value;
if ( $option eq "ip" )
{
push @{ $CONFIG{ $option } }, $value;
} else {
$CONFIG{ $option } = $value;
}
} else {
# Option did _not_ validate
die "ERROR: '$option' argument " . $types{ $type }{ 'message' };
fail("ERROR: '$option' argument " . $types{ $type }{ 'message' });
}
}
}
@@ -1902,9 +1916,9 @@ sub checkArguments
}
#
# Lucid doesn't work without pygrub
# Lucid and probably all later Ubuntus, too, don't work without pygrub
#
if ( $CONFIG{ 'dist' } =~ /lucid|maverick/ )
if ( $CONFIG{ 'dist' } =~ /lucid|maverick|natty|oneiric|precise|quantal/ )
{
$CONFIG{ 'pygrub' } = 1;
}
@@ -1913,9 +1927,10 @@ sub checkArguments
# Sarge amd64 needs different default mirror
#
if ( $CONFIG{ 'dist' } =~ /sarge/ and
$CONFIG{ 'arch' } =~ /amd64/ and
$CONFIG{ 'mirror_sarge' } eq 'http://archive.debian.org/debian' )
{
$CONFIG{ 'mirror_sarge' } = 'http://amd64.debian.net/debian';
$CONFIG{ 'mirror_sarge' } = 'http://archive.debian.org/debian-amd64';
}
#
@@ -2106,11 +2121,21 @@ EOF
exit 127;
}
if ( $CONFIG{ 'image-dev' } && $CONFIG{ 'partitions' } )
if ( $CONFIG{ 'image-dev' } )
{
logprint("Please choose either image-dev or partitions, not both!\n");
$FAIL = 1;
exit 127;
if ( $CONFIG{ 'partitions' } )
{
logprint("Please choose either image-dev or partitions, not both!\n");
$FAIL = 1;
exit 127;
}
if ( !$CONFIG{ 'swap-dev' } && !$CONFIG{ 'noswap' } )
{
logprint("Please choose swap-dev or noswap with image-dev!\n");
$FAIL = 1;
exit 127;
}
}
@@ -2915,7 +2940,7 @@ sub createLoopbackImages
eval {mkpath( $output, 0, 0755 );};
if ($@)
{
die "Cannot create directory tree $output - $@";
fail("Cannot create directory tree $output - $@");
}
}
@@ -3712,12 +3737,6 @@ sub runCustomisationHooks
} else {
unlink "$MOUNT_POINT/etc/resolv.conf";
}
#
# Unmount /proc and /dev/pts in the guest install.
#
runCommand("umount $MOUNT_POINT/proc");
runCommand("umount $MOUNT_POINT/dev/pts");
}
@@ -3740,7 +3759,7 @@ sub findIP
# Open and read the file.
#
open( RANGE, "<", $CONFIG{ 'ipfile' } ) or
die "Failed to read $CONFIG{'ipfile'} - $!";
fail("Failed to read $CONFIG{'ipfile'} - $!");
my @lines = <RANGE>;
my @updated;
close(RANGE);
@@ -3771,7 +3790,7 @@ sub findIP
# Now write out the new entries.
#
open( RANGE, ">", $CONFIG{ 'ipfile' } ) or
die "Failed to write to $CONFIG{'ipfile'} - $!";
fail("Failed to write to $CONFIG{'ipfile'} - $!");
print RANGE join( "\n", @updated );
close(RANGE);
@@ -3970,6 +3989,12 @@ sub runXenConfigCreation
$command .= " --admins=$CONFIG{'admins'}";
}
#
# Make sure the template gets a list of all IPs
#
$ENV{ 'ips' } = $IP_ADDRESSES;
logprint("\nCreating Xen configuration file\n");
runCommand($command);
logprint("Done\n");
@@ -4038,7 +4063,7 @@ sub setupRootPassword
}
else
{
die "oops... unknown hashing method, should not happen!";
fail("oops... unknown hashing method, should not happen!");
}
my $hash = crypt($PASSWORD, $hash_method . $salt);
@@ -4049,8 +4074,8 @@ sub setupRootPassword
#
my $tmp_shadow_path = "$shadow_path.tmp";
cp("$shadow_path","$tmp_shadow_path");
open(TMP, "<", $tmp_shadow_path) or die $!;
open(SHADOW, ">", $shadow_path) or die $!;
open(TMP, "<", $tmp_shadow_path) or fail($!);
open(SHADOW, ">", $shadow_path) or fail($!);
my $line;
while(defined($line = <TMP>))
{
@@ -4091,6 +4116,23 @@ sub generatePassword {
}
=begin doc
Properly set $FAIL on die
=end doc
=cut
sub fail
{
logprint(@_);
$FAIL = 1;
exit 127;
}
=begin doc
Print the given string to the logfile.
@@ -4246,6 +4288,12 @@ sub unMountImage
{
my ($point) = (@_);
#
# First we unmount /proc and /dev/pts in the guest install.
#
runCommand("umount $MOUNT_POINT/proc");
#runCommand("umount $MOUNT_POINT/dev/pts");
#
# Open /proc/mount and get a list of currently mounted paths
# which begin with our mount point.

View File

@@ -19,9 +19,9 @@ xen-create-nfs - Create a Xen configuration file for an NFS-root guest.
--dhcp Configure the guest to use DHCP for IP allocation.
--gateway The gateway address to use when configured with a static IP.
--hostname The hostname to configure for the guest.
--ip The IP address to use when configured with a static IP.
--netmask The netmask to use when configured with a static IP.
--nameserver The nameserver to use when configured with a static IP.
--ip The IP address to use when configured with a static IP.
General options:
--admins Specify which users should be setup as xen-shell admins.
@@ -84,18 +84,18 @@ Show the version number and exit.
=cut
=head1 AUTHOR
=head1 AUTHORS
Steve
--
http://www.steve.org.uk/
Steve Kemp, http://www.steve.org.uk/
Stéphane Jourdois
=cut
=head1 LICENSE
Copyright (c) 2005-2009 by Steve Kemp. All rights reserved.
Copyright (c) 2005-2009 by Steve Kemp, (c) 2010 by The Xen-Tools
Development Team. All rights reserved.
This module is free software;
you can redistribute it and/or modify it under
@@ -131,7 +131,7 @@ $CONFIG{ 'template' } = '/etc/xen-tools/xm-nfs.tmpl';
#
# Release number.
#
my $RELEASE = '4.2rc1';
my $RELEASE = '4.2.1+dev';
# store version number away.
@@ -380,6 +380,30 @@ sub testArguments
die "Missing NFS root." unless ( $CONFIG{ 'nfs_root' } );
# Shorthack to fix http://bugs.debian.org/648814 -- xen-create-nfs
# should better use xt-create-xen-config instead. Guess from where
# this code is borrowed for now...
if ( exists($CONFIG{ 'memory' }) and
defined($CONFIG{ 'memory' }) ) {
#
# The memory size: Convert Gb -> Mb.
#
if ( $CONFIG{ 'memory' } =~ /^(\d+)Gb.*$/i )
{
$CONFIG{ 'memory' } = $1 * 1024;
}
#
# Remove any trailing Mb.
#
if ( $CONFIG{ 'memory' } =~ /^(\d+)Mb.*$/i )
{
$CONFIG{ 'memory' } = $1;
}
}
# All OK.
}

View File

@@ -16,8 +16,8 @@ xen-delete-image - Delete previously created Xen instances.
General options:
--dir Specify the output directory where images were previously saved.
--lvm Specify the LVM volume to use.
--evms Specify the EVMS container to use.
--lvm Specify the LVM volume to use.
Specifying hosts:
--hostname Specify the image name to delete.
@@ -130,18 +130,19 @@ Show the version number and exit.
=cut
=head1 AUTHOR
=head1 AUTHORS
Steve
--
http://www.steve.org.uk/
Steve Kemp, http://www.steve.org.uk/
Axel Beckert, http://noone.org/abe/
Stéphane Jourdois
=cut
=head1 LICENSE
Copyright (c) 2005-2009 by Steve Kemp. All rights reserved.
Copyright (c) 2005-2009 by Steve Kemp, (c) 2010 by The Xen-Tools
Development Team. All rights reserved.
This module is free software;
you can redistribute it and/or modify it under
@@ -170,7 +171,7 @@ my %CONFIG;
#
# Release number.
#
my $RELEASE = '4.2rc1';
my $RELEASE = '4.2.1+dev';

View File

@@ -58,18 +58,17 @@ Show the version number and exit.
=cut
=head1 AUTHOR
=head1 AUTHORS
Steve
--
http://www.steve.org.uk/
Steve Kemp, http://www.steve.org.uk/
Stéphane Jourdois
=cut
=head1 LICENSE
Copyright (c) 2005-2009 by Steve Kemp. All rights reserved.
Copyright (c) 2005-2009 by Steve Kemp, (c) 2010 by The Xen-Tools
Development Team. All rights reserved.
This module is free software;
you can redistribute it and/or modify it under
@@ -102,7 +101,7 @@ $CONFIG{ 'prefix' } = "/etc/xen";
#
# Release number.
#
my $RELEASE = '4.2rc1';
my $RELEASE = '4.2.1+dev';

View File

@@ -76,18 +76,18 @@ Show the version number and exit.
=cut
=head1 AUTHOR
=head1 AUTHORS
Steve
--
http://www.steve.org.uk/
Steve Kemp, http://www.steve.org.uk/
Axel Beckert, http://noone.org/abe/
=cut
=head1 LICENSE
Copyright (c) 2005-2009 by Steve Kemp. All rights reserved.
Copyright (c) 2005-2009 by Steve Kemp, (c) 2010 by The Xen-Tools
Development Team. All rights reserved.
This module is free software;
you can redistribute it and/or modify it under
@@ -116,7 +116,7 @@ my %CONFIG;
#
# Release number.
#
my $RELEASE = '4.2rc1';
my $RELEASE = '4.2.1+dev';

View File

@@ -80,19 +80,18 @@ Show the version number and exit.
=cut
=head1 AUTHOR
=head1 AUTHORS
Steve
--
http://www.steve.org.uk/
Steve Kemp, http://www.steve.org.uk/
Axel Beckert, http://noone.org/abe/
Stéphane Jourdois
=cut
=head1 LICENSE
Copyright (c) 2005-2009 by Steve Kemp. All rights reserved.
Copyright (c) 2005-2009 by Steve Kemp, (c) 2010 by The Xen-Tools
Development Team. All rights reserved.
This module is free software;
you can redistribute it and/or modify it under
@@ -121,7 +120,7 @@ my %CONFIG;
#
# Release number.
#
my $RELEASE = '4.2rc1';
my $RELEASE = '4.2.1+dev';
#

View File

@@ -104,19 +104,18 @@ xt-create-config - Create a Xen configuration file for a new guest
=cut
=head1 AUTHORS
=head1 AUTHOR
Steve
--
http://www.steve.org.uk/
Steve Kemp, http://www.steve.org.uk/
Axel Beckert, http://noone.org/abe/
Stéphane Jourdois
=cut
=head1 LICENSE
Copyright (c) 2005-2009 by Steve Kemp. All rights reserved.
Copyright (c) 2005-2009 by Steve Kemp, (c) 2010 by The Xen-Tools
Development Team. All rights reserved.
This module is free software;
you can redistribute it and/or modify it under
@@ -157,7 +156,7 @@ $CONFIG{ 'extension' } = '.cfg';
#
# Release number.
#
my $RELEASE = '4.2rc1';
my $RELEASE = '4.2.1+dev';
@@ -376,7 +375,7 @@ sub createXenConfig
#
# The memory size: Convert Gb -> Mb.
#
if ( $ENV{ 'memory' } =~ /^(\d+)Gb*$/i )
if ( $ENV{ 'memory' } =~ /^(\d+)Gb.*$/i )
{
$ENV{ 'memory' } = $1 * 1024;
}
@@ -384,7 +383,7 @@ sub createXenConfig
#
# Remove any trailing Mb.
#
if ( $ENV{ 'memory' } =~ /^(\d+)Mb*$/i )
if ( $ENV{ 'memory' } =~ /^(\d+)Mb.*$/i )
{
$ENV{ 'memory' } = $1;
}

View File

@@ -60,18 +60,19 @@ xt-customize-image - Customize a freshly installed copy of GNU/Linux
=cut
=head1 AUTHOR
=head1 AUTHORS
Steve
--
http://www.steve.org.uk/
Steve Kemp, http://www.steve.org.uk/
Axel Beckert, http://noone.org/abe/
Stéphane Jourdois
=cut
=head1 LICENSE
Copyright (c) 2005-2009 by Steve Kemp. All rights reserved.
Copyright (c) 2005-2009 by Steve Kemp, (c) 2010 by The Xen-Tools
Development Team. All rights reserved.
This module is free software;
you can redistribute it and/or modify it under
@@ -97,7 +98,7 @@ my %CONFIG;
#
# Release number.
#
my $RELEASE = '4.2rc1';
my $RELEASE = '4.2.1+dev';

View File

@@ -30,15 +30,17 @@ xen-create-image(1) or the backticks feature in xen-tools.conf.
=cut
=head1 AUTHOR
=head1 AUTHORS
Axel Beckert <abe@deuxchevaux.org>, http://noone.org/abe/
Axel Beckert, http://noone.org/abe/
Stéphane Jourdois
=cut
=head1 LICENSE
Copyright (C) 2010 by Steve Kemp. All rights reserved.
Copyright (C) 2010 by The Xen-Tools Development Team. All rights
reserved.
This module is free software; you can redistribute it and/or modify it
under the same terms as Perl itself. The LICENSE file contains the
@@ -66,7 +68,8 @@ my %fallback_suite = ( Debian => 'stable',
Ubuntu => 'lucid' );
# Where to look for the sources.list to parse
my $sources_list_file = '/etc/apt/sources.list';
my @sources_list_files = ( '/etc/apt/sources.list',
glob('/etc/apt/sources.list.d/*.list'));
use File::Slurp;
use Getopt::Long;
@@ -78,7 +81,7 @@ use strict;
#
# Release number.
#
my $RELEASE = '4.2rc1';
my $RELEASE = '4.2.1+dev';
# Init
my $mirror = '';
@@ -106,47 +109,49 @@ if ($want_manual) {
pod2usage( -verbose => 2 );
}
if (-r $sources_list_file) {
# sources.list exists, so it's something debianoid.
all_sources_list_files: foreach my $sources_list_file (@sources_list_files) {
if (-r $sources_list_file) {
# sources.list file exists, so it's something debianoid.
# read sources.list and split it into lines
my @sources_list = read_file($sources_list_file);
# read sources.list and split it into lines
my @sources_list = read_file($sources_list_file);
# Find the first line which is a Debian or Ubuntu mirror but not
# an updates, backports, volatile or security mirror.
foreach my $sources_list_entry (@sources_list) {
# Normalize line
chomp($sources_list_entry);
$sources_list_entry =~ s/^\s*(.*?)\s*$/$1/;
# Find the first line which is a Debian or Ubuntu mirror but not
# an updates, backports, volatile or security mirror.
foreach my $sources_list_entry (@sources_list) {
# Normalize line
chomp($sources_list_entry);
$sources_list_entry =~ s/^\s*(.*?)\s*$/$1/;
# Skip definite non-entries
next if $sources_list_entry =~ /^\s*($|#)/;
# Skip definite non-entries
next if $sources_list_entry =~ /^\s*($|#)/;
# Split up into fields
my @source_components = split(/\s+/, $sources_list_entry);
# Split up into fields
my @source_components = split(/\s+/, $sources_list_entry);
# Minimum number of components is 4
next if $#source_components < 3;
# Minimum number of components is 4
next if $#source_components < 3;
# Don't use deb-src entries.
next if $source_components[0] eq 'deb-src';
# Don't use deb-src entries.
next if $source_components[0] eq 'deb-src';
# Skip updates, backports, volatile or security mirror.
next if $source_components[2] !~ /^[a-z]+$/;
# Skip updates, backports, volatile or security mirror.
next if $source_components[2] !~ /^[a-z]+$/;
if ($source_components[1] =~ m(/debian/?$|/ubuntu/?$)) {
# Seems a typical mirror. Let's use that one
if ($source_components[1] =~ m(/debian/?$|/ubuntu/?$)) {
# Seems a typical mirror. Let's use that one
$mirror = $source_components[1];
$suite = $source_components[2];
$mirror = $source_components[1];
$suite = $source_components[2];
$found = 1;
last;
$found = 1;
last all_sources_list_files;
}
}
}
warn "Couldn't parse $sources_list_file of the Dom0.\n" unless $found;
}
die "Couldn't find a useful entry in the sources.list files of the Dom0. Tried:\n ".
join("\n ", @sources_list_files)."\n" unless $found;
my $lsb_release = `which lsb_release`;
chomp($lsb_release);

View File

@@ -80,18 +80,19 @@ Untar a .tar file into the new installation location. This tarfile is assumed t
=cut
=head1 AUTHOR
=head1 AUTHORS
Steve
--
http://www.steve.org.uk/
Steve Kemp, http://www.steve.org.uk/
Axel Beckert, http://noone.org/abe/
Dmitry Nedospasov, http://nedos.net/
Stéphane Jourdois
=cut
=head1 LICENSE
Copyright (c) 2005-2009 by Steve Kemp. All rights reserved.
Copyright (c) 2005-2009 by Steve Kemp, (c) 2010 by The Xen-Tools
Development Team. All rights reserved.
This module is free software;
you can redistribute it and/or modify it under
@@ -116,7 +117,7 @@ my %CONFIG;
#
# Release number.
#
my $RELEASE = '4.2rc1';
my $RELEASE = '4.2.1+dev';
#

View File

@@ -9,6 +9,7 @@ $ cd xen-tools
If you just want to build the binary package, run
$ make changelog
$ dpkg-buildpackage -uc -us -b
If you want to build source and binary packages, e.g. for an upload to
@@ -18,4 +19,4 @@ $ make orig-tar-gz
$ dpkg-buildpackage
-- Axel Beckert <abe@debian.org>, Mon, 17 May 2010 13:31:31 +0200
-- Axel Beckert <abe@debian.org>, Mon, 13 Sep 2010 14:30:05 +0200

66
debian/changelog vendored
View File

@@ -1,3 +1,69 @@
xen-tools (4.2.1+dev-1) UNRELEASED; urgency=low
* New upstream snapshot
- Correctly checks and documents valid values for
disk_device. (Closes: #621499)
- Supports creating Ubuntu 11.10 Oneiric DomUs (LP: #848654)
- Supports creating Ubuntu 12.04 Precise and 12.10 Quantal DomUs
- Updated mirror list for discontinued releases of Debian and Ubuntu
- Workaround for missing unit parsing in xen-create-nfs (Closes:
#648814)
- Fix wildcard vs regexp in memory configuration parsing.
- Fix misbehaviour if --ip option is passed multiple times (Closes:
#652110; Thanks Brian Bennett and Alexander Mette!)
- Supports /etc/apt/sources.list.d/ (Closes: #650300)
- xt-guess-suite-and-mirror exits with non-zero if no proper mirror
could be extracted from /etc/apt/sources.list or
/etc/apt/sources.list.d/*.list (Thanks Phil Frost!)
- Only attempts to generate the ssh host keys if not already present
(Closes: #607236; Thanks Vagrant Cascadian!)
* Add dependency on openssh-client for ssh-keygen (Closes: #649108)
* No more suggest evms-cli -- it's no more available on any supported
Dom0 distribution. Thanks to Markus Waldeck for the hint.
* Bump Standards-Version to 3.9.3 (no changes)
* Fix the following Lintian warnings:
- copyright-refers-to-symlink-license
- debian-rules-missing-recommended-target
-- Axel Beckert <abe@debian.org> Mon, 07 May 2012 21:21:33 +0200
xen-tools (4.2.1-1) unstable; urgency=low
* New upstream release
- Fixes bashism in "editor" roles script. Thanks Raphaël Halimi for
the patch! (Closes: #605203)
- Fixes missing architecture check in Sarge amd64 special case. Thanks
to Guillaume Pernot! (Closes: #611397) Also changes default Sarge
amd64 mirror to http://archive.debian.org/debian-amd64/.
- Allows --ip=auto again (Closes: #611407)
- Unmounts /proc and /dev/pts of the freshly installed DomU just
before unmounting the disk image. (Closes: #588783)
-- Axel Beckert <abe@debian.org> Thu, 17 Mar 2011 01:00:47 +0100
xen-tools (4.2-1) unstable; urgency=low
* New upstream release
- Fixes several cases of broken or incomplete config files with
unexpected or seldom parameter combinations. (Closes: #484652)
- Updates examples in /etc/xen-tools.conf to better reflect current
state
- Allows usage of xvc* as serial console as used as default by older
Xen versions.
- Preliminary support for Ubuntu 11.04 (Natty) and Debian 7.0 (Wheezy)
(Closes: #597521)
- Switches default mirror for EoL'ed Ubuntu 8.10 (Intrepid) and Debian
4.0 (Etch) to the distributions' archives for old releases.
* Does no more try extract the upstream changelog during debian package
build. The commit which introduced this problem has been reverted.
Document more clearly in debian/README.source how to build the package
from a checked out copy of the git repository, especially that the
upstream changelog has to be generated first out of the VCS log.
(Closes: #595883)
* Update debian/copyright: Add Stéphane Jourdois to list of authors.
-- Axel Beckert <abe@debian.org> Tue, 05 Oct 2010 19:01:49 +0200
xen-tools (4.2~rc1-1) unstable; urgency=low
[Axel Beckert]

10
debian/control vendored
View File

@@ -3,16 +3,16 @@ Section: utils
Priority: extra
Maintainer: Axel Beckert <abe@debian.org>
Build-Depends: debhelper (>= 7.0.0), libtest-pod-perl, libtext-template-perl
Standards-Version: 3.9.1
Standards-Version: 3.9.3
Homepage: http://xen-tools.org/software/xen-tools
Vcs-Browser: http://gitorious.org/xen-tools/xen-tools
Vcs-Git: git://gitorious.org/xen-tools/xen-tools.git
Package: xen-tools
Architecture: all
Depends: debootstrap | cdebootstrap, perl-modules, libtext-template-perl, libconfig-inifiles-perl, libfile-slurp-perl, ${misc:Depends}
Depends: debootstrap | cdebootstrap, perl-modules, libtext-template-perl, libconfig-inifiles-perl, libfile-slurp-perl, ${misc:Depends}, openssh-client
Recommends: xen-hypervisor-amd64 | xen-hypervisor-i386 | xen-hypervisor-i386-pae, rinse, xen-shell, libexpect-perl
Suggests: reiserfsprogs, xfsprogs, xen-utils, cfengine2, evms-cli, btrfs-tools
Suggests: reiserfsprogs, xfsprogs, xen-utils, cfengine2, btrfs-tools
Description: Tools to manage Xen virtual servers
This package contains tools to manage Debian based Xen virtual servers.
.
@@ -25,6 +25,7 @@ Description: Tools to manage Xen virtual servers
* Debian 4.0 Etch
* Debian 5.0 Lenny
* Debian 6.0 Squeeze
* Debian 7.0 Wheezy
* Debian Sid (Unstable)
* Ubuntu 6.06 Dapper Drake (LTS)
* Ubuntu 6.10 Edgy Eft
@@ -36,3 +37,6 @@ Description: Tools to manage Xen virtual servers
* Ubuntu 9.10 Karmic Koala
* Ubuntu 10.04 Lucid Lynx (LTS)
* Ubuntu 10.10 Maverick Meerkat
* Ubuntu 11.04 Natty Narwhal
* Ubuntu 11.10 Oneiric Ocelot
* Ubuntu 12.04 Precise Pangolin (LTS)

8
debian/copyright vendored
View File

@@ -4,8 +4,10 @@ Tue, 20 Dec 2005 02:21:05 +0200.
It was downloaded from http://xen-tools.org/software/xen-tools/
Copyright 2005-2009: Steve Kemp <steve@steve.org.uk>
Copyright 2010: Axel Beckert <abe@deuxchevaux.org>
Copyright 2010: Dmitry Nedospasov <dmitry@nedos.net>
Copyright 2010: The Xen-Tools Development Team, currently consisting of:
Axel Beckert <abe@deuxchevaux.org>,
Dmitry Nedospasov <dmitry@nedos.net>, and
Stéphane Jourdois <sjourdois@gmail.com>
License:
@@ -21,5 +23,5 @@ Perl is distributed under licenses:
b) the "Artistic License" which comes with Perl.
On Debian GNU/Linux systems, the complete text of the GNU General
Public License can be found in /usr/share/common-licenses/GPL' and
Public License can be found in /usr/share/common-licenses/GPL-1' and
the Artistic Licence in /usr/share/common-licenses/Artistic'.

6
debian/rules vendored
View File

@@ -9,8 +9,9 @@ configure-stamp:
touch configure-stamp
build: build-stamp
build: build-arch build-indep
build-arch: build-stamp
build-indep: build-stamp
build-stamp: configure-stamp
dh_testdir
touch build-stamp
@@ -28,7 +29,6 @@ install: build
dh_prep
make manpages
make changelog
make install prefix=`pwd`/debian/xen-tools
dh_installdirs

View File

@@ -134,20 +134,9 @@ dist = `xt-guess-suite-and-mirror --suite` # Default distribution to install.
image = sparse # Specify sparse vs. full disk images.
#
# Currently supported and tested distributions include:
#
# via Debootstrap:
#
# Debian:
# sid, sarge, etch, lenny.
#
# Ubuntu:
# edgy, feisty, dapper.
#
# via Rinse:
# centos-4, centos-5.
# fedora-core-4, fedora-core-5, fedora-core-6, fedora-core-7
#
# See the README for currently supported and tested distributions. You can
# either find it in the root directory of the unpacked source or, on Debian
# and Ubuntu based systems, in /usr/share/doc/xen-tools/README.gz
#
@@ -273,18 +262,25 @@ mirror = `xt-guess-suite-and-mirror --mirror`
# http://wiki.debian.org/DebianGeoMirror):
#
# mirror_sarge = http://archive.debian.org/debian
# mirror_lenny = http://cdn.debian.net/debian
# mirror_etch = http://archive.debian.org/debian
# mirror_lenny = http://archive.debian.org/debian
# mirror_squeeze = http://cdn.debian.net/debian
# mirror_wheezy = http://cdn.debian.net/debian
# mirror_sid = http://cdn.debian.net/debian
# mirror_dapper = http://archive.ubuntu.com/ubuntu
# mirror_edgy = http://old-releases.ubuntu.com/ubuntu
# mirror_feisty = http://old-releases.ubuntu.com/ubuntu
# mirror_gutsy = http://old-releases.ubuntu.com/ubuntu
# mirror_hardy = http://archive.ubuntu.com/ubuntu
# mirror_intrepid = http://archive.ubuntu.com/ubuntu
# mirror_karmic = http://archive.ubuntu.com/ubuntu
# mirror_intrepid = http://old-releases.ubuntu.com/ubuntu
# mirror_jaunty = http://old-releases.ubuntu.com/ubuntu
# mirror_karmic = http://old-releases.ubuntu.com/ubuntu
# mirror_lucid = http://archive.ubuntu.com/ubuntu
# mirror_maverick = http://archive.ubuntu.com/ubuntu
# mirror_natty = http://archive.ubuntu.com/ubuntu
# mirror_oneiric = http://archive.ubuntu.com/ubuntu
# mirror_precise = http://archive.ubuntu.com/ubuntu
# mirror_quantal = http://archive.ubuntu.com/ubuntu
#
@@ -306,7 +302,7 @@ btrfs_options = defaults
#
# If you're using the lenny or later version of the Xen guest kernel you will
# need to make sure that you use 'hvc0' for the guest serial device,
# and 'xvdX' instead of 'sdX' for serial devices.
# and 'xvdX' instead of 'sdX' for disk devices.
#
# You may specify the things to use here:
#

View File

@@ -63,32 +63,20 @@ memory = '{$memory}'
# Physical volumes
#
{
if ( ( $swap_vbd ) && ( $image_vbd ) )
{
$OUT .= "root = '/dev/$device" . "2 ro'\n";
$OUT .= "disk = [ ";
if ( $image_vbd )
{
$OUT .= "'$image_vbd," . $device . "2,w'";
$OUT .= "root = '/dev/$device" . "2 ro'\n";
$OUT .= "disk = [\n";
$OUT .= " '$image_vbd," . $device . "2,w',\n";
}
if ( $swap_vbd )
{
if ( $image_vbd )
{
$OUT .= ",";
}
$OUT .= "'$swap_vbd," . $device . "1,w'";
}
$OUT .= " ]\n";
if ( $swap_vbd )
{
$OUT .= " '$swap_vbd," . $device . "1,w',\n";
}
$OUT .= " ]\n";
}
}
#
# Hostname
#
@@ -147,7 +135,7 @@ name = '{$hostname}'
$br = ",bridge=$bridge"
}
$OUT .= "vif = [ 'ip=$ip1";
$OUT .= "vif = [ 'ip=$ips";
$OUT .= "$m";
$OUT .= "$vn";
$OUT .= "$br";

View File

@@ -36,20 +36,24 @@ mkdir -p ${prefix}/etc/ssh
#
# Second, Generate the Host RSA Key
#
if [ ! -f ${prefix}/etc/ssh/ssh_host_rsa_key ]; then
if ssh-keygen -t rsa -N "" -f ${prefix}/etc/ssh/ssh_host_rsa_key -C "root@${hostname}"; then
logMessage "successfully generetaged Host RSA"
else
logMessage "failed to generate Host RSA Key"
fi
fi
#
# Third, Generate the Host DSA Key
#
if [ ! -f ${prefix}/etc/ssh/ssh_host_dsa_key ]; then
if ssh-keygen -t dsa -N "" -f ${prefix}/etc/ssh/ssh_host_dsa_key -C "root@${hostname}"; then
logMessage "successfully generetaged Host DSA"
else
logMessage "failed to generate Host DSA Key"
fi
fi
#
# Install ssh

View File

@@ -36,20 +36,24 @@ mkdir -p ${prefix}/etc/ssh
#
# Second, Generate the Host RSA Key
#
if [ ! -f ${prefix}/etc/ssh/ssh_host_rsa_key ]; then
if ssh-keygen -t rsa -N "" -f ${prefix}/etc/ssh/ssh_host_rsa_key -C "root@${hostname}"; then
logMessage "successfully generetaged Host RSA"
else
logMessage "failed to generate Host RSA Key"
fi
fi
#
# Third, Generate the Host DSA Key
#
if [ ! -f ${prefix}/etc/ssh/ssh_host_dsa_key ]; then
if ssh-keygen -t dsa -N "" -f ${prefix}/etc/ssh/ssh_host_dsa_key -C "root@${hostname}"; then
logMessage "successfully generetaged Host DSA"
else
logMessage "failed to generate Host DSA Key"
fi
fi
#
# Install ssh

View File

@@ -36,20 +36,24 @@ mkdir -p ${prefix}/etc/ssh
#
# Second, Generate the Host RSA Key
#
if [ ! -f ${prefix}/etc/ssh/ssh_host_rsa_key ]; then
if ssh-keygen -t rsa -N "" -f ${prefix}/etc/ssh/ssh_host_rsa_key -C "root@${hostname}"; then
logMessage "successfully generetaged Host RSA"
else
logMessage "failed to generate Host RSA Key"
fi
fi
#
# Third, Generate the Host DSA Key
#
if [ ! -f ${prefix}/etc/ssh/ssh_host_dsa_key ]; then
if ssh-keygen -t dsa -N "" -f ${prefix}/etc/ssh/ssh_host_dsa_key -C "root@${hostname}"; then
logMessage "successfully generetaged Host DSA"
else
logMessage "failed to generate Host DSA Key"
fi
fi
#
# Install ssh

View File

@@ -36,20 +36,24 @@ mkdir -p ${prefix}/etc/ssh
#
# Second, Generate the Host RSA Key
#
if [ ! -f ${prefix}/etc/ssh/ssh_host_rsa_key ]; then
if ssh-keygen -t rsa -N "" -f ${prefix}/etc/ssh/ssh_host_rsa_key -C "root@${hostname}"; then
logMessage "successfully generetaged Host RSA"
else
logMessage "failed to generate Host RSA Key"
fi
fi
#
# Third, Generate the Host DSA Key
#
if [ ! -f ${prefix}/etc/ssh/ssh_host_dsa_key ]; then
if ssh-keygen -t dsa -N "" -f ${prefix}/etc/ssh/ssh_host_dsa_key -C "root@${hostname}"; then
logMessage "successfully generetaged Host DSA"
else
logMessage "failed to generate Host DSA Key"
fi
fi
#
# Install ssh

View File

@@ -36,20 +36,24 @@ mkdir -p ${prefix}/etc/ssh
#
# Second, Generate the Host RSA Key
#
if [ ! -f ${prefix}/etc/ssh/ssh_host_rsa_key ]; then
if ssh-keygen -t rsa -N "" -f ${prefix}/etc/ssh/ssh_host_rsa_key -C "root@${hostname}"; then
logMessage "successfully generetaged Host RSA"
else
logMessage "failed to generate Host RSA Key"
fi
fi
#
# Third, Generate the Host DSA Key
#
if [ ! -f ${prefix}/etc/ssh/ssh_host_dsa_key ]; then
if ssh-keygen -t dsa -N "" -f ${prefix}/etc/ssh/ssh_host_dsa_key -C "root@${hostname}"; then
logMessage "successfully generetaged Host DSA"
else
logMessage "failed to generate Host DSA Key"
fi
fi
#
# Install ssh

View File

@@ -61,8 +61,7 @@ for i in `find ${source} -name '*.sed' -print`; do
#
# Get the name of the file, minus the source prefix
#
sourcelen=${#source}
file=/${i:$sourcelen}
file=${i#$source}
#
# Strip the .sed suffix

View File

@@ -36,28 +36,28 @@ noMentionOf( "ip=",
# is no mention of DHCP.
#
testOutputContains( "ip=192.168.1.1",
memory => 128, ip1 => '192.168.1.1', dir => '/tmp' );
memory => 128, ips => '192.168.1.1', dir => '/tmp' );
noMentionOf( "dhcp",
memory => 128, ip1 => '192.168.1.1', dir => '/tmp' );
memory => 128, ips => '192.168.1.1', dir => '/tmp' );
#
# SCSI based systems:
#
testOutputContains( "xvda",
memory => 128, ip1 => '192.168.1.1', dir => '/tmp' );
memory => 128, ips => '192.168.1.1', dir => '/tmp' );
testOutputContains( "/dev/xvda1 ro",
memory => 128, ip1 => '192.168.1.1', dir => '/tmp' );
memory => 128, ips => '192.168.1.1', dir => '/tmp' );
noMentionOf( "hda1",
memory => 128, ip1 => '192.168.1.1', dir => '/tmp' );
memory => 128, ips => '192.168.1.1', dir => '/tmp' );
#
# IDE based systems
#
testOutputContains( "hda1",
memory => 128, ip1 => '192.168.1.1', dir => '/tmp', ide => 1 );
memory => 128, ips => '192.168.1.1', dir => '/tmp', ide => 1 );
testOutputContains( "/dev/hda1 ro",
memory => 128, ip1 => '192.168.1.1', dir => '/tmp', ide => 1 );
memory => 128, ips => '192.168.1.1', dir => '/tmp', ide => 1 );