Compare commits
138 Commits
4.2
...
debian-4.3
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7860d5ac4e | ||
|
|
bb54ee7868 | ||
|
|
6a5506768c | ||
|
|
d6e33edb5b | ||
|
|
611d6c4eb4 | ||
|
|
0cde7cdf39 | ||
|
|
cde5617a29 | ||
|
|
74411f970b | ||
|
|
3383b6dacf | ||
|
|
d9f8a3fc31 | ||
|
|
5703f8b5c9 | ||
|
|
f67c7e25c8 | ||
|
|
8dbd0ef7dc | ||
|
|
58a050218f | ||
|
|
3ce7398cf6 | ||
|
|
0ec64f6926 | ||
|
|
fa9a420490 | ||
|
|
c212cfb08f | ||
|
|
c400b6644a | ||
|
|
917d3d6b2a | ||
|
|
8ba16d0e7a | ||
|
|
7407409c92 | ||
|
|
ebbd16a3be | ||
|
|
ab181b7305 | ||
|
|
eededbddbd | ||
|
|
895c79ac43 | ||
|
|
075da536d3 | ||
|
|
e6ca958418 | ||
|
|
34526d96c9 | ||
|
|
c3528c23be | ||
|
|
5d1b6e0c13 | ||
|
|
05314c37cf | ||
|
|
10dc941e9f | ||
|
|
ae49cf2304 | ||
|
|
c623826bac | ||
|
|
bb01ea4b33 | ||
|
|
107bd59724 | ||
|
|
cab677bab0 | ||
|
|
a3127ff40d | ||
|
|
756cbd13de | ||
|
|
85cbbded61 | ||
|
|
a3d53e78b5 | ||
|
|
a3cc982efe | ||
|
|
9e7a34f47a | ||
|
|
30bba7379b | ||
|
|
68db018009 | ||
|
|
cc4ad94939 | ||
|
|
5bd5f01699 | ||
|
|
75d5a488c8 | ||
|
|
e39b5a0edf | ||
|
|
84602efdf8 | ||
|
|
d6f4e7d32a | ||
|
|
49db07bcf8 | ||
|
|
522eb34694 | ||
|
|
93b7cb3bf2 | ||
|
|
55c3c15d11 | ||
|
|
a8289d0d91 | ||
|
|
494aedab67 | ||
|
|
111765e881 | ||
|
|
b3c834935a | ||
|
|
28e10bc384 | ||
|
|
db77d621e7 | ||
|
|
5acbc5171f | ||
|
|
14226d382b | ||
|
|
0d1e1b7e2a | ||
|
|
060fc6bd19 | ||
|
|
5dd64112ed | ||
|
|
4279ce6d28 | ||
|
|
98983cc9a0 | ||
|
|
2e9394d010 | ||
|
|
fc736c040d | ||
|
|
3106753871 | ||
|
|
8b4701875f | ||
|
|
83f736f0dd | ||
|
|
0747b2fdd9 | ||
|
|
a8bef12391 | ||
|
|
6e0bfb9658 | ||
|
|
9a0c6fa724 | ||
|
|
e727fbbbbd | ||
|
|
953c692b54 | ||
|
|
f18cda8796 | ||
|
|
ef465d9879 | ||
|
|
9320ba661d | ||
|
|
0b820d8675 | ||
|
|
590aa44e7c | ||
|
|
6201e24b51 | ||
|
|
625a6f6282 | ||
|
|
2277f433c1 | ||
|
|
6018925b97 | ||
|
|
98e590eafa | ||
|
|
d0f85802bd | ||
|
|
6a6d3876f6 | ||
|
|
7c64b9e7c9 | ||
|
|
8780d7d9ee | ||
|
|
00586d1443 | ||
|
|
fefc8c1106 | ||
|
|
9c90c93bc9 | ||
|
|
c74cb00897 | ||
|
|
03680e1ee5 | ||
|
|
fcb6b0645c | ||
|
|
4d98232656 | ||
|
|
1b4edee2d3 | ||
|
|
6fe6f5b09f | ||
|
|
99eb2f5af1 | ||
|
|
caca5395f9 | ||
|
|
76ad9e7b86 | ||
|
|
0d813d01c8 | ||
|
|
cabd776c97 | ||
|
|
489c4eb3ad | ||
|
|
94408fb242 | ||
|
|
9a96686953 | ||
|
|
9c3edbcbd5 | ||
|
|
5cf85fa261 | ||
|
|
98b869dbc2 | ||
|
|
1d81bd1d5c | ||
|
|
edea092778 | ||
|
|
b227cf60d8 | ||
|
|
2aa139d3a0 | ||
|
|
e4ca843da9 | ||
|
|
54bde967a2 | ||
|
|
caabc40e3f | ||
|
|
c01dd140e6 | ||
|
|
accbe9e4e7 | ||
|
|
b0bae98746 | ||
|
|
47c146e173 | ||
|
|
5aad123429 | ||
|
|
09a6adce29 | ||
|
|
96e9e45d0d | ||
|
|
729ea1599e | ||
|
|
0fd79aa4c2 | ||
|
|
fdd6c29744 | ||
|
|
615b8328a4 | ||
|
|
0a9c2ebd50 | ||
|
|
c4e30ad73d | ||
|
|
90e97b05e9 | ||
|
|
a79d89ad33 | ||
|
|
0a7f7e3982 | ||
|
|
020ddf1e94 |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -5,7 +5,6 @@
|
|||||||
.*
|
.*
|
||||||
# but we _wan't_ those dot-files
|
# but we _wan't_ those dot-files
|
||||||
!.gitignore
|
!.gitignore
|
||||||
!.hgignore
|
|
||||||
!.mailmap
|
!.mailmap
|
||||||
|
|
||||||
# ChangeLog is generated during make
|
# ChangeLog is generated during make
|
||||||
|
|||||||
22
AUTHORS
22
AUTHORS
@@ -24,6 +24,16 @@ Contributions
|
|||||||
Justin Azoff <JAzoff [at] edu.albany.uamail>
|
Justin Azoff <JAzoff [at] edu.albany.uamail>
|
||||||
- Added LVM support to xen-create-image.
|
- Added LVM support to xen-create-image.
|
||||||
|
|
||||||
|
Pieter Barrezeele <macbar [at] be.fab4>
|
||||||
|
- Several small but useful enhancements
|
||||||
|
- Bugfixes
|
||||||
|
|
||||||
|
Brian Bennett <bahamat [at] net.digitalelf>
|
||||||
|
- Made multiple times given --ip options work
|
||||||
|
|
||||||
|
Vagrant Cascadian <vagrant [at] org.debian>
|
||||||
|
- Less redundant SSH key generation
|
||||||
|
|
||||||
Edd Dumbill <edd [at] com.usefulinc>
|
Edd Dumbill <edd [at] com.usefulinc>
|
||||||
- Contributed APT sources.list file for Ubuntu's Dapper release.
|
- Contributed APT sources.list file for Ubuntu's Dapper release.
|
||||||
|
|
||||||
@@ -42,6 +52,9 @@ Contributions
|
|||||||
Joey Hess <joeyh [at] org.debian>
|
Joey Hess <joeyh [at] org.debian>
|
||||||
- Provided sample code for module copying and several useful bug reports
|
- Provided sample code for module copying and several useful bug reports
|
||||||
|
|
||||||
|
John Hughes <john [at] com.fallenbit>
|
||||||
|
- Physical devices reordering for pygrub
|
||||||
|
|
||||||
Kirk Ismay <captain [at] com.netidea>
|
Kirk Ismay <captain [at] com.netidea>
|
||||||
- Added hook for automatic CFEngine installation.
|
- Added hook for automatic CFEngine installation.
|
||||||
|
|
||||||
@@ -80,6 +93,10 @@ Contributions
|
|||||||
Felipe Scarel <fbscarel [at] com.gmail>
|
Felipe Scarel <fbscarel [at] com.gmail>
|
||||||
- Bugfix for --no-swap + LVM
|
- Bugfix for --no-swap + LVM
|
||||||
|
|
||||||
|
Johan Schurer <johannes.schurer [at] com.alcatel-lucent>
|
||||||
|
- CentOS 6 support
|
||||||
|
- CentOS 5 fixes
|
||||||
|
|
||||||
Radu Spineanu <radu [at] org.debian>
|
Radu Spineanu <radu [at] org.debian>
|
||||||
- Supplied many small tweaks, bugfixes, and suggestions.
|
- Supplied many small tweaks, bugfixes, and suggestions.
|
||||||
- Radu is also one of the former Debian package maintainers.
|
- Radu is also one of the former Debian package maintainers.
|
||||||
@@ -93,6 +110,11 @@ Contributions
|
|||||||
Gergely Tamas <dice [at] hu.kfki.mfa>
|
Gergely Tamas <dice [at] hu.kfki.mfa>
|
||||||
- Added patch to make initrd setup optional.
|
- Added patch to make initrd setup optional.
|
||||||
|
|
||||||
|
Alex Tomlins <alex.tomlins [at] com.unboxedconsulting>
|
||||||
|
- apt_proxy support
|
||||||
|
|
||||||
Ward Vandewege <ward [at] be.pong>
|
Ward Vandewege <ward [at] be.pong>
|
||||||
- Made several updates for Ubuntu support.
|
- Made several updates for Ubuntu support.
|
||||||
|
|
||||||
|
xstasi on Launchpad
|
||||||
|
- Proper upstart handling in the chroot
|
||||||
|
|||||||
31
KNOWN_BUGS
31
KNOWN_BUGS
@@ -12,4 +12,35 @@ Bugs to fix before a 4.3 release
|
|||||||
|
|
||||||
* xen-delete-image ignores extension setting
|
* xen-delete-image ignores extension setting
|
||||||
|
|
||||||
|
* partitions were mounted in config file order, not in mountpoint order.
|
||||||
|
That implies that if you specified :
|
||||||
|
/boot
|
||||||
|
/
|
||||||
|
in that order, / was mounted _over_ /boot, and you would not _see_ /boot.
|
||||||
|
Xen-Tools would then install boot on your / partition, and your boot device
|
||||||
|
was just empty and unbootable.
|
||||||
|
|
||||||
|
Workaround for 4.2 is to write your partition file such as mounts overlap
|
||||||
|
correctly when mounted in specified order.
|
||||||
|
|
||||||
|
Current (unreleased) fix is to sort by mountpoint length.
|
||||||
|
|
||||||
|
Fix would be to reproduce what mount does with mount -a.
|
||||||
|
|
||||||
* xen-create-image doesn't unmount the tempdir properly if /proc wasn't mounted inside
|
* xen-create-image doesn't unmount the tempdir properly if /proc wasn't mounted inside
|
||||||
|
|
||||||
|
* xen-create-image says on startup summary that the Debian mirror is
|
||||||
|
used even if Ubuntu is going to be installed (and works)
|
||||||
|
|
||||||
|
* xen-list-images does not honour --extension
|
||||||
|
|
||||||
|
* --extension='' (i.e. empty string) no more works
|
||||||
|
|
||||||
|
|
||||||
|
Bugs to fix later
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
t/xen-tools.t can't really test Xen::Tools as the latter requires a
|
||||||
|
local Xen installation. For proper testing, a dummy set of Xen
|
||||||
|
configuration files and configurable paths to them in Xen::Tools would
|
||||||
|
be necessary.
|
||||||
|
|||||||
7
LICENSE
7
LICENSE
@@ -2,7 +2,12 @@
|
|||||||
xen-tools
|
xen-tools
|
||||||
---------
|
---------
|
||||||
|
|
||||||
Copyright (c) 2005-2007 by Steve Kemp. All rights reserved.
|
Copyright (c) 2005-2009: Steve Kemp. All rights reserved.
|
||||||
|
Copyright (c) 2010-2012: 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>
|
||||||
|
|
||||||
|
|
||||||
This project is free software. You may redistribute it under the
|
This project is free software. You may redistribute it under the
|
||||||
terms of *either* the Perl Artistic License, or the GNU General
|
terms of *either* the Perl Artistic License, or the GNU General
|
||||||
|
|||||||
23
Makefile
23
Makefile
@@ -14,12 +14,10 @@
|
|||||||
#
|
#
|
||||||
TMP ?= /tmp
|
TMP ?= /tmp
|
||||||
DIST_PREFIX = ${TMP}
|
DIST_PREFIX = ${TMP}
|
||||||
VERSION = 4.2.1+dev
|
VERSION = 4.3.1
|
||||||
DEBVERSION = $(shell echo $(VERSION)|sed 's/\(rc\|pre\|beta\|alpha\)/~\1/')
|
DEBVERSION = $(shell echo $(VERSION)|sed 's/\(rc\|pre\|beta\|alpha\)/~\1/')
|
||||||
BASE = xen-tools
|
BASE = xen-tools
|
||||||
VCS = $(shell if git ls-files > /dev/null; then echo git; \
|
VCS = git
|
||||||
elif hg st > /dev/null; then echo hg; \
|
|
||||||
else echo cannot-determine-used-vcs; fi)
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Installation prefix, useful for the Debian package.
|
# Installation prefix, useful for the Debian package.
|
||||||
@@ -70,6 +68,7 @@ clean:
|
|||||||
@if [ -d debian/xen-tools ]; then rm -rf ./debian/xen-tools; fi
|
@if [ -d debian/xen-tools ]; then rm -rf ./debian/xen-tools; fi
|
||||||
@if [ -e $(BASE)-$(VERSION).tar.gz ]; then rm $(BASE)-$(VERSION).tar.gz ; fi
|
@if [ -e $(BASE)-$(VERSION).tar.gz ]; then rm $(BASE)-$(VERSION).tar.gz ; fi
|
||||||
@if [ -e $(BASE)-$(VERSION).tar.gz.asc ]; then rm $(BASE)-$(VERSION).tar.gz.asc ; fi
|
@if [ -e $(BASE)-$(VERSION).tar.gz.asc ]; then rm $(BASE)-$(VERSION).tar.gz.asc ; fi
|
||||||
|
cd t; $(MAKE) clean
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -148,9 +147,11 @@ install-hooks:
|
|||||||
for i in ${prefix}/usr/lib/xen-tools/*.d; do if [ -L "$$i" ]; then rm -vf "$$i"; 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-4.d/
|
||||||
mkdir -p ${prefix}/usr/lib/xen-tools/centos-5.d/
|
mkdir -p ${prefix}/usr/lib/xen-tools/centos-5.d/
|
||||||
|
mkdir -p ${prefix}/usr/lib/xen-tools/centos-6.d/
|
||||||
mkdir -p ${prefix}/usr/lib/xen-tools/fedora-core-6.d/
|
mkdir -p ${prefix}/usr/lib/xen-tools/fedora-core-6.d/
|
||||||
cp -R hooks/centos-4/*-* ${prefix}/usr/lib/xen-tools/centos-4.d
|
cp -R hooks/centos-4/*-* ${prefix}/usr/lib/xen-tools/centos-4.d
|
||||||
cp -R hooks/centos-5/*-* ${prefix}/usr/lib/xen-tools/centos-5.d
|
cp -R hooks/centos-5/*-* ${prefix}/usr/lib/xen-tools/centos-5.d
|
||||||
|
cp -R hooks/centos-6/*-* ${prefix}/usr/lib/xen-tools/centos-6.d
|
||||||
cp -R hooks/fedora-core-6/*-* ${prefix}/usr/lib/xen-tools/fedora-core-6.d
|
cp -R hooks/fedora-core-6/*-* ${prefix}/usr/lib/xen-tools/fedora-core-6.d
|
||||||
-cd ${prefix}/usr/lib/xen-tools/ && ln -s fedora-core-6.d fedora-core-4.d
|
-cd ${prefix}/usr/lib/xen-tools/ && ln -s fedora-core-6.d fedora-core-4.d
|
||||||
-cd ${prefix}/usr/lib/xen-tools/ && ln -s fedora-core-6.d fedora-core-5.d
|
-cd ${prefix}/usr/lib/xen-tools/ && ln -s fedora-core-6.d fedora-core-5.d
|
||||||
@@ -161,6 +162,10 @@ install-hooks:
|
|||||||
-cd ${prefix}/usr/lib/xen-tools/ && ln -s fedora-core-6.d fedora-core-11.d
|
-cd ${prefix}/usr/lib/xen-tools/ && ln -s fedora-core-6.d fedora-core-11.d
|
||||||
-cd ${prefix}/usr/lib/xen-tools/ && ln -s fedora-core-6.d fedora-core-12.d
|
-cd ${prefix}/usr/lib/xen-tools/ && ln -s fedora-core-6.d fedora-core-12.d
|
||||||
-cd ${prefix}/usr/lib/xen-tools/ && ln -s fedora-core-6.d fedora-core-13.d
|
-cd ${prefix}/usr/lib/xen-tools/ && ln -s fedora-core-6.d fedora-core-13.d
|
||||||
|
-cd ${prefix}/usr/lib/xen-tools/ && ln -s fedora-core-6.d fedora-core-14.d
|
||||||
|
-cd ${prefix}/usr/lib/xen-tools/ && ln -s fedora-core-6.d fedora-core-15.d
|
||||||
|
-cd ${prefix}/usr/lib/xen-tools/ && ln -s fedora-core-6.d fedora-core-16.d
|
||||||
|
-cd ${prefix}/usr/lib/xen-tools/ && ln -s fedora-core-6.d fedora-core-17.d
|
||||||
mkdir -p ${prefix}/usr/lib/xen-tools/debian.d/
|
mkdir -p ${prefix}/usr/lib/xen-tools/debian.d/
|
||||||
cp -R hooks/debian/*-* ${prefix}/usr/lib/xen-tools/debian.d
|
cp -R hooks/debian/*-* ${prefix}/usr/lib/xen-tools/debian.d
|
||||||
-cd ${prefix}/usr/lib/xen-tools/ && ln -s debian.d sarge.d
|
-cd ${prefix}/usr/lib/xen-tools/ && ln -s debian.d sarge.d
|
||||||
@@ -192,6 +197,7 @@ install-hooks:
|
|||||||
-cd ${prefix}/usr/lib/xen-tools/ && ln -s karmic.d precise.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
|
-cd ${prefix}/usr/lib/xen-tools/ && ln -s karmic.d quantal.d
|
||||||
cp hooks/common.sh ${prefix}/usr/lib/xen-tools
|
cp hooks/common.sh ${prefix}/usr/lib/xen-tools
|
||||||
|
cp -r hooks/common ${prefix}/usr/lib/xen-tools
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -233,20 +239,19 @@ release: tidy fixup-perms update-version update-modules clean changelog
|
|||||||
rm -f $(DIST_PREFIX)/$(BASE)-$(VERSION).tar.gz
|
rm -f $(DIST_PREFIX)/$(BASE)-$(VERSION).tar.gz
|
||||||
cp -R . $(DIST_PREFIX)/$(BASE)-$(VERSION)
|
cp -R . $(DIST_PREFIX)/$(BASE)-$(VERSION)
|
||||||
rm -rf $(DIST_PREFIX)/$(BASE)-$(VERSION)/debian
|
rm -rf $(DIST_PREFIX)/$(BASE)-$(VERSION)/debian
|
||||||
rm -rf $(DIST_PREFIX)/$(BASE)-$(VERSION)/.hg*
|
|
||||||
rm -rf $(DIST_PREFIX)/$(BASE)-$(VERSION)/.git*
|
rm -rf $(DIST_PREFIX)/$(BASE)-$(VERSION)/.git*
|
||||||
cd $(DIST_PREFIX) && tar -cvf $(DIST_PREFIX)/$(BASE)-$(VERSION).tar $(BASE)-$(VERSION)/
|
cd $(DIST_PREFIX) && tar -cvf $(DIST_PREFIX)/$(BASE)-$(VERSION).tar $(BASE)-$(VERSION)/
|
||||||
gzip $(DIST_PREFIX)/$(BASE)-$(VERSION).tar
|
gzip $(DIST_PREFIX)/$(BASE)-$(VERSION).tar
|
||||||
mv $(DIST_PREFIX)/$(BASE)-$(VERSION).tar.gz .
|
mv $(DIST_PREFIX)/$(BASE)-$(VERSION).tar.gz ..
|
||||||
rm -rf $(DIST_PREFIX)/$(BASE)-$(VERSION)
|
rm -rf $(DIST_PREFIX)/$(BASE)-$(VERSION)
|
||||||
gpg --armour --detach-sign $(BASE)-$(VERSION).tar.gz
|
gpg --armour --detach-sign ../$(BASE)-$(VERSION).tar.gz
|
||||||
|
|
||||||
#
|
#
|
||||||
# Make a new orig.tar.gz for the Debian package
|
# Make a new orig.tar.gz for the Debian package
|
||||||
#
|
#
|
||||||
orig-tar-gz: release
|
orig-tar-gz: release
|
||||||
mv $(BASE)-$(VERSION).tar.gz ../$(BASE)_$(DEBVERSION).orig.tar.gz
|
cp -p ../$(BASE)-$(VERSION).tar.gz ../$(BASE)_$(DEBVERSION).orig.tar.gz
|
||||||
mv $(BASE)-$(VERSION).tar.gz.asc ../$(BASE)_$(DEBVERSION).orig.tar.gz.asc
|
cp -p ../$(BASE)-$(VERSION).tar.gz.asc ../$(BASE)_$(DEBVERSION).orig.tar.gz.asc
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|||||||
69
NEWS
Normal file
69
NEWS
Normal file
@@ -0,0 +1,69 @@
|
|||||||
|
xen-tools 4.3rc2 (released TODO)
|
||||||
|
=======================================
|
||||||
|
|
||||||
|
Bug Fixes
|
||||||
|
---------
|
||||||
|
|
||||||
|
* Fix several testuite failures depending on the build host's
|
||||||
|
installation.
|
||||||
|
|
||||||
|
Other Changes
|
||||||
|
-------------
|
||||||
|
|
||||||
|
* Remove most Mercurial traces
|
||||||
|
|
||||||
|
|
||||||
|
xen-tools 4.3rc1 (released 08 Jun 2012)
|
||||||
|
=======================================
|
||||||
|
|
||||||
|
New Features and Major Changes
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
* Massive code deduplication in hooks directory
|
||||||
|
|
||||||
|
New Options
|
||||||
|
-----------
|
||||||
|
|
||||||
|
--dontformat (xen-create-image)
|
||||||
|
--finalrole (xen-create-image)
|
||||||
|
--apt_proxy (xen-create-image)
|
||||||
|
|
||||||
|
Newly Supported Distribution Releases
|
||||||
|
-------------------------------------
|
||||||
|
|
||||||
|
* Ubuntu 11.10 Oneiric
|
||||||
|
* Ubuntu 12.04 Precise
|
||||||
|
* Ubuntu 12.10 Quantal
|
||||||
|
* CentOS 6
|
||||||
|
|
||||||
|
|
||||||
|
xen-tools 4.2.1 (released 17 Mar 2011)
|
||||||
|
======================================
|
||||||
|
|
||||||
|
Bugfix Release only
|
||||||
|
|
||||||
|
|
||||||
|
xen-tools 4.2 (released 05 Oct 2010)
|
||||||
|
====================================
|
||||||
|
|
||||||
|
First final release of the new Xen-Tools Team.
|
||||||
|
|
||||||
|
Supports Ubuntu up to 11.04 (Natty) and Debian up to 7.0 (Wheezy).
|
||||||
|
|
||||||
|
|
||||||
|
New Options
|
||||||
|
-----------
|
||||||
|
|
||||||
|
--debootstrap-cmd (xen-create-image and xt-install-image)
|
||||||
|
|
||||||
|
New Features and Major Changes
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
* Uses hvc0 and xvda devices by default
|
||||||
|
* Also supports cdebootstrap
|
||||||
|
* Preliminary btrfs support.
|
||||||
|
* Uses GeoIP for Debian mirrors: Default Debian mirror is now
|
||||||
|
cdn.debian.net, see http://wiki.debian.org/DebianGeoMirror for
|
||||||
|
details.
|
||||||
|
* New helper program xt-guess-suite-and-mirror, used to find the
|
||||||
|
default mirror and suite.
|
||||||
13
README
13
README
@@ -19,20 +19,21 @@ About:
|
|||||||
|
|
||||||
xen-tools currently has scripts to install most releases of Debian
|
xen-tools currently has scripts to install most releases of Debian
|
||||||
(starting with 3.1 "Sarge") and Ubuntu (starting with 6.06 LTS
|
(starting with 3.1 "Sarge") and Ubuntu (starting with 6.06 LTS
|
||||||
"Dapper") and some RPM-based distributions.
|
"Dapper") and some RPM-based distributions. On the Dom0 side all
|
||||||
|
current Xen supporting distributions should work.
|
||||||
|
|
||||||
However, currently only Debian and Ubuntu releases are tested and
|
However, currently only Debian and Ubuntu releases are tested and
|
||||||
known to work, i.e.:
|
known to work, i.e.:
|
||||||
|
|
||||||
Debian:
|
Debian:
|
||||||
* Sarge 3.1 (i386 only)
|
* Sarge 3.1 (i386 and DomU only)
|
||||||
* Etch 4.0
|
* Etch 4.0 (Dom0 no more tested)
|
||||||
* Lenny 5.0
|
* Lenny 5.0
|
||||||
* Squeeze 6.0
|
* Squeeze 6.0
|
||||||
* Wheezy 7.0
|
* Wheezy 7.0
|
||||||
* Sid (works at least at the moment of writing :-)
|
* Sid (works at least at the moment of writing :-)
|
||||||
|
|
||||||
Ubuntu:
|
Ubuntu (only DomUs tested):
|
||||||
* Dapper Drake 6.06
|
* Dapper Drake 6.06
|
||||||
* Edgy Eft 6.10
|
* Edgy Eft 6.10
|
||||||
* Feisty Fawn 7.04
|
* Feisty Fawn 7.04
|
||||||
@@ -48,6 +49,10 @@ About:
|
|||||||
* Precise Pangolin 12.04
|
* Precise Pangolin 12.04
|
||||||
* Quantal Quetzal 12.10 (preliminary support as it's not yet available)
|
* Quantal Quetzal 12.10 (preliminary support as it's not yet available)
|
||||||
|
|
||||||
|
CentOS (only DomUs tested, pygrub support incomplete):
|
||||||
|
* CentOS 5
|
||||||
|
* CentOS 6
|
||||||
|
|
||||||
[1] There is an issue with debootstrap on hardy not installing ksyslogd
|
[1] There is an issue with debootstrap on hardy not installing ksyslogd
|
||||||
This can be fixed by chrooting into the newly installed system
|
This can be fixed by chrooting into the newly installed system
|
||||||
and removing the startup scripts. See:
|
and removing the startup scripts. See:
|
||||||
|
|||||||
81
TODO
81
TODO
@@ -3,6 +3,12 @@ TODO
|
|||||||
|
|
||||||
See KNOWN_BUGS for real bugs.
|
See KNOWN_BUGS for real bugs.
|
||||||
|
|
||||||
|
Bugs to fix and features to add for 4.3
|
||||||
|
---------------------------------------
|
||||||
|
|
||||||
|
Refactor TLS disabling. Seems to be happen twice, once in 20-setup-apt
|
||||||
|
and once in 10-disable-tls.
|
||||||
|
|
||||||
Bugs to fix and features to add for 5.0
|
Bugs to fix and features to add for 5.0
|
||||||
---------------------------------------
|
---------------------------------------
|
||||||
|
|
||||||
@@ -95,20 +101,27 @@ Bugs to fix and features to add for 5.0
|
|||||||
|
|
||||||
* Clean up the hooks directory
|
* Clean up the hooks directory
|
||||||
|
|
||||||
Currently we have one directory for Ubuntu and Fedora named after
|
We still have a link farm for hooks and a meta link farm for distro
|
||||||
the first supported release which is then duplicated for each
|
releases created on "make install". It probably would be better if
|
||||||
subsequent release.
|
we would just have one directory per distro (like with debian) but
|
||||||
|
without the need to created symlinks on "make install"
|
||||||
|
|
||||||
|
Currently CentOS's 25-setup-kernel creates an fstab and
|
||||||
|
90-make-fstab does again. It works, but that cries for debugging
|
||||||
|
hell.
|
||||||
|
|
||||||
|
centos-5/25-setup-kernel centos-6/25-setup-kernel still differ and
|
||||||
|
I'm not sure if that's necessary respectively what's the common
|
||||||
|
denominator.
|
||||||
|
|
||||||
|
80-install-kernel is not yet merged into one hook script.
|
||||||
|
|
||||||
|
Common oneliners for code deduplication in the hooks/ directory:
|
||||||
|
|
||||||
|
$ find -L . -not -xtype l -not -type d -not -path '*/common/*' | sort -t / -k3
|
||||||
|
$ fdupes -r1 . | sort -t / -k3
|
||||||
|
$ find . -type f | sim_text -ipTt 50 | tac | column -t
|
||||||
|
|
||||||
I'm sure this won't scale forever. So to minimise code duplication
|
|
||||||
I'd like to have one common directory per distribution (e.g. called
|
|
||||||
ubuntu-common, fedora-common, debian-common, maybe even deb-common,
|
|
||||||
rpm-common or yum-common for dpkg/apt-, rpm/yum-based
|
|
||||||
distributions, etc.) with generic hooks valid for all or most of
|
|
||||||
the releases of one distribution and then one hook directory per
|
|
||||||
release (e.g. called ubuntu-10.04 or ubuntu-lucid or so) which has
|
|
||||||
symbolic links to everything which can be used unchanged from the
|
|
||||||
common directory and new files for everything which has to be
|
|
||||||
different or only there.
|
|
||||||
|
|
||||||
* Create users, add ssh pubkeys to .ssh/authorized_keys
|
* Create users, add ssh pubkeys to .ssh/authorized_keys
|
||||||
|
|
||||||
@@ -129,11 +142,6 @@ Bugs to fix and features to add for 5.0
|
|||||||
"type" of configuration you want, and a set of options specific to
|
"type" of configuration you want, and a set of options specific to
|
||||||
that flag could be parsed from xen-tools.conf
|
that flag could be parsed from xen-tools.conf
|
||||||
|
|
||||||
* Refactor the code for less code duplication
|
|
||||||
|
|
||||||
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.
|
* 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
|
E.g. always use either cp() from File::Copy or /bin/cp, but not
|
||||||
@@ -154,6 +162,14 @@ Bugs to fix and features to add for 5.0
|
|||||||
|
|
||||||
... dist-upgrade instead of upgrade
|
... dist-upgrade instead of upgrade
|
||||||
|
|
||||||
|
* Support cpu_weight and other features from
|
||||||
|
http://wiki.xensource.com/xenwiki/CreditScheduler
|
||||||
|
|
||||||
|
* Code Deduplication / Refactor the code for less code duplication
|
||||||
|
|
||||||
|
bin/x* currently contain the same or similar code like e.g. in the
|
||||||
|
function readConfigurationFile. This needs to be cleaned up.
|
||||||
|
|
||||||
* Use Perl::Critic
|
* Use Perl::Critic
|
||||||
|
|
||||||
Stuff from Steve's TODO list / Generic TODOs
|
Stuff from Steve's TODO list / Generic TODOs
|
||||||
@@ -162,3 +178,32 @@ Stuff from Steve's TODO list / Generic TODOs
|
|||||||
* Write more test cases.
|
* Write more test cases.
|
||||||
|
|
||||||
* xen-delete-image should unallocate any used IP addresses.
|
* xen-delete-image should unallocate any used IP addresses.
|
||||||
|
|
||||||
|
Axel's Break-Backwards-Compatibility Wishlist
|
||||||
|
---------------------------------------------
|
||||||
|
|
||||||
|
* Make empty extension the default
|
||||||
|
|
||||||
|
This would ease tab completion and CLI parameter reusage with "xm
|
||||||
|
create" and friends.
|
||||||
|
|
||||||
|
* Check if we can reduce MAKEDEV invocations in hooks/common/55-create-dev
|
||||||
|
|
||||||
|
MAKEDEV std is called in any case. First comment says "Early
|
||||||
|
termination if we have a couple of common devices present should
|
||||||
|
speed up installs which use --copy/--tar" and then "We still need
|
||||||
|
to make sure the basic devices are present" and calls MAKEDEV more
|
||||||
|
often than otherwise.
|
||||||
|
|
||||||
|
Additionally the 55-create-dev for CentOS/Fedora just created
|
||||||
|
console, zero and null. zero and null are part of "MAKEDEV std",
|
||||||
|
perhaps can we reduce it to that. console is part of "MAKEDEV
|
||||||
|
generic".
|
||||||
|
|
||||||
|
Additionally the devices hda, sda and tty1 may not necessary in any
|
||||||
|
case, but instead hvc0 should be created for sure in many
|
||||||
|
cases. Nothing cares about $serial_device there either.
|
||||||
|
|
||||||
|
Current MAKEDEV implementation support more than one device as
|
||||||
|
parameter. That could reduce the MAKEDEV calls from currently six
|
||||||
|
to two.
|
||||||
|
|||||||
@@ -146,6 +146,10 @@ xen-create-image - Easily create new Xen instances with networking and OpenSSH.
|
|||||||
Pass the named string literally to any role script.
|
Pass the named string literally to any role script.
|
||||||
This is useful for site-specific roles.
|
This is useful for site-specific roles.
|
||||||
|
|
||||||
|
--finalrole=role
|
||||||
|
Similar to role scripts. Run the specified role script(s)
|
||||||
|
after cfg file creation.
|
||||||
|
|
||||||
--roledir=/path/to/directory
|
--roledir=/path/to/directory
|
||||||
Specify the directory which contains the role scripts.
|
Specify the directory which contains the role scripts.
|
||||||
This defaults to /etc/xen-tools/role.d/
|
This defaults to /etc/xen-tools/role.d/
|
||||||
@@ -165,6 +169,11 @@ xen-create-image - Easily create new Xen instances with networking and OpenSSH.
|
|||||||
|
|
||||||
--tar-cmd NOP: Ignored.
|
--tar-cmd NOP: Ignored.
|
||||||
|
|
||||||
|
--dontformat Do not format the devices specified for installation.
|
||||||
|
Useful if you want tighter control over the filesystem
|
||||||
|
creation. Requires the filesystems to be created
|
||||||
|
beforehand.
|
||||||
|
|
||||||
--vcpus=num
|
--vcpus=num
|
||||||
Set the number of vcpus that the new instance will have
|
Set the number of vcpus that the new instance will have
|
||||||
instead of the default value of "1".
|
instead of the default value of "1".
|
||||||
@@ -204,6 +213,10 @@ xen-create-image - Easily create new Xen instances with networking and OpenSSH.
|
|||||||
to choose a more or less close Debian mirror. See
|
to choose a more or less close Debian mirror. See
|
||||||
http://wiki.debian.org/DebianGeoMirror for details.
|
http://wiki.debian.org/DebianGeoMirror for details.
|
||||||
|
|
||||||
|
--apt_proxy=url
|
||||||
|
Specify a proxy to be used by debootstrap, and within
|
||||||
|
the guest.
|
||||||
|
|
||||||
--template=tmpl
|
--template=tmpl
|
||||||
Specify which template file to use when creating the
|
Specify which template file to use when creating the
|
||||||
Xen configuration file.
|
Xen configuration file.
|
||||||
@@ -708,6 +721,9 @@ Install an X11 server, using VNC and XDM
|
|||||||
installed system as their first argument, and anything passed
|
installed system as their first argument, and anything passed
|
||||||
as a role-arg will be passed allong as additional arguments.
|
as a role-arg will be passed allong as additional arguments.
|
||||||
|
|
||||||
|
NOTE: Role scripts are invoked before the config file generation.
|
||||||
|
If you need access to the config file from within your role,
|
||||||
|
use --finalrole.
|
||||||
NOTE: Multiple role scripts may be invoked if you separate their
|
NOTE: Multiple role scripts may be invoked if you separate their
|
||||||
names with commas.
|
names with commas.
|
||||||
|
|
||||||
@@ -745,7 +761,7 @@ Install an X11 server, using VNC and XDM
|
|||||||
|
|
||||||
=head1 LICENSE
|
=head1 LICENSE
|
||||||
|
|
||||||
Copyright (c) 2005-2009 by Steve Kemp, (c) 2010 by The Xen-Tools
|
Copyright (c) 2005-2009 by Steve Kemp, (c) 2010-2012 by The Xen-Tools
|
||||||
Development Team. All rights reserved.
|
Development Team. All rights reserved.
|
||||||
|
|
||||||
This module is free software;
|
This module is free software;
|
||||||
@@ -806,7 +822,7 @@ my $FAIL = 0;
|
|||||||
#
|
#
|
||||||
# Release number.
|
# Release number.
|
||||||
#
|
#
|
||||||
my $RELEASE = '4.2.1+dev';
|
my $RELEASE = '4.3.1';
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -1053,6 +1069,12 @@ runRoleScripts( $CONFIG{ 'role' } );
|
|||||||
runXenConfigCreation();
|
runXenConfigCreation();
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Run any specified role scripts.
|
||||||
|
#
|
||||||
|
runRoleScripts( $CONFIG{ 'finalrole' } );
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Setup the password if the user wanted that.
|
# Setup the password if the user wanted that.
|
||||||
#
|
#
|
||||||
@@ -1358,12 +1380,13 @@ sub setupDefaultOptions
|
|||||||
$CONFIG{ 'mirror_'.$debdist } = 'http://archive.debian.org/debian';
|
$CONFIG{ 'mirror_'.$debdist } = 'http://archive.debian.org/debian';
|
||||||
}
|
}
|
||||||
# Initialize per distribution mirror defaults: Ubuntu
|
# Initialize per distribution mirror defaults: Ubuntu
|
||||||
foreach my $ubuntudist (qw(dapper hardy lucid natty oneiric precise quantal)) {
|
foreach my $ubuntudist (qw(hardy lucid natty oneiric precise quantal)) {
|
||||||
$CONFIG{ 'mirror_'.$ubuntudist } = 'http://archive.ubuntu.com/ubuntu';
|
$CONFIG{ 'mirror_'.$ubuntudist } = 'http://archive.ubuntu.com/ubuntu';
|
||||||
}
|
}
|
||||||
foreach my $ubuntudist (qw(edgy feisty gutsy intrepid jaunty karmic maverick)) {
|
foreach my $ubuntudist (qw(dapper edgy feisty gutsy intrepid jaunty karmic maverick)) {
|
||||||
$CONFIG{ 'mirror_'.$ubuntudist } = 'http://old-releases.ubuntu.com/ubuntu';
|
$CONFIG{ 'mirror_'.$ubuntudist } = 'http://old-releases.ubuntu.com/ubuntu';
|
||||||
}
|
}
|
||||||
|
$CONFIG{ 'apt_proxy' } = '';
|
||||||
$CONFIG{ 'arch' } = '';
|
$CONFIG{ 'arch' } = '';
|
||||||
$CONFIG{ 'fs' } = 'ext3';
|
$CONFIG{ 'fs' } = 'ext3';
|
||||||
$CONFIG{ 'force' } = 0;
|
$CONFIG{ 'force' } = 0;
|
||||||
@@ -1710,6 +1733,7 @@ sub parseCommandLineArguments
|
|||||||
"kernel=s", \&checkOption,
|
"kernel=s", \&checkOption,
|
||||||
"initrd=s", \&checkOption,
|
"initrd=s", \&checkOption,
|
||||||
"mirror=s", \&checkOption,
|
"mirror=s", \&checkOption,
|
||||||
|
"apt_proxy=s", \&checkOption,
|
||||||
"modules=s", \&checkOption,
|
"modules=s", \&checkOption,
|
||||||
"lvm=s", \$install{ 'lvm' },
|
"lvm=s", \$install{ 'lvm' },
|
||||||
"image-dev=s", \$install{ 'image-dev' },
|
"image-dev=s", \$install{ 'image-dev' },
|
||||||
@@ -1768,12 +1792,14 @@ sub parseCommandLineArguments
|
|||||||
"partitions=s", \&checkOption,
|
"partitions=s", \&checkOption,
|
||||||
"role=s", \&checkOption,
|
"role=s", \&checkOption,
|
||||||
"role-args=s", \&checkOption,
|
"role-args=s", \&checkOption,
|
||||||
|
"finalrole=s", \&checkOption,
|
||||||
"roledir=s", \&checkOption,
|
"roledir=s", \&checkOption,
|
||||||
"force", \$CONFIG{ 'force' },
|
"force", \$CONFIG{ 'force' },
|
||||||
"keep", \$CONFIG{ 'keep' },
|
"keep", \$CONFIG{ 'keep' },
|
||||||
"template=s", \&checkOption,
|
"template=s", \&checkOption,
|
||||||
"output=s", \&checkOption,
|
"output=s", \&checkOption,
|
||||||
"extension=s", \&checkOption,
|
"extension=s", \&checkOption,
|
||||||
|
"dontformat", \&checkOption,
|
||||||
|
|
||||||
# Help options
|
# Help options
|
||||||
"debug", \$CONFIG{ 'debug' },
|
"debug", \$CONFIG{ 'debug' },
|
||||||
@@ -2414,7 +2440,7 @@ sub checkBinariesPresent
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
elsif (defined( $CONFIG{ 'lvm' } ) )
|
||||||
{
|
{
|
||||||
|
|
||||||
# LVM-specific binaries.
|
# LVM-specific binaries.
|
||||||
@@ -3389,37 +3415,28 @@ sub createFilesystem
|
|||||||
# Split the command into "binary" + "args". Make sure that
|
# Split the command into "binary" + "args". Make sure that
|
||||||
# the binary exists and is executable.
|
# the binary exists and is executable.
|
||||||
#
|
#
|
||||||
if ( $command =~ /([^ ]+) (.*)$/ )
|
my ($binary, $args) = split(/ /, $command, 2);
|
||||||
{
|
|
||||||
my $binary = $1;
|
|
||||||
my $args = $2;
|
|
||||||
|
|
||||||
if ( !defined( findBinary($binary) ) )
|
if ( !defined( findBinary($binary) ) )
|
||||||
{
|
|
||||||
logprint(
|
|
||||||
"The binary '$binary' required to create the filesystem $fs is missing\n"
|
|
||||||
);
|
|
||||||
$FAIL = 1;
|
|
||||||
exit 127;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
logprint(
|
logprint(
|
||||||
"The filesystem creation hash is bogus for filesystem : $fs\n");
|
"The binary '$binary' required to create the filesystem $fs is missing\n"
|
||||||
|
);
|
||||||
$FAIL = 1;
|
$FAIL = 1;
|
||||||
exit 127;
|
exit 127;
|
||||||
}
|
}
|
||||||
|
|
||||||
#
|
unless ( $CONFIG{ 'dontformat' } ) {
|
||||||
# OK we have the command and the filesystem. Create it.
|
#
|
||||||
#
|
# OK we have the command and the filesystem. Create it.
|
||||||
logprint("\nCreating $fs filesystem on $image\n");
|
#
|
||||||
|
logprint("\nCreating $fs filesystem on $image\n");
|
||||||
|
|
||||||
$command .= " " . $image;
|
$command .= " " . $image;
|
||||||
|
|
||||||
runCommand($command);
|
runCommand($command);
|
||||||
logprint("Done\n");
|
logprint("Done\n");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -3461,7 +3478,7 @@ sub mountImage
|
|||||||
#
|
#
|
||||||
$MOUNT_POINT = tempdir( CLEANUP => 1 );
|
$MOUNT_POINT = tempdir( CLEANUP => 1 );
|
||||||
|
|
||||||
foreach my $partition (@PARTITIONS)
|
foreach my $partition (sort { length($a->{'mountpoint'}) <=> length($b->{'mountpoint'}) } @PARTITIONS)
|
||||||
{
|
{
|
||||||
if ( $partition->{ 'type' } ne 'swap' )
|
if ( $partition->{ 'type' } ne 'swap' )
|
||||||
{
|
{
|
||||||
@@ -3576,6 +3593,15 @@ sub installSystem
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Propagate --apt_proxy
|
||||||
|
#
|
||||||
|
if ( $CONFIG{ 'apt_proxy' } )
|
||||||
|
{
|
||||||
|
$cmd .= " --apt_proxy=$CONFIG{'apt_proxy'}";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Show the user what they are installing
|
# Show the user what they are installing
|
||||||
#
|
#
|
||||||
|
|||||||
@@ -131,7 +131,7 @@ $CONFIG{ 'template' } = '/etc/xen-tools/xm-nfs.tmpl';
|
|||||||
#
|
#
|
||||||
# Release number.
|
# Release number.
|
||||||
#
|
#
|
||||||
my $RELEASE = '4.2.1+dev';
|
my $RELEASE = '4.3.1';
|
||||||
|
|
||||||
|
|
||||||
# store version number away.
|
# store version number away.
|
||||||
|
|||||||
@@ -171,7 +171,7 @@ my %CONFIG;
|
|||||||
#
|
#
|
||||||
# Release number.
|
# Release number.
|
||||||
#
|
#
|
||||||
my $RELEASE = '4.2.1+dev';
|
my $RELEASE = '4.3.1';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -101,7 +101,7 @@ $CONFIG{ 'prefix' } = "/etc/xen";
|
|||||||
#
|
#
|
||||||
# Release number.
|
# Release number.
|
||||||
#
|
#
|
||||||
my $RELEASE = '4.2.1+dev';
|
my $RELEASE = '4.3.1';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -116,7 +116,7 @@ my %CONFIG;
|
|||||||
#
|
#
|
||||||
# Release number.
|
# Release number.
|
||||||
#
|
#
|
||||||
my $RELEASE = '4.2.1+dev';
|
my $RELEASE = '4.3.1';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -120,7 +120,7 @@ my %CONFIG;
|
|||||||
#
|
#
|
||||||
# Release number.
|
# Release number.
|
||||||
#
|
#
|
||||||
my $RELEASE = '4.2.1+dev';
|
my $RELEASE = '4.3.1';
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|||||||
@@ -114,7 +114,7 @@ xt-create-config - Create a Xen configuration file for a new guest
|
|||||||
|
|
||||||
=head1 LICENSE
|
=head1 LICENSE
|
||||||
|
|
||||||
Copyright (c) 2005-2009 by Steve Kemp, (c) 2010 by The Xen-Tools
|
Copyright (c) 2005-2009 by Steve Kemp, (c) 2010-2012 by The Xen-Tools
|
||||||
Development Team. All rights reserved.
|
Development Team. All rights reserved.
|
||||||
|
|
||||||
This module is free software;
|
This module is free software;
|
||||||
@@ -156,7 +156,7 @@ $CONFIG{ 'extension' } = '.cfg';
|
|||||||
#
|
#
|
||||||
# Release number.
|
# Release number.
|
||||||
#
|
#
|
||||||
my $RELEASE = '4.2.1+dev';
|
my $RELEASE = '4.3.1';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -98,7 +98,7 @@ my %CONFIG;
|
|||||||
#
|
#
|
||||||
# Release number.
|
# Release number.
|
||||||
#
|
#
|
||||||
my $RELEASE = '4.2.1+dev';
|
my $RELEASE = '4.3.1';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ xen-create-image(1) or the backticks feature in xen-tools.conf.
|
|||||||
|
|
||||||
=head1 LICENSE
|
=head1 LICENSE
|
||||||
|
|
||||||
Copyright (C) 2010 by The Xen-Tools Development Team. All rights
|
Copyright (C) 2010-2012 by The Xen-Tools Development Team. All rights
|
||||||
reserved.
|
reserved.
|
||||||
|
|
||||||
This module is free software; you can redistribute it and/or modify it
|
This module is free software; you can redistribute it and/or modify it
|
||||||
@@ -81,7 +81,7 @@ use strict;
|
|||||||
#
|
#
|
||||||
# Release number.
|
# Release number.
|
||||||
#
|
#
|
||||||
my $RELEASE = '4.2.1+dev';
|
my $RELEASE = '4.3.1';
|
||||||
|
|
||||||
# Init
|
# Init
|
||||||
my $mirror = '';
|
my $mirror = '';
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ xt-install-image - Install a fresh copy of GNU/Linux into a directory
|
|||||||
--config Read the specified config file in addition to the global
|
--config Read the specified config file in addition to the global
|
||||||
configuration file.
|
configuration file.
|
||||||
--mirror The mirror to use when installing with 'debootstrap'.
|
--mirror The mirror to use when installing with 'debootstrap'.
|
||||||
|
--apt_proxy The proxy to use when installing with 'debootstrap'.
|
||||||
|
|
||||||
Installation Options:
|
Installation Options:
|
||||||
--install-method Specify the installation method to use.
|
--install-method Specify the installation method to use.
|
||||||
@@ -117,7 +118,7 @@ my %CONFIG;
|
|||||||
#
|
#
|
||||||
# Release number.
|
# Release number.
|
||||||
#
|
#
|
||||||
my $RELEASE = '4.2.1+dev';
|
my $RELEASE = '4.3.1';
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -395,6 +396,7 @@ sub parseCommandLineArguments
|
|||||||
"cachedir=s", \$CONFIG{ 'cachedir' },
|
"cachedir=s", \$CONFIG{ 'cachedir' },
|
||||||
"config=s", \$CONFIG{ 'config' },
|
"config=s", \$CONFIG{ 'config' },
|
||||||
"mirror=s", \$CONFIG{ 'mirror' },
|
"mirror=s", \$CONFIG{ 'mirror' },
|
||||||
|
"apt_proxy=s", \$CONFIG{ 'apt_proxy' },
|
||||||
|
|
||||||
# Help.
|
# Help.
|
||||||
"verbose", \$CONFIG{ 'verbose' },
|
"verbose", \$CONFIG{ 'verbose' },
|
||||||
@@ -757,6 +759,14 @@ sub do_debootstrap
|
|||||||
$EXTRA .= " --arch $CONFIG{'arch'}";
|
$EXTRA .= " --arch $CONFIG{'arch'}";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Setup http_proxy so that debootstrap pulls files through the apt-proxy
|
||||||
|
#
|
||||||
|
if ( $CONFIG{ 'apt_proxy' } )
|
||||||
|
{
|
||||||
|
print("Using apt_proxy: $CONFIG{'apt_proxy'}\n");
|
||||||
|
$ENV{'http_proxy'} = $CONFIG{'apt_proxy'};
|
||||||
|
}
|
||||||
|
|
||||||
#
|
#
|
||||||
# This is the command we'll run
|
# This is the command we'll run
|
||||||
@@ -811,7 +821,24 @@ sub do_rinse
|
|||||||
{
|
{
|
||||||
$command .= " --arch $CONFIG{'arch'}";
|
$command .= " --arch $CONFIG{'arch'}";
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
my $uname_machine = `uname -m`;
|
||||||
|
chomp($uname_machine);
|
||||||
|
|
||||||
|
if ($uname_machine eq 'x86_64')
|
||||||
|
{
|
||||||
|
$command .= " --arch amd64";
|
||||||
|
}
|
||||||
|
elsif ($uname_machine =~ /^i[3-6]86$/) {
|
||||||
|
$command .= " --arch i386";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
die "Local architecture ($uname_machine) not supported by rinse.\n".
|
||||||
|
"Please choose a supported installation architecture (i386 or amd64) explicitly."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#
|
#
|
||||||
# Propogate the verbosity setting.
|
# Propogate the verbosity setting.
|
||||||
|
|||||||
58
debian/changelog
vendored
58
debian/changelog
vendored
@@ -1,10 +1,42 @@
|
|||||||
xen-tools (4.2.1+dev-1) UNRELEASED; urgency=low
|
xen-tools (4.3.1-1) unstable; urgency=low
|
||||||
|
|
||||||
* New upstream snapshot
|
* Remove t/modules.t in upstream's t/Makefile instead of debian/rules'
|
||||||
|
clean target.
|
||||||
|
* Run t/hook-tls.t only if distribution actually has
|
||||||
|
10-disable-tls. Fixes test suite failure on 32 bit architectures.
|
||||||
|
|
||||||
|
-- Axel Beckert <abe@debian.org> Sat, 30 Jun 2012 16:44:50 +0200
|
||||||
|
|
||||||
|
xen-tools (4.3-1) unstable; urgency=low
|
||||||
|
|
||||||
|
* New upstream release
|
||||||
|
- Remove most Mercurial traces
|
||||||
|
* Fixes FTBFS due to testsuite failures (Closes: #676681)
|
||||||
|
- Disable tests of not yet used Xen::Tools. Fixes FTBFS in test suite
|
||||||
|
due to not satisifed Moose dependency in Xen::Tools::Log.
|
||||||
|
- Added build-dependencies on libmoose-perl, git, and
|
||||||
|
libtest-pod-coverage-perl for t/perl-syntax.t, t/gitignore.t, and
|
||||||
|
t/pod-coverage.t.
|
||||||
|
- Skip t/hook-inittab.t if /etc/inittab is not present on the build
|
||||||
|
host. Fixes FTBFS on Ubuntu.
|
||||||
|
* Switch to source format to "3.0 (quilt)"
|
||||||
|
* Don't remove stamp files manually, dh_clean does that already
|
||||||
|
* Remove generated file t/modules.t in clean target to be able to build
|
||||||
|
twice in a row.
|
||||||
|
|
||||||
|
-- Axel Beckert <abe@debian.org> Tue, 26 Jun 2012 22:23:59 +0200
|
||||||
|
|
||||||
|
xen-tools (4.3~rc1-1) unstable; urgency=low
|
||||||
|
|
||||||
|
* New upstream release candidate
|
||||||
- Correctly checks and documents valid values for
|
- Correctly checks and documents valid values for
|
||||||
disk_device. (Closes: #621499)
|
disk_device. (Closes: #621499)
|
||||||
- Supports creating Ubuntu 11.10 Oneiric DomUs (LP: #848654)
|
- Supports creating Ubuntu 11.10 Oneiric DomUs (LP: #848654)
|
||||||
- Supports creating Ubuntu 12.04 Precise and 12.10 Quantal DomUs
|
- Supports creating Ubuntu 12.04 Precise and 12.10 Quantal DomUs
|
||||||
|
- Supports creating CentOS 6 DomUs (Closes: #578399; Thanks Johan
|
||||||
|
Schurer)
|
||||||
|
+ Recommend rinse >= 1.9.1-1
|
||||||
|
- Supports rinse 2.0
|
||||||
- Updated mirror list for discontinued releases of Debian and Ubuntu
|
- Updated mirror list for discontinued releases of Debian and Ubuntu
|
||||||
- Workaround for missing unit parsing in xen-create-nfs (Closes:
|
- Workaround for missing unit parsing in xen-create-nfs (Closes:
|
||||||
#648814)
|
#648814)
|
||||||
@@ -17,15 +49,35 @@ xen-tools (4.2.1+dev-1) UNRELEASED; urgency=low
|
|||||||
/etc/apt/sources.list.d/*.list (Thanks Phil Frost!)
|
/etc/apt/sources.list.d/*.list (Thanks Phil Frost!)
|
||||||
- Only attempts to generate the ssh host keys if not already present
|
- Only attempts to generate the ssh host keys if not already present
|
||||||
(Closes: #607236; Thanks Vagrant Cascadian!)
|
(Closes: #607236; Thanks Vagrant Cascadian!)
|
||||||
|
- New option --apt_proxy (Closes: #610457; Thanks Alex Tomlins!)
|
||||||
|
- Always write down root partition as first physical device, otherwise
|
||||||
|
pygrub fails (Closes: #609673)
|
||||||
|
- No more expect at least one option to mkfs.* calls. Fixes btrfs
|
||||||
|
creation. (Closes: #609982)
|
||||||
|
- Fixes call to non-existent function logPrint (Closes: #673335)
|
||||||
|
- Also disable initctl in the chroot, not only start-stop-daemon
|
||||||
|
(LP: #997063; Thanks xstasi!)
|
||||||
|
- Massive code deduplication in hooks directory
|
||||||
|
- Use release blacklist for libc6-xen instead of whitelist in
|
||||||
|
hooks/debian.d/20-setup-apt
|
||||||
|
- Enforces umask 022 in 50-setup-hostname* (Hopefully closes: #619630)
|
||||||
* Add dependency on openssh-client for ssh-keygen (Closes: #649108)
|
* Add dependency on openssh-client for ssh-keygen (Closes: #649108)
|
||||||
|
* Use dh_auto_test for build time tests and add according
|
||||||
|
build-dependencies on devscripts and libfile-slurp-perl.
|
||||||
* No more suggest evms-cli -- it's no more available on any supported
|
* No more suggest evms-cli -- it's no more available on any supported
|
||||||
Dom0 distribution. Thanks to Markus Waldeck for the hint.
|
Dom0 distribution. Thanks to Markus Waldeck for the hint.
|
||||||
|
* Add NEWS to debian/docs.
|
||||||
* Bump Standards-Version to 3.9.3 (no changes)
|
* Bump Standards-Version to 3.9.3 (no changes)
|
||||||
* Fix the following Lintian warnings:
|
* Fix the following Lintian warnings:
|
||||||
- copyright-refers-to-symlink-license
|
- copyright-refers-to-symlink-license
|
||||||
- debian-rules-missing-recommended-target
|
- debian-rules-missing-recommended-target
|
||||||
|
* debian/copyright: Update copyright years
|
||||||
|
* Move xen-utils (for pygrub) from Suggests to Recommends as pygrub
|
||||||
|
becomes the necessary way to boot more and more often.
|
||||||
|
* Remove xen-shell from Recommends, nobody picked it up. (Closes:
|
||||||
|
#603708)
|
||||||
|
|
||||||
-- Axel Beckert <abe@debian.org> Mon, 07 May 2012 21:21:33 +0200
|
-- Axel Beckert <abe@debian.org> Fri, 08 Jun 2012 14:18:38 +0200
|
||||||
|
|
||||||
xen-tools (4.2.1-1) unstable; urgency=low
|
xen-tools (4.2.1-1) unstable; urgency=low
|
||||||
|
|
||||||
|
|||||||
8
debian/control
vendored
8
debian/control
vendored
@@ -2,7 +2,7 @@ Source: xen-tools
|
|||||||
Section: utils
|
Section: utils
|
||||||
Priority: extra
|
Priority: extra
|
||||||
Maintainer: Axel Beckert <abe@debian.org>
|
Maintainer: Axel Beckert <abe@debian.org>
|
||||||
Build-Depends: debhelper (>= 7.0.0), libtest-pod-perl, libtext-template-perl
|
Build-Depends: debhelper (>= 7.0.0), libtest-pod-perl, libtext-template-perl, libfile-slurp-perl, devscripts, libmoose-perl, libtest-pod-coverage-perl, git
|
||||||
Standards-Version: 3.9.3
|
Standards-Version: 3.9.3
|
||||||
Homepage: http://xen-tools.org/software/xen-tools
|
Homepage: http://xen-tools.org/software/xen-tools
|
||||||
Vcs-Browser: http://gitorious.org/xen-tools/xen-tools
|
Vcs-Browser: http://gitorious.org/xen-tools/xen-tools
|
||||||
@@ -11,8 +11,8 @@ Vcs-Git: git://gitorious.org/xen-tools/xen-tools.git
|
|||||||
Package: xen-tools
|
Package: xen-tools
|
||||||
Architecture: all
|
Architecture: all
|
||||||
Depends: debootstrap | cdebootstrap, perl-modules, libtext-template-perl, libconfig-inifiles-perl, libfile-slurp-perl, ${misc:Depends}, openssh-client
|
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
|
Recommends: xen-hypervisor-amd64 | xen-hypervisor-i386 | xen-hypervisor-i386-pae, rinse (>= 1.9.1-1), libexpect-perl, xen-utils
|
||||||
Suggests: reiserfsprogs, xfsprogs, xen-utils, cfengine2, btrfs-tools
|
Suggests: reiserfsprogs, xfsprogs, cfengine2, btrfs-tools
|
||||||
Description: Tools to manage Xen virtual servers
|
Description: Tools to manage Xen virtual servers
|
||||||
This package contains tools to manage Debian based Xen virtual servers.
|
This package contains tools to manage Debian based Xen virtual servers.
|
||||||
.
|
.
|
||||||
@@ -40,3 +40,5 @@ Description: Tools to manage Xen virtual servers
|
|||||||
* Ubuntu 11.04 Natty Narwhal
|
* Ubuntu 11.04 Natty Narwhal
|
||||||
* Ubuntu 11.10 Oneiric Ocelot
|
* Ubuntu 11.10 Oneiric Ocelot
|
||||||
* Ubuntu 12.04 Precise Pangolin (LTS)
|
* Ubuntu 12.04 Precise Pangolin (LTS)
|
||||||
|
* CentOS 5
|
||||||
|
* CentOS 6
|
||||||
|
|||||||
8
debian/copyright
vendored
8
debian/copyright
vendored
@@ -4,10 +4,10 @@ Tue, 20 Dec 2005 02:21:05 +0200.
|
|||||||
It was downloaded from http://xen-tools.org/software/xen-tools/
|
It was downloaded from http://xen-tools.org/software/xen-tools/
|
||||||
|
|
||||||
Copyright 2005-2009: Steve Kemp <steve@steve.org.uk>
|
Copyright 2005-2009: Steve Kemp <steve@steve.org.uk>
|
||||||
Copyright 2010: The Xen-Tools Development Team, currently consisting of:
|
Copyright 2010-2012: The Xen-Tools Development Team, currently consisting of:
|
||||||
Axel Beckert <abe@deuxchevaux.org>,
|
Axel Beckert <abe@deuxchevaux.org>,
|
||||||
Dmitry Nedospasov <dmitry@nedos.net>, and
|
Dmitry Nedospasov <dmitry@nedos.net>, and
|
||||||
Stéphane Jourdois <sjourdois@gmail.com>
|
Stéphane Jourdois <sjourdois@gmail.com>
|
||||||
|
|
||||||
License:
|
License:
|
||||||
|
|
||||||
|
|||||||
1
debian/docs
vendored
1
debian/docs
vendored
@@ -4,3 +4,4 @@ SUPPORT
|
|||||||
BUGS
|
BUGS
|
||||||
TODO
|
TODO
|
||||||
KNOWN_BUGS
|
KNOWN_BUGS
|
||||||
|
NEWS
|
||||||
|
|||||||
2
debian/rules
vendored
2
debian/rules
vendored
@@ -20,7 +20,6 @@ clean:
|
|||||||
dh_testdir
|
dh_testdir
|
||||||
dh_testroot
|
dh_testroot
|
||||||
make clean
|
make clean
|
||||||
rm -f build-stamp configure-stamp
|
|
||||||
dh_clean
|
dh_clean
|
||||||
|
|
||||||
install: build
|
install: build
|
||||||
@@ -28,6 +27,7 @@ install: build
|
|||||||
dh_testroot
|
dh_testroot
|
||||||
dh_prep
|
dh_prep
|
||||||
|
|
||||||
|
dh_auto_test
|
||||||
make manpages
|
make manpages
|
||||||
make install prefix=`pwd`/debian/xen-tools
|
make install prefix=`pwd`/debian/xen-tools
|
||||||
|
|
||||||
|
|||||||
2
debian/source/format
vendored
2
debian/source/format
vendored
@@ -1 +1 @@
|
|||||||
1.0
|
3.0 (quilt)
|
||||||
|
|||||||
@@ -267,7 +267,7 @@ mirror = `xt-guess-suite-and-mirror --mirror`
|
|||||||
# mirror_squeeze = http://cdn.debian.net/debian
|
# mirror_squeeze = http://cdn.debian.net/debian
|
||||||
# mirror_wheezy = http://cdn.debian.net/debian
|
# mirror_wheezy = http://cdn.debian.net/debian
|
||||||
# mirror_sid = http://cdn.debian.net/debian
|
# mirror_sid = http://cdn.debian.net/debian
|
||||||
# mirror_dapper = http://archive.ubuntu.com/ubuntu
|
# mirror_dapper = http://old-releases.ubuntu.com/ubuntu
|
||||||
# mirror_edgy = http://old-releases.ubuntu.com/ubuntu
|
# mirror_edgy = http://old-releases.ubuntu.com/ubuntu
|
||||||
# mirror_feisty = http://old-releases.ubuntu.com/ubuntu
|
# mirror_feisty = http://old-releases.ubuntu.com/ubuntu
|
||||||
# mirror_gutsy = http://old-releases.ubuntu.com/ubuntu
|
# mirror_gutsy = http://old-releases.ubuntu.com/ubuntu
|
||||||
@@ -276,12 +276,16 @@ mirror = `xt-guess-suite-and-mirror --mirror`
|
|||||||
# mirror_jaunty = http://old-releases.ubuntu.com/ubuntu
|
# mirror_jaunty = http://old-releases.ubuntu.com/ubuntu
|
||||||
# mirror_karmic = http://old-releases.ubuntu.com/ubuntu
|
# mirror_karmic = http://old-releases.ubuntu.com/ubuntu
|
||||||
# mirror_lucid = http://archive.ubuntu.com/ubuntu
|
# mirror_lucid = http://archive.ubuntu.com/ubuntu
|
||||||
# mirror_maverick = http://archive.ubuntu.com/ubuntu
|
# mirror_maverick = http://old-releases.ubuntu.com/ubuntu
|
||||||
# mirror_natty = http://archive.ubuntu.com/ubuntu
|
# mirror_natty = http://archive.ubuntu.com/ubuntu
|
||||||
# mirror_oneiric = http://archive.ubuntu.com/ubuntu
|
# mirror_oneiric = http://archive.ubuntu.com/ubuntu
|
||||||
# mirror_precise = http://archive.ubuntu.com/ubuntu
|
# mirror_precise = http://archive.ubuntu.com/ubuntu
|
||||||
# mirror_quantal = http://archive.ubuntu.com/ubuntu
|
# mirror_quantal = http://archive.ubuntu.com/ubuntu
|
||||||
|
|
||||||
|
# If this is defined it will be used by debootstrap, and configured as the
|
||||||
|
# proxy for the guest
|
||||||
|
#
|
||||||
|
# apt_proxy =
|
||||||
|
|
||||||
#
|
#
|
||||||
# Filesystem options for the different filesystems we support.
|
# Filesystem options for the different filesystems we support.
|
||||||
|
|||||||
12
etc/xm.tmpl
12
etc/xm.tmpl
@@ -53,7 +53,17 @@ memory = '{$memory}'
|
|||||||
$OUT .= "disk = [\n";
|
$OUT .= "disk = [\n";
|
||||||
for ( my $i = $#PARTITIONS; $i >= 0 ; $i-- )
|
for ( my $i = $#PARTITIONS; $i >= 0 ; $i-- )
|
||||||
{
|
{
|
||||||
$OUT .= " '$PARTITIONS[$i]{'imagetype'}$PARTITIONS[$i]{'image'},$device" . ( $i + 1 ) .",w',\n";
|
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";
|
$OUT .= " ]\n";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,49 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# This script disables TLS on the new image.
|
|
||||||
#
|
|
||||||
# Steve
|
|
||||||
# --
|
|
||||||
# http://www.steve.org.uk/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
prefix=$1
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Source our common functions
|
|
||||||
#
|
|
||||||
if [ -e /usr/lib/xen-tools/common.sh ]; then
|
|
||||||
. /usr/lib/xen-tools/common.sh
|
|
||||||
else
|
|
||||||
. ./hooks/common.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Log our start
|
|
||||||
#
|
|
||||||
logMessage Script $0 starting
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Don't touch TLS on 64 bit platforms.
|
|
||||||
#
|
|
||||||
if [ "`uname -m`" = "x86_64" ]; then
|
|
||||||
logMessage "Ignoring TLS since we're a 64 bit host."
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Disable TLS and create an empty directory in its place
|
|
||||||
#
|
|
||||||
mv ${prefix}/lib/tls ${prefix}/lib/tls.disabled
|
|
||||||
mkdir ${prefix}/lib/tls
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Log our finish
|
|
||||||
#
|
|
||||||
logMessage Script $0 finished
|
|
||||||
1
hooks/centos-4/10-disable-tls
Symbolic link
1
hooks/centos-4/10-disable-tls
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../common/10-disable-tls
|
||||||
@@ -1,44 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
prefix=$1
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Source our common functions
|
|
||||||
#
|
|
||||||
if [ -e /usr/lib/xen-tools/common.sh ]; then
|
|
||||||
. /usr/lib/xen-tools/common.sh
|
|
||||||
else
|
|
||||||
. ./hooks/common.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
#
|
|
||||||
# Log our start
|
|
||||||
#
|
|
||||||
logMessage Script $0 starting
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Record arch, if present.
|
|
||||||
#
|
|
||||||
if [ -d $prefix/etc/rpm ]; then
|
|
||||||
|
|
||||||
logMessage Found /etc/rpm
|
|
||||||
|
|
||||||
#
|
|
||||||
# If i386 then record this
|
|
||||||
#
|
|
||||||
if [ "$arch" = "i386" ]; then
|
|
||||||
echo "i386-fedora-linux-gnu" >> $prefix/etc/rpm/platform
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
|
|
||||||
logMessage Failed to find /etc/rpm
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
#
|
|
||||||
# Log our finish
|
|
||||||
#
|
|
||||||
logMessage Script $0 finished
|
|
||||||
|
|
||||||
1
hooks/centos-4/15-setup-arch
Symbolic link
1
hooks/centos-4/15-setup-arch
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../common/15-disable-hwclock
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# This script sets up the Yum for CentOS4.
|
|
||||||
#
|
|
||||||
# Steve
|
|
||||||
# --
|
|
||||||
# http://www.steve.org.uk/
|
|
||||||
|
|
||||||
|
|
||||||
prefix=$1
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Source our common functions
|
|
||||||
#
|
|
||||||
if [ -e /usr/lib/xen-tools/common.sh ]; then
|
|
||||||
. /usr/lib/xen-tools/common.sh
|
|
||||||
else
|
|
||||||
. ./hooks/common.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Log our start
|
|
||||||
#
|
|
||||||
logMessage Script $0 starting
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Update yum
|
|
||||||
#
|
|
||||||
if [ ! -d ${prefix}/proc ]; then
|
|
||||||
mkdir -p ${prefix}/proc
|
|
||||||
fi
|
|
||||||
mount -o bind /proc ${prefix}/proc
|
|
||||||
chroot ${prefix} /usr/bin/yum update
|
|
||||||
umount ${prefix}/proc
|
|
||||||
|
|
||||||
#
|
|
||||||
# Log our finish
|
|
||||||
#
|
|
||||||
logMessage Script $0 finished
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
1
hooks/centos-4/20-setup-yum
Symbolic link
1
hooks/centos-4/20-setup-yum
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../common/20-setup-yum
|
||||||
@@ -1,58 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# This script comments out all virtual terminals which aren't on the
|
|
||||||
# first console - that must remain so that 'xm console ...' works
|
|
||||||
# correctly.
|
|
||||||
#
|
|
||||||
# Steve
|
|
||||||
# --
|
|
||||||
# http://www.steve.org.uk/
|
|
||||||
|
|
||||||
|
|
||||||
prefix=$1
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Source our common functions
|
|
||||||
#
|
|
||||||
if [ -e /usr/lib/xen-tools/common.sh ]; then
|
|
||||||
. /usr/lib/xen-tools/common.sh
|
|
||||||
else
|
|
||||||
. ./hooks/common.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Log our start
|
|
||||||
#
|
|
||||||
logMessage Script $0 starting
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Do the transformation.
|
|
||||||
#
|
|
||||||
sed -i -e 's/^\([2-6].*:respawn*\)/#\1/' -e 's/^T/#\t/' -e 's/tty1$/hvc0/' ${prefix}/etc/inittab
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Are we using an alternative serial device?
|
|
||||||
#
|
|
||||||
if [ ! -z "${serial_device}" ]; then
|
|
||||||
|
|
||||||
serial_device=`basename ${serial_device}`
|
|
||||||
|
|
||||||
# Let the user know.
|
|
||||||
logMessage "Replacing default serial device (tty1) with ${serial_device}"
|
|
||||||
|
|
||||||
# replace existing device.
|
|
||||||
sed -i -e s/tty1/${serial_device}/ ${prefix}/etc/inittab
|
|
||||||
|
|
||||||
# make sure that it is allowed to login.
|
|
||||||
echo $serial_device >> ${prefix}/etc/securetty
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Log our finish
|
|
||||||
#
|
|
||||||
logMessage Script $0 finished
|
|
||||||
1
hooks/centos-4/30-disable-gettys
Symbolic link
1
hooks/centos-4/30-disable-gettys
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../common/30-disable-gettys
|
||||||
@@ -1,181 +0,0 @@
|
|||||||
#!/usr/bin/perl -w
|
|
||||||
#
|
|
||||||
# This script attempts to copy all user accounts from the host to
|
|
||||||
# the guest. It does this by copying all user accounts which are not
|
|
||||||
# already present.
|
|
||||||
#
|
|
||||||
# NOTE: Unless '--accounts' was specified upon the 'xen-create-image'
|
|
||||||
# command line we don't do this.
|
|
||||||
#
|
|
||||||
# Steve
|
|
||||||
# --
|
|
||||||
# http://www.steve.org.uk/
|
|
||||||
|
|
||||||
|
|
||||||
use strict;
|
|
||||||
use Env;
|
|
||||||
|
|
||||||
|
|
||||||
my $prefix = shift;
|
|
||||||
|
|
||||||
die "Prefix must be given" unless defined( $prefix );
|
|
||||||
die "Prefix must be a directory" unless ( -d $prefix );
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Exit unless the 'accounts' variable is set.
|
|
||||||
#
|
|
||||||
exit unless ( $ENV{'accounts'} );
|
|
||||||
|
|
||||||
#
|
|
||||||
# Make sure we have $prefix/etc
|
|
||||||
#
|
|
||||||
die "Prefix is missing /etc : $prefix" unless ( -d $prefix . "/etc" );
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Read all accounts from the installed /etc/passwd on the guest.
|
|
||||||
#
|
|
||||||
my %present;
|
|
||||||
if ( -e $prefix . "/etc/passwd" )
|
|
||||||
{
|
|
||||||
%present = readAccounts( $prefix . "/etc/passwd" );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Now read the accounts on the host.
|
|
||||||
#
|
|
||||||
my %host = readAccounts( "/etc/passwd" );
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# For each account not present on new installation then add it
|
|
||||||
#
|
|
||||||
foreach my $account ( sort keys( %host ) )
|
|
||||||
{
|
|
||||||
if ( ! $present{ $account } )
|
|
||||||
{
|
|
||||||
print "Adding: $account\n";
|
|
||||||
addAccount( $account );
|
|
||||||
|
|
||||||
#
|
|
||||||
# Find any groups the user is member of on the host
|
|
||||||
# and add them on the guest system
|
|
||||||
#
|
|
||||||
addGroups( $account );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Read the accounts which are already present on the guest image.
|
|
||||||
#
|
|
||||||
sub readAccounts
|
|
||||||
{
|
|
||||||
my ( $file ) = ( @_ );
|
|
||||||
|
|
||||||
|
|
||||||
my %found;
|
|
||||||
|
|
||||||
open( EXISTING, "<", $file );
|
|
||||||
foreach my $line ( <EXISTING> )
|
|
||||||
{
|
|
||||||
#
|
|
||||||
# Record the userid + username
|
|
||||||
#
|
|
||||||
if ( $line =~ /^([^:]+):([^:]+):([^:]+)/ )
|
|
||||||
{
|
|
||||||
my $user = $1;
|
|
||||||
my $pass = $2;
|
|
||||||
my $uid = $3;
|
|
||||||
|
|
||||||
$found{$user} = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
close( EXISTING );
|
|
||||||
|
|
||||||
return( %found );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Add the passwd + shadow accounts for the given user.
|
|
||||||
#
|
|
||||||
sub addAccount
|
|
||||||
{
|
|
||||||
my ( $user ) = ( @_ );
|
|
||||||
|
|
||||||
#
|
|
||||||
# passwd file.
|
|
||||||
#
|
|
||||||
open( PASSWD, "<", "/etc/passwd" );
|
|
||||||
foreach my $line ( <PASSWD> )
|
|
||||||
{
|
|
||||||
chomp( $line );
|
|
||||||
if ( $line =~ /^\Q$user\E:/ )
|
|
||||||
{
|
|
||||||
#
|
|
||||||
# Add the line
|
|
||||||
#
|
|
||||||
open( OUTY, ">>", $prefix . "/etc/passwd" );
|
|
||||||
print OUTY $line . "\n";
|
|
||||||
close( OUTY );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
close( PASSWD );
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# shadow file.
|
|
||||||
#
|
|
||||||
open( SHADOW, "<", "/etc/shadow" ) or die "Failed to open : $!";
|
|
||||||
foreach my $line ( <SHADOW> )
|
|
||||||
{
|
|
||||||
chomp( $line );
|
|
||||||
if ( $line =~ /^\Q$user\E:/ )
|
|
||||||
{
|
|
||||||
#
|
|
||||||
# Add the line
|
|
||||||
#
|
|
||||||
open( OUTY, ">>", $prefix . "/etc/shadow" );
|
|
||||||
print OUTY $line . "\n";
|
|
||||||
close( OUTY );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
close( SHADOW );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Find the groups a user is member of on the host, and add them to
|
|
||||||
# those groups on the new guest.
|
|
||||||
#
|
|
||||||
sub addGroups
|
|
||||||
{
|
|
||||||
my( $username ) = ( @_ );
|
|
||||||
|
|
||||||
#
|
|
||||||
# Get the groups.
|
|
||||||
#
|
|
||||||
my $groups = `groups $username`;
|
|
||||||
# split off the usernmame.
|
|
||||||
if ( $groups =~ /^([^:]+):(.*)/ )
|
|
||||||
{
|
|
||||||
$groups = $2;
|
|
||||||
print "User: $username is member of the groups: $groups\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach my $g ( split( / /, $groups ) )
|
|
||||||
{
|
|
||||||
# Make sure the group exists.
|
|
||||||
system( "chroot $prefix /usr/sbin/addgroup $g" );
|
|
||||||
|
|
||||||
# add the user to it.
|
|
||||||
system( "chroot $prefix /usr/sbin/adduser $username $g" );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
1
hooks/centos-4/35-setup-users
Symbolic link
1
hooks/centos-4/35-setup-users
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../common/35-setup-users
|
||||||
@@ -1,112 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# This script sets up the networking files for the new image.
|
|
||||||
#
|
|
||||||
# Steve
|
|
||||||
# --
|
|
||||||
# http://www.steve.org.uk/
|
|
||||||
|
|
||||||
|
|
||||||
prefix=$1
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Source our common functions
|
|
||||||
#
|
|
||||||
if [ -e /usr/lib/xen-tools/common.sh ]; then
|
|
||||||
. /usr/lib/xen-tools/common.sh
|
|
||||||
else
|
|
||||||
. ./hooks/common.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Log our start
|
|
||||||
#
|
|
||||||
logMessage Script $0 starting
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Make sure we have an /etc/sysconfig/network-scripts directory.
|
|
||||||
#
|
|
||||||
mkdir -p ${prefix}/etc/sysconfig/network-scripts/
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Test for static vs. DHCP
|
|
||||||
#
|
|
||||||
if [ -z "${dhcp}" ]; then
|
|
||||||
|
|
||||||
#
|
|
||||||
# Setup the initial interface
|
|
||||||
#
|
|
||||||
cat <<E_O_STATIC >${prefix}/etc/sysconfig/network-scripts/ifcfg-eth0
|
|
||||||
DEVICE=eth0
|
|
||||||
ONBOOT=yes
|
|
||||||
BOOTPROTO=static
|
|
||||||
IPADDR=${ip1}
|
|
||||||
NETMASK=${netmask}
|
|
||||||
GATEWAY=${gateway}
|
|
||||||
E_O_STATIC
|
|
||||||
|
|
||||||
#
|
|
||||||
# Now setup any other ones.
|
|
||||||
#
|
|
||||||
interface=1
|
|
||||||
count=2
|
|
||||||
|
|
||||||
while [ "${count}" -le "${ip_count}" ]; do
|
|
||||||
|
|
||||||
value=\$ip${count}
|
|
||||||
value=`eval echo $value`
|
|
||||||
|
|
||||||
logMessage Adding etho:${interface}
|
|
||||||
|
|
||||||
cat <<E_O_STATIC >${prefix}/etc/sysconfig/network-scripts/ifcfg-eth0:${interface}
|
|
||||||
DEVICE=eth0:${interface}
|
|
||||||
ONBOOT=yes
|
|
||||||
BOOTPROTO=static
|
|
||||||
IPADDR=${value}
|
|
||||||
NETMASK=${netmask}
|
|
||||||
E_O_STATIC
|
|
||||||
count=`expr $count + 1`
|
|
||||||
interface=`expr $interface + 1`
|
|
||||||
done
|
|
||||||
|
|
||||||
#
|
|
||||||
# Hooks are run chrooted, hence the resolv.conf is moved
|
|
||||||
# temporarily to /etc/resolv.conf.old. Use that file, it
|
|
||||||
# will be restored after hooks are run.
|
|
||||||
#
|
|
||||||
if [ '' != "$nameserver" ]; then
|
|
||||||
rm -f ${prefix}/etc/resolv.conf.old
|
|
||||||
for ns in $nameserver; do
|
|
||||||
echo "nameserver $ns" >>${prefix}/etc/resolv.conf.old
|
|
||||||
done
|
|
||||||
else
|
|
||||||
cp /etc/resolv.conf ${prefix}/etc/resolv.conf.old
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
cat <<E_O_DHCP >${prefix}/etc/sysconfig/network-scripts/ifcfg-eth0
|
|
||||||
DEVICE=eth0
|
|
||||||
BOOTPROTO=dhcp
|
|
||||||
ONBOOT=yes
|
|
||||||
E_O_DHCP
|
|
||||||
chroot ${prefix} /usr/bin/yum -y install dhclient
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Don't forget to setup the default route.
|
|
||||||
#
|
|
||||||
cat <<EOF >${prefix}/etc/sysconfig/network
|
|
||||||
NETWORKING=yes
|
|
||||||
GATEWAY=${gateway}
|
|
||||||
HOSTNAME=${hostname}
|
|
||||||
EOF
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Log our finish
|
|
||||||
#
|
|
||||||
logMessage Script $0 finished
|
|
||||||
1
hooks/centos-4/40-setup-networking
Symbolic link
1
hooks/centos-4/40-setup-networking
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../common/40-setup-networking-rpm
|
||||||
@@ -1,122 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# This script places the new systems hostname into a couple of files within
|
|
||||||
# the new image.
|
|
||||||
#
|
|
||||||
# Steve
|
|
||||||
# --
|
|
||||||
# http://www.steve.org.uk/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
prefix=$1
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Source our common functions
|
|
||||||
#
|
|
||||||
if [ -e /usr/lib/xen-tools/common.sh ]; then
|
|
||||||
. /usr/lib/xen-tools/common.sh
|
|
||||||
else
|
|
||||||
. ./hooks/common.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Log our start
|
|
||||||
#
|
|
||||||
logMessage Script $0 starting
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Setup the mailname + hostname files.
|
|
||||||
#
|
|
||||||
echo ${hostname} | sed 's/^\([^\.]*\)\..*/\1/' > ${prefix}/etc/hostname
|
|
||||||
echo ${hostname} > ${prefix}/etc/mailname
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Fixup the /etc/hosts file upon the new image for
|
|
||||||
# machines with static IPs
|
|
||||||
#
|
|
||||||
if [ -z "${dhcp}" ]; then
|
|
||||||
|
|
||||||
# Non-IPv6 stuff.
|
|
||||||
grep -v '\(::\|IPv6\)' /etc/hosts > ${prefix}/etc/hosts
|
|
||||||
|
|
||||||
# New entry.
|
|
||||||
echo "${ip1} ${hostname}" >> ${prefix}/etc/hosts
|
|
||||||
echo " " >> ${prefix}/etc/hosts
|
|
||||||
|
|
||||||
# IPv6 stuff.
|
|
||||||
grep '\(::\|IPv6\)' /etc/hosts >> ${prefix}/etc/hosts
|
|
||||||
|
|
||||||
else
|
|
||||||
|
|
||||||
#
|
|
||||||
# Stub /etc/hosts for DHCP clients.
|
|
||||||
#
|
|
||||||
cat >> ${prefix}/etc/hosts <<EOF
|
|
||||||
127.0.0.1 localhost
|
|
||||||
|
|
||||||
# The following lines are desirable for IPv6 capable hosts
|
|
||||||
::1 ip6-localhost ip6-loopback
|
|
||||||
fe00::0 ip6-localnet
|
|
||||||
ff00::0 ip6-mcastprefix
|
|
||||||
ff02::1 ip6-allnodes
|
|
||||||
ff02::2 ip6-allrouters
|
|
||||||
ff02::3 ip6-allhosts
|
|
||||||
|
|
||||||
EOF
|
|
||||||
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Allow the host system to know the IP address of our new guest.
|
|
||||||
#
|
|
||||||
if [ -z "${dhcp}" ]; then
|
|
||||||
|
|
||||||
if ( grep ${hostname} /etc/hosts > /dev/null ) ; then
|
|
||||||
|
|
||||||
logMessage Host already has IP address for the host ${hostname}.
|
|
||||||
|
|
||||||
else
|
|
||||||
|
|
||||||
#
|
|
||||||
# Short host name.
|
|
||||||
#
|
|
||||||
name=`echo ${hostname} | awk -F. '{print $1}'`
|
|
||||||
|
|
||||||
if [ -z "${nohosts}" ]; then
|
|
||||||
|
|
||||||
logMessage Adding ${hostname} and ${name} to /etc/hosts on the host
|
|
||||||
|
|
||||||
echo "${ip1} ${hostname} ${name}" >> /etc/hosts
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# If we've updated the /etc/hosts file on the host machine
|
|
||||||
# and there is an installation of dnsmasq installed then
|
|
||||||
# reload it.
|
|
||||||
#
|
|
||||||
# This will let the local LAN clients lookup the new address.
|
|
||||||
#
|
|
||||||
if [ -x /usr/sbin/dnsmasq ] ; then
|
|
||||||
if [ -e /var/run/dnsmasq.pid ]; then
|
|
||||||
|
|
||||||
logMessage Allowing DNSMasq to restart.
|
|
||||||
kill -s HUP `cat /var/run/dnsmasq.pid`
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Log our finish
|
|
||||||
#
|
|
||||||
logMessage Script $0 finished
|
|
||||||
1
hooks/centos-4/50-setup-hostname
Symbolic link
1
hooks/centos-4/50-setup-hostname
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../common/50-setup-hostname-rpm
|
||||||
@@ -1,53 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# This script ensures that the new guest images have a nicely
|
|
||||||
# populated /dev directory.
|
|
||||||
#
|
|
||||||
# Steve
|
|
||||||
# --
|
|
||||||
# http://www.steve.org.uk/
|
|
||||||
|
|
||||||
|
|
||||||
prefix=$1
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Source our common functions
|
|
||||||
#
|
|
||||||
if [ -e /usr/lib/xen-tools/common.sh ]; then
|
|
||||||
. /usr/lib/xen-tools/common.sh
|
|
||||||
else
|
|
||||||
. ./hooks/common.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Log our start
|
|
||||||
#
|
|
||||||
logMessage Script $0 starting
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Early termination if we have a couple of common devices present
|
|
||||||
# should speed up installs which use --copy/--tar
|
|
||||||
#
|
|
||||||
if ( test `ls -1 ${prefix}/dev | wc -l` -gt 10 ); then
|
|
||||||
logMessage "Terminating because there appear to be files in /dev already"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Make the device nodes.
|
|
||||||
#
|
|
||||||
chroot ${prefix} /bin/sh -c 'cd /dev && ./MAKEDEV console'
|
|
||||||
chroot ${prefix} /bin/sh -c 'cd /dev && ./MAKEDEV null'
|
|
||||||
chroot ${prefix} /bin/sh -c 'cd /dev && ./MAKEDEV zero'
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Log our finish
|
|
||||||
#
|
|
||||||
logMessage Script $0 finished
|
|
||||||
1
hooks/centos-4/55-create-dev
Symbolic link
1
hooks/centos-4/55-create-dev
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../common/55-create-dev
|
||||||
@@ -1,49 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# Copy files from a 'skel' directory, if present, into the
|
|
||||||
# new images
|
|
||||||
#
|
|
||||||
|
|
||||||
|
|
||||||
prefix=$1
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Source our common functions
|
|
||||||
#
|
|
||||||
if [ -e /usr/lib/xen-tools/common.sh ]; then
|
|
||||||
. /usr/lib/xen-tools/common.sh
|
|
||||||
else
|
|
||||||
. ./hooks/common.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Log our start
|
|
||||||
#
|
|
||||||
logMessage Script $0 starting
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Copy everything from the skel directory into the new instance
|
|
||||||
# if that directory exists.
|
|
||||||
#
|
|
||||||
if [ -d /etc/xen-tools/skel ]; then
|
|
||||||
|
|
||||||
logMessage Copying files from /etc/xen-tools/skel
|
|
||||||
|
|
||||||
(cd /etc/xen-tools/skel; tar -cf - . ) | (cd ${prefix}/; tar -xpf -)
|
|
||||||
|
|
||||||
logMessage Finished
|
|
||||||
|
|
||||||
else
|
|
||||||
|
|
||||||
logMessage skel directory, /etc/xen-tools/skell, not present ignoring.
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Log our finish
|
|
||||||
#
|
|
||||||
logMessage Script $0 finished
|
|
||||||
1
hooks/centos-4/65-copy-user-files
Symbolic link
1
hooks/centos-4/65-copy-user-files
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../common/65-copy-user-files
|
||||||
@@ -1,42 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# This script installs OpenSSH upon the new system.
|
|
||||||
#
|
|
||||||
# Steve
|
|
||||||
# --
|
|
||||||
# http://www.steve.org.uk/
|
|
||||||
|
|
||||||
|
|
||||||
prefix=$1
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Source our common functions
|
|
||||||
#
|
|
||||||
if [ -e /usr/lib/xen-tools/common.sh ]; then
|
|
||||||
. /usr/lib/xen-tools/common.sh
|
|
||||||
else
|
|
||||||
. ./hooks/common.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Log our start
|
|
||||||
#
|
|
||||||
logMessage Script $0 starting
|
|
||||||
|
|
||||||
#
|
|
||||||
# Install the OpenSSH server.
|
|
||||||
#
|
|
||||||
if [ ! -d ${prefix}/proc ]; then
|
|
||||||
mkdir -p ${prefix}/proc
|
|
||||||
fi
|
|
||||||
mount -o bind /proc ${prefix}/proc
|
|
||||||
chroot ${prefix} /usr/bin/yum -y install openssh-server passwd
|
|
||||||
umount ${prefix}/proc
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Log our finish
|
|
||||||
#
|
|
||||||
logMessage Script $0 finished
|
|
||||||
1
hooks/centos-4/70-install-ssh
Symbolic link
1
hooks/centos-4/70-install-ssh
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../common/70-install-ssh-rpm
|
||||||
@@ -1,62 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# This script ensures /etc/securetty upon the new guests has the new
|
|
||||||
# Xen console devices in it
|
|
||||||
#
|
|
||||||
# Steve
|
|
||||||
# --
|
|
||||||
# http://www.steve.org.uk/
|
|
||||||
|
|
||||||
|
|
||||||
prefix=$1
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Source our common functions
|
|
||||||
#
|
|
||||||
if [ -e /usr/lib/xen-tools/common.sh ]; then
|
|
||||||
. /usr/lib/xen-tools/common.sh
|
|
||||||
else
|
|
||||||
. ./hooks/common.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Log our start
|
|
||||||
#
|
|
||||||
logMessage Script $0 starting
|
|
||||||
|
|
||||||
#
|
|
||||||
# If the file doesn't exist exit early.
|
|
||||||
#
|
|
||||||
if [ ! -e ${prefix}/etc/securetty ]; then
|
|
||||||
logMessage /etc/securetty not found.
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Do both the devices.
|
|
||||||
#
|
|
||||||
for i in xvc0 hvc0 ; do
|
|
||||||
|
|
||||||
#
|
|
||||||
# Only append if not presnt.
|
|
||||||
#
|
|
||||||
if ( grep $i ${prefix}/etc/securetty > /dev/null ) ; then
|
|
||||||
|
|
||||||
logMessage Host already has $i entry
|
|
||||||
|
|
||||||
else
|
|
||||||
|
|
||||||
echo $i >> ${prefix}/etc/securetty
|
|
||||||
fi
|
|
||||||
|
|
||||||
done
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Log our finish
|
|
||||||
#
|
|
||||||
logMessage Script $0 finished.
|
|
||||||
|
|
||||||
1
hooks/centos-4/75-fixup-securetty
Symbolic link
1
hooks/centos-4/75-fixup-securetty
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../common/75-fixup-securetty
|
||||||
@@ -1,41 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# Install modules from the host system into the new image.
|
|
||||||
#
|
|
||||||
# Steve
|
|
||||||
# --
|
|
||||||
# http://www.steve.org.uk/
|
|
||||||
|
|
||||||
|
|
||||||
prefix=$1
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Source our common functions
|
|
||||||
#
|
|
||||||
if [ -e /usr/lib/xen-tools/common.sh ]; then
|
|
||||||
. /usr/lib/xen-tools/common.sh
|
|
||||||
else
|
|
||||||
. ./hooks/common.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Log our start
|
|
||||||
#
|
|
||||||
logMessage Script $0 starting
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Copy the modules from the host to the new system - we should only
|
|
||||||
# really copy the *correct* modules, but we don't know what they are.
|
|
||||||
#
|
|
||||||
mkdir -p ${prefix}/lib/modules
|
|
||||||
cp -au /lib/modules/*/ ${prefix}/lib/modules
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Log our finish
|
|
||||||
#
|
|
||||||
logMessage Script $0 finished
|
|
||||||
1
hooks/centos-4/80-install-modules
Symbolic link
1
hooks/centos-4/80-install-modules
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../common/80-install-modules-rpm
|
||||||
@@ -1,123 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# This script is responsible for setting up /etc/fstab upon the
|
|
||||||
# new instance.
|
|
||||||
#
|
|
||||||
# This should be a simple job, but it is complicated by some of the
|
|
||||||
# differences between filesystems - some root filesystems will require
|
|
||||||
# the installation of new packages, and we have to handle that here.
|
|
||||||
#
|
|
||||||
# Steve
|
|
||||||
# --
|
|
||||||
# http://www.steve.org.uk/
|
|
||||||
|
|
||||||
|
|
||||||
prefix=$1
|
|
||||||
|
|
||||||
#
|
|
||||||
# Source our common functions
|
|
||||||
#
|
|
||||||
if [ -e /usr/lib/xen-tools/common.sh ]; then
|
|
||||||
. /usr/lib/xen-tools/common.sh
|
|
||||||
else
|
|
||||||
. ./hooks/common.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Log our start
|
|
||||||
#
|
|
||||||
logMessage Script $0 starting
|
|
||||||
|
|
||||||
|
|
||||||
logMessage Filesystem options are ${options}
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Find the root device.
|
|
||||||
#
|
|
||||||
# 1. default to xvda.
|
|
||||||
#
|
|
||||||
# 2. If --ide is specified use hda.
|
|
||||||
#
|
|
||||||
# 3. If --scsi is specified use sda.
|
|
||||||
#
|
|
||||||
# 4. Otherwise use a named $disk_device
|
|
||||||
#
|
|
||||||
device=xvda
|
|
||||||
if [ "${ide}" ]; then
|
|
||||||
device=hda
|
|
||||||
elif [ "${scsi}" ]; then
|
|
||||||
device=sda
|
|
||||||
else
|
|
||||||
if [ ! -z "${disk_device}" ]; then
|
|
||||||
device=`basename $disk_device`
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
logMessage "Root device is /dev/$device"
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Now we have the options we can create the fstab.
|
|
||||||
#
|
|
||||||
has_xfs=0
|
|
||||||
has_reiserfs=0
|
|
||||||
has_btrfs=0
|
|
||||||
cat <<E_O_FSTAB > ${prefix}/etc/fstab
|
|
||||||
# /etc/fstab: static file system information.
|
|
||||||
#
|
|
||||||
# <file system> <mount point> <type> <options> <dump> <pass>
|
|
||||||
proc /proc proc defaults 0 0
|
|
||||||
devpts /dev/pts devpts rw,noexec,nosuid,gid=5,mode=620 0 0
|
|
||||||
E_O_FSTAB
|
|
||||||
for part in `seq 1 ${NUMPARTITIONS}`; do
|
|
||||||
eval "PARTITION=\"\${PARTITION${part}}\""
|
|
||||||
OLDIFS="${IFS}"
|
|
||||||
IFS=:
|
|
||||||
x=0
|
|
||||||
for partdata in ${PARTITION}; do
|
|
||||||
eval "partdata${x}=\"${partdata}\""
|
|
||||||
x=$(( $x+1 ))
|
|
||||||
done
|
|
||||||
IFS="${OLDIFS}"
|
|
||||||
|
|
||||||
case "${partdata2}" in
|
|
||||||
xfs)
|
|
||||||
has_xfs=1
|
|
||||||
;;
|
|
||||||
reiserfs)
|
|
||||||
has_reiserfs=1
|
|
||||||
;;
|
|
||||||
btrfs)
|
|
||||||
has_btrfs=1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
if [ "${partdata2}" = "swap" ]; then
|
|
||||||
echo "/dev/${device}${part} none swap sw 0 0" >> ${prefix}/etc/fstab
|
|
||||||
else
|
|
||||||
echo "/dev/${device}${part} ${partdata3} ${partdata2} ${partdata4} 0 1" >> ${prefix}/etc/fstab
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Finally we can install any required packages for the given root
|
|
||||||
# filesystem
|
|
||||||
#
|
|
||||||
#if [ $has_xfs -eq 1 ]; then
|
|
||||||
# installDebianPackage ${prefix} xfsprogs
|
|
||||||
#fi
|
|
||||||
#if [ $has_reiserfs -eq 1 ]; then
|
|
||||||
# installDebianPackage ${prefix} reiserfsprogs
|
|
||||||
#fi
|
|
||||||
#if [ $has_btrfs -eq 1 ]; then
|
|
||||||
# installDebianPackage ${prefix} btrfs-tools
|
|
||||||
#fi
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Log our finish
|
|
||||||
#
|
|
||||||
logMessage Script $0 finished
|
|
||||||
1
hooks/centos-4/90-make-fstab
Symbolic link
1
hooks/centos-4/90-make-fstab
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../common/90-make-fstab
|
||||||
@@ -1,49 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# This script cleans the yum database on the new system.
|
|
||||||
#
|
|
||||||
# Steve
|
|
||||||
# --
|
|
||||||
# http://www.steve.org.uk/
|
|
||||||
|
|
||||||
|
|
||||||
prefix=$1
|
|
||||||
|
|
||||||
#
|
|
||||||
# Source our common functions
|
|
||||||
#
|
|
||||||
if [ -e /usr/lib/xen-tools/common.sh ]; then
|
|
||||||
. /usr/lib/xen-tools/common.sh
|
|
||||||
else
|
|
||||||
. ./hooks/common.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Log our start
|
|
||||||
#
|
|
||||||
logMessage Script $0 starting
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Clean up RPM files.
|
|
||||||
#
|
|
||||||
logMessage Cleaning .rpm* files.
|
|
||||||
find ${prefix}/ -name '*.rpmorig' -exec rm -f \{\} \;
|
|
||||||
find ${prefix}/ -name '*.rpmnew' -exec rm -f \{\} \;
|
|
||||||
|
|
||||||
#
|
|
||||||
# Clean yum
|
|
||||||
#
|
|
||||||
logMessage Cleaning Yum Repository
|
|
||||||
if [ ! -d ${prefix}/proc ]; then
|
|
||||||
mkdir -p ${prefix}/proc
|
|
||||||
fi
|
|
||||||
mount -o bind /proc ${prefix}/proc
|
|
||||||
chroot ${prefix} /usr/bin/yum clean all
|
|
||||||
umount ${prefix}/proc
|
|
||||||
|
|
||||||
#
|
|
||||||
# Log our finish
|
|
||||||
#
|
|
||||||
logMessage Script $0 finished
|
|
||||||
1
hooks/centos-4/99-clean-image
Symbolic link
1
hooks/centos-4/99-clean-image
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../common/99-clean-image-rpm
|
||||||
@@ -1,49 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# This script disables TLS on the new image.
|
|
||||||
#
|
|
||||||
# Steve
|
|
||||||
# --
|
|
||||||
# http://www.steve.org.uk/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
prefix=$1
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Source our common functions
|
|
||||||
#
|
|
||||||
if [ -e /usr/lib/xen-tools/common.sh ]; then
|
|
||||||
. /usr/lib/xen-tools/common.sh
|
|
||||||
else
|
|
||||||
. ./hooks/common.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Log our start
|
|
||||||
#
|
|
||||||
logMessage Script $0 starting
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Don't touch TLS on 64 bit platforms.
|
|
||||||
#
|
|
||||||
if [ "`uname -m`" = "x86_64" ]; then
|
|
||||||
logMessage "Ignoring TLS since we're a 64 bit host."
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Disable TLS and create an empty directory in its place
|
|
||||||
#
|
|
||||||
mv ${prefix}/lib/tls ${prefix}/lib/tls.disabled
|
|
||||||
mkdir ${prefix}/lib/tls
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Log our finish
|
|
||||||
#
|
|
||||||
logMessage Script $0 finished
|
|
||||||
1
hooks/centos-5/10-disable-tls
Symbolic link
1
hooks/centos-5/10-disable-tls
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../common/10-disable-tls
|
||||||
@@ -1,44 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
prefix=$1
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Source our common functions
|
|
||||||
#
|
|
||||||
if [ -e /usr/lib/xen-tools/common.sh ]; then
|
|
||||||
. /usr/lib/xen-tools/common.sh
|
|
||||||
else
|
|
||||||
. ./hooks/common.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
#
|
|
||||||
# Log our start
|
|
||||||
#
|
|
||||||
logMessage Script $0 starting
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Record arch, if present.
|
|
||||||
#
|
|
||||||
if [ -d $prefix/etc/rpm ]; then
|
|
||||||
|
|
||||||
logMessage Found /etc/rpm
|
|
||||||
|
|
||||||
#
|
|
||||||
# If i386 then record this
|
|
||||||
#
|
|
||||||
if [ "$arch" = "i386" ]; then
|
|
||||||
echo "i386-fedora-linux-gnu" >> $prefix/etc/rpm/platform
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
|
|
||||||
logMessage Failed to find /etc/rpm
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
#
|
|
||||||
# Log our finish
|
|
||||||
#
|
|
||||||
logMessage Script $0 finished
|
|
||||||
|
|
||||||
1
hooks/centos-5/15-setup-arch
Symbolic link
1
hooks/centos-5/15-setup-arch
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../common/15-disable-hwclock
|
||||||
@@ -1,47 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# This script sets up the Yum for CentOS4.
|
|
||||||
#
|
|
||||||
# Steve
|
|
||||||
# --
|
|
||||||
# http://www.steve.org.uk/
|
|
||||||
|
|
||||||
|
|
||||||
prefix=$1
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Source our common functions
|
|
||||||
#
|
|
||||||
if [ -e /usr/lib/xen-tools/common.sh ]; then
|
|
||||||
. /usr/lib/xen-tools/common.sh
|
|
||||||
else
|
|
||||||
. ./hooks/common.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Log our start
|
|
||||||
#
|
|
||||||
logMessage Script $0 starting
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Update yum
|
|
||||||
#
|
|
||||||
if [ ! -d ${prefix}/proc ]; then
|
|
||||||
mkdir -p ${prefix}/proc
|
|
||||||
fi
|
|
||||||
mount -o bind /proc ${prefix}/proc
|
|
||||||
chroot ${prefix} /usr/bin/yum update
|
|
||||||
umount ${prefix}/proc
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Log our finish
|
|
||||||
#
|
|
||||||
logMessage Script $0 finished
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
1
hooks/centos-5/20-setup-yum
Symbolic link
1
hooks/centos-5/20-setup-yum
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../common/20-setup-yum
|
||||||
76
hooks/centos-5/25-setup-kernel
Executable file
76
hooks/centos-5/25-setup-kernel
Executable file
@@ -0,0 +1,76 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# This script sets up the kernel and fstab for CentOS 5.
|
||||||
|
#
|
||||||
|
|
||||||
|
prefix=$1
|
||||||
|
|
||||||
|
#
|
||||||
|
# Source our common functions
|
||||||
|
#
|
||||||
|
if [ -e /usr/lib/xen-tools/common.sh ]; then
|
||||||
|
. /usr/lib/xen-tools/common.sh
|
||||||
|
else
|
||||||
|
. ./hooks/common.sh
|
||||||
|
fi
|
||||||
|
|
||||||
|
#
|
||||||
|
# Log our start
|
||||||
|
#
|
||||||
|
|
||||||
|
logMessage Script $0 starting
|
||||||
|
|
||||||
|
# Make the console work
|
||||||
|
sed -i "/Cancelled/ {G;s/$/co:2345:respawn:\/sbin\/mingetty console/;}" ${prefix}/etc/inittab
|
||||||
|
sed -i "s/^1:2345/#1:2345/" ${prefix}/etc/inittab
|
||||||
|
|
||||||
|
# MAKEDEV is needed at this point
|
||||||
|
chroot ${prefix} ln -s /sbin/MAKEDEV /dev/MAKEDEV
|
||||||
|
chroot ${prefix} /sbin/MAKEDEV sda sdb sdc sdd
|
||||||
|
|
||||||
|
# Create fstab
|
||||||
|
logMessage Create /etc/fstab
|
||||||
|
cat > ${prefix}/etc/fstab << EOF
|
||||||
|
# /etc/fstab: static file system information.
|
||||||
|
#
|
||||||
|
# <file system> <mount point> <type> <options> <dump> <pass>
|
||||||
|
proc /proc proc defaults 0 0
|
||||||
|
none /dev/pts devpts mode=0620 0 0
|
||||||
|
EOF
|
||||||
|
|
||||||
|
for i in `seq 1 $NUMPARTITIONS`; do
|
||||||
|
echo -n "/dev/xvde$i " >> ${prefix}/etc/fstab
|
||||||
|
eval part=\$PARTITION$i
|
||||||
|
if [ ! -z "`echo $part | grep swap`" ]; then
|
||||||
|
echo "none swap ws 0 0" >> ${prefix}/etc/fstab
|
||||||
|
else
|
||||||
|
echo $part | awk -F: '{print $4,$3,$5,0,1}' >> ${prefix}/etc/fstab
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Install the kernel, grub and perl
|
||||||
|
chroot ${prefix} yum clean expire-cache
|
||||||
|
chroot ${prefix} yum -y install kernel-xen grub.x86_64 perl.x86_64
|
||||||
|
|
||||||
|
KERNELVERSION=`ls ${prefix}/boot/vmlinuz-* | sed "s#$prefix/boot/vmlinuz-##"`
|
||||||
|
logMessage "Kernel $KERNELVERSION found"
|
||||||
|
|
||||||
|
# Create grub's menu.list
|
||||||
|
logMessage "Creating /boot/grub/menu.lst"
|
||||||
|
mkdir -p ${prefix}/boot/grub
|
||||||
|
cat > ${prefix}/boot/grub/menu.lst << EOF
|
||||||
|
# WARNING : Don't forget to update this when you upgrade kernel !
|
||||||
|
# You can also exclude kernel-xen from updates by putting
|
||||||
|
# exclude=kernel-xen in in [main] in yum.conf
|
||||||
|
|
||||||
|
default=0
|
||||||
|
timeout=5
|
||||||
|
title CentOS ($KERNELVERSION)
|
||||||
|
kernel /boot/vmlinuz-$KERNELVERSION xen_pv_hvm=enable
|
||||||
|
initrd /boot/initrd-$KERNELVERSION.img
|
||||||
|
EOF
|
||||||
|
|
||||||
|
#
|
||||||
|
# Log our finish
|
||||||
|
#
|
||||||
|
logMessage Script $0 finished
|
||||||
@@ -1,58 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# This script comments out all virtual terminals which aren't on the
|
|
||||||
# first console - that must remain so that 'xm console ...' works
|
|
||||||
# correctly.
|
|
||||||
#
|
|
||||||
# Steve
|
|
||||||
# --
|
|
||||||
# http://www.steve.org.uk/
|
|
||||||
|
|
||||||
|
|
||||||
prefix=$1
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Source our common functions
|
|
||||||
#
|
|
||||||
if [ -e /usr/lib/xen-tools/common.sh ]; then
|
|
||||||
. /usr/lib/xen-tools/common.sh
|
|
||||||
else
|
|
||||||
. ./hooks/common.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Log our start
|
|
||||||
#
|
|
||||||
logMessage Script $0 starting
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Do the transformation.
|
|
||||||
#
|
|
||||||
sed -i -e 's/^\([2-6].*:respawn*\)/#\1/' -e 's/^T/#\t/' -e 's/tty1$/hvc0/' ${prefix}/etc/inittab
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Are we using an alternative serial device?
|
|
||||||
#
|
|
||||||
if [ ! -z "${serial_device}" ]; then
|
|
||||||
|
|
||||||
serial_device=`basename ${serial_device}`
|
|
||||||
|
|
||||||
# Let the user know.
|
|
||||||
logMessage "Replacing default serial device (tty1) with ${serial_device}"
|
|
||||||
|
|
||||||
# replace existing device.
|
|
||||||
sed -i -e s/tty1/${serial_device}/ ${prefix}/etc/inittab
|
|
||||||
|
|
||||||
# make sure that it is allowed to login.
|
|
||||||
echo $serial_device >> ${prefix}/etc/securetty
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Log our finish
|
|
||||||
#
|
|
||||||
logMessage Script $0 finished
|
|
||||||
1
hooks/centos-5/30-disable-gettys
Symbolic link
1
hooks/centos-5/30-disable-gettys
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../common/30-disable-gettys
|
||||||
@@ -1,181 +0,0 @@
|
|||||||
#!/usr/bin/perl -w
|
|
||||||
#
|
|
||||||
# This script attempts to copy all user accounts from the host to
|
|
||||||
# the guest. It does this by copying all user accounts which are not
|
|
||||||
# already present.
|
|
||||||
#
|
|
||||||
# NOTE: Unless '--accounts' was specified upon the 'xen-create-image'
|
|
||||||
# command line we don't do this.
|
|
||||||
#
|
|
||||||
# Steve
|
|
||||||
# --
|
|
||||||
# http://www.steve.org.uk/
|
|
||||||
|
|
||||||
|
|
||||||
use strict;
|
|
||||||
use Env;
|
|
||||||
|
|
||||||
|
|
||||||
my $prefix = shift;
|
|
||||||
|
|
||||||
die "Prefix must be given" unless defined( $prefix );
|
|
||||||
die "Prefix must be a directory" unless ( -d $prefix );
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Exit unless the 'accounts' variable is set.
|
|
||||||
#
|
|
||||||
exit unless ( $ENV{'accounts'} );
|
|
||||||
|
|
||||||
#
|
|
||||||
# Make sure we have $prefix/etc
|
|
||||||
#
|
|
||||||
die "Prefix is missing /etc : $prefix" unless ( -d $prefix . "/etc" );
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Read all accounts from the installed /etc/passwd on the guest.
|
|
||||||
#
|
|
||||||
my %present;
|
|
||||||
if ( -e $prefix . "/etc/passwd" )
|
|
||||||
{
|
|
||||||
%present = readAccounts( $prefix . "/etc/passwd" );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Now read the accounts on the host.
|
|
||||||
#
|
|
||||||
my %host = readAccounts( "/etc/passwd" );
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# For each account not present on new installation then add it
|
|
||||||
#
|
|
||||||
foreach my $account ( sort keys( %host ) )
|
|
||||||
{
|
|
||||||
if ( ! $present{ $account } )
|
|
||||||
{
|
|
||||||
print "Adding: $account\n";
|
|
||||||
addAccount( $account );
|
|
||||||
|
|
||||||
#
|
|
||||||
# Find any groups the user is member of on the host
|
|
||||||
# and add them on the guest system
|
|
||||||
#
|
|
||||||
addGroups( $account );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Read the accounts which are already present on the guest image.
|
|
||||||
#
|
|
||||||
sub readAccounts
|
|
||||||
{
|
|
||||||
my ( $file ) = ( @_ );
|
|
||||||
|
|
||||||
|
|
||||||
my %found;
|
|
||||||
|
|
||||||
open( EXISTING, "<", $file );
|
|
||||||
foreach my $line ( <EXISTING> )
|
|
||||||
{
|
|
||||||
#
|
|
||||||
# Record the userid + username
|
|
||||||
#
|
|
||||||
if ( $line =~ /^([^:]+):([^:]+):([^:]+)/ )
|
|
||||||
{
|
|
||||||
my $user = $1;
|
|
||||||
my $pass = $2;
|
|
||||||
my $uid = $3;
|
|
||||||
|
|
||||||
$found{$user} = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
close( EXISTING );
|
|
||||||
|
|
||||||
return( %found );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Add the passwd + shadow accounts for the given user.
|
|
||||||
#
|
|
||||||
sub addAccount
|
|
||||||
{
|
|
||||||
my ( $user ) = ( @_ );
|
|
||||||
|
|
||||||
#
|
|
||||||
# passwd file.
|
|
||||||
#
|
|
||||||
open( PASSWD, "<", "/etc/passwd" );
|
|
||||||
foreach my $line ( <PASSWD> )
|
|
||||||
{
|
|
||||||
chomp( $line );
|
|
||||||
if ( $line =~ /^\Q$user\E:/ )
|
|
||||||
{
|
|
||||||
#
|
|
||||||
# Add the line
|
|
||||||
#
|
|
||||||
open( OUTY, ">>", $prefix . "/etc/passwd" );
|
|
||||||
print OUTY $line . "\n";
|
|
||||||
close( OUTY );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
close( PASSWD );
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# shadow file.
|
|
||||||
#
|
|
||||||
open( SHADOW, "<", "/etc/shadow" ) or die "Failed to open : $!";
|
|
||||||
foreach my $line ( <SHADOW> )
|
|
||||||
{
|
|
||||||
chomp( $line );
|
|
||||||
if ( $line =~ /^\Q$user\E:/ )
|
|
||||||
{
|
|
||||||
#
|
|
||||||
# Add the line
|
|
||||||
#
|
|
||||||
open( OUTY, ">>", $prefix . "/etc/shadow" );
|
|
||||||
print OUTY $line . "\n";
|
|
||||||
close( OUTY );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
close( SHADOW );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Find the groups a user is member of on the host, and add them to
|
|
||||||
# those groups on the new guest.
|
|
||||||
#
|
|
||||||
sub addGroups
|
|
||||||
{
|
|
||||||
my( $username ) = ( @_ );
|
|
||||||
|
|
||||||
#
|
|
||||||
# Get the groups.
|
|
||||||
#
|
|
||||||
my $groups = `groups $username`;
|
|
||||||
# split off the usernmame.
|
|
||||||
if ( $groups =~ /^([^:]+):(.*)/ )
|
|
||||||
{
|
|
||||||
$groups = $2;
|
|
||||||
print "User: $username is member of the groups: $groups\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach my $g ( split( / /, $groups ) )
|
|
||||||
{
|
|
||||||
# Make sure the group exists.
|
|
||||||
system( "chroot $prefix /usr/sbin/addgroup $g" );
|
|
||||||
|
|
||||||
# add the user to it.
|
|
||||||
system( "chroot $prefix /usr/sbin/adduser $username $g" );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
1
hooks/centos-5/35-setup-users
Symbolic link
1
hooks/centos-5/35-setup-users
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../common/35-setup-users
|
||||||
@@ -1,112 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# This script sets up the networking files for the new image.
|
|
||||||
#
|
|
||||||
# Steve
|
|
||||||
# --
|
|
||||||
# http://www.steve.org.uk/
|
|
||||||
|
|
||||||
|
|
||||||
prefix=$1
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Source our common functions
|
|
||||||
#
|
|
||||||
if [ -e /usr/lib/xen-tools/common.sh ]; then
|
|
||||||
. /usr/lib/xen-tools/common.sh
|
|
||||||
else
|
|
||||||
. ./hooks/common.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Log our start
|
|
||||||
#
|
|
||||||
logMessage Script $0 starting
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Make sure we have an /etc/sysconfig/network-scripts directory.
|
|
||||||
#
|
|
||||||
mkdir -p ${prefix}/etc/sysconfig/network-scripts/
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Test for static vs. DHCP
|
|
||||||
#
|
|
||||||
if [ -z "${dhcp}" ]; then
|
|
||||||
|
|
||||||
#
|
|
||||||
# Setup the initial interface
|
|
||||||
#
|
|
||||||
cat <<E_O_STATIC >${prefix}/etc/sysconfig/network-scripts/ifcfg-eth0
|
|
||||||
DEVICE=eth0
|
|
||||||
ONBOOT=yes
|
|
||||||
BOOTPROTO=static
|
|
||||||
IPADDR=${ip1}
|
|
||||||
NETMASK=${netmask}
|
|
||||||
GATEWAY=${gateway}
|
|
||||||
E_O_STATIC
|
|
||||||
|
|
||||||
#
|
|
||||||
# Now setup any other ones.
|
|
||||||
#
|
|
||||||
interface=1
|
|
||||||
count=2
|
|
||||||
|
|
||||||
while [ "${count}" -le "${ip_count}" ]; do
|
|
||||||
|
|
||||||
value=\$ip${count}
|
|
||||||
value=`eval echo $value`
|
|
||||||
|
|
||||||
logMessage Adding etho:${interface}
|
|
||||||
|
|
||||||
cat <<E_O_STATIC >${prefix}/etc/sysconfig/network-scripts/ifcfg-eth0:${interface}
|
|
||||||
DEVICE=eth0:${interface}
|
|
||||||
ONBOOT=yes
|
|
||||||
BOOTPROTO=static
|
|
||||||
IPADDR=${value}
|
|
||||||
NETMASK=${netmask}
|
|
||||||
E_O_STATIC
|
|
||||||
count=`expr $count + 1`
|
|
||||||
interface=`expr $interface + 1`
|
|
||||||
done
|
|
||||||
|
|
||||||
#
|
|
||||||
# Hooks are run chrooted, hence the resolv.conf is moved
|
|
||||||
# temporarily to /etc/resolv.conf.old. Use that file, it
|
|
||||||
# will be restored after hooks are run.
|
|
||||||
#
|
|
||||||
if [ '' != "$nameserver" ]; then
|
|
||||||
rm -f ${prefix}/etc/resolv.conf.old
|
|
||||||
for ns in $nameserver; do
|
|
||||||
echo "nameserver $ns" >>${prefix}/etc/resolv.conf.old
|
|
||||||
done
|
|
||||||
else
|
|
||||||
cp /etc/resolv.conf ${prefix}/etc/resolv.conf.old
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
cat <<E_O_DHCP >${prefix}/etc/sysconfig/network-scripts/ifcfg-eth0
|
|
||||||
DEVICE=eth0
|
|
||||||
BOOTPROTO=dhcp
|
|
||||||
ONBOOT=yes
|
|
||||||
E_O_DHCP
|
|
||||||
chroot ${prefix} /usr/bin/yum -y install dhclient
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Don't forget to setup the default route.
|
|
||||||
#
|
|
||||||
cat <<EOF >${prefix}/etc/sysconfig/network
|
|
||||||
NETWORKING=yes
|
|
||||||
GATEWAY=${gateway}
|
|
||||||
HOSTNAME=${hostname}
|
|
||||||
EOF
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Log our finish
|
|
||||||
#
|
|
||||||
logMessage Script $0 finished
|
|
||||||
1
hooks/centos-5/40-setup-networking
Symbolic link
1
hooks/centos-5/40-setup-networking
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../common/40-setup-networking-rpm
|
||||||
@@ -1,119 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# This script places the new systems hostname into a couple of files within
|
|
||||||
# the new image.
|
|
||||||
#
|
|
||||||
# Steve
|
|
||||||
# --
|
|
||||||
# http://www.steve.org.uk/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
prefix=$1
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Source our common functions
|
|
||||||
#
|
|
||||||
if [ -e /usr/lib/xen-tools/common.sh ]; then
|
|
||||||
. /usr/lib/xen-tools/common.sh
|
|
||||||
else
|
|
||||||
. ./hooks/common.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Log our start
|
|
||||||
#
|
|
||||||
logMessage Script $0 starting
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Setup the mailname + hostname files.
|
|
||||||
#
|
|
||||||
echo ${hostname} | sed 's/^\([^\.]*\)\..*/\1/' > ${prefix}/etc/hostname
|
|
||||||
echo ${hostname} > ${prefix}/etc/mailname
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Fixup the /etc/hosts file upon the new image for
|
|
||||||
# machines with static IPs
|
|
||||||
#
|
|
||||||
if [ -z "${dhcp}" ]; then
|
|
||||||
|
|
||||||
# Non-IPv6 stuff.
|
|
||||||
grep -v '\(::\|IPv6\)' /etc/hosts > ${prefix}/etc/hosts
|
|
||||||
|
|
||||||
# New entry.
|
|
||||||
echo "${ip1} ${hostname}" >> ${prefix}/etc/hosts
|
|
||||||
echo " " >> ${prefix}/etc/hosts
|
|
||||||
|
|
||||||
# IPv6 stuff.
|
|
||||||
grep '\(::\|IPv6\)' /etc/hosts >> ${prefix}/etc/hosts
|
|
||||||
|
|
||||||
else
|
|
||||||
|
|
||||||
#
|
|
||||||
# Stub /etc/hosts for DHCP clients.
|
|
||||||
#
|
|
||||||
cat >> ${prefix}/etc/hosts <<EOF
|
|
||||||
127.0.0.1 localhost
|
|
||||||
|
|
||||||
# The following lines are desirable for IPv6 capable hosts
|
|
||||||
::1 ip6-localhost ip6-loopback
|
|
||||||
fe00::0 ip6-localnet
|
|
||||||
ff00::0 ip6-mcastprefix
|
|
||||||
ff02::1 ip6-allnodes
|
|
||||||
ff02::2 ip6-allrouters
|
|
||||||
ff02::3 ip6-allhosts
|
|
||||||
|
|
||||||
EOF
|
|
||||||
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Allow the host system to know the IP address of our new guest.
|
|
||||||
#
|
|
||||||
if [ -z "${dhcp}" ]; then
|
|
||||||
|
|
||||||
if ( grep ${hostname} /etc/hosts > /dev/null ) ; then
|
|
||||||
|
|
||||||
logMessage Host already has IP address for the host ${hostname}.
|
|
||||||
|
|
||||||
else
|
|
||||||
|
|
||||||
#
|
|
||||||
# Short host name.
|
|
||||||
#
|
|
||||||
name=`echo ${hostname} | awk -F. '{print $1}'`
|
|
||||||
|
|
||||||
if [ -z "${nohosts}" ]; then
|
|
||||||
|
|
||||||
logMessage Adding ${hostname} and ${name} to /etc/hosts on the host
|
|
||||||
echo "${ip1} ${hostname} ${name}" >> /etc/hosts
|
|
||||||
|
|
||||||
#
|
|
||||||
# If we've updated the /etc/hosts file on the host machine
|
|
||||||
# and there is an installation of dnsmasq installed then
|
|
||||||
# reload it.
|
|
||||||
#
|
|
||||||
# This will let the local LAN clients lookup the new address.
|
|
||||||
#
|
|
||||||
if [ -x /usr/sbin/dnsmasq ] ; then
|
|
||||||
if [ -e /var/run/dnsmasq.pid ]; then
|
|
||||||
|
|
||||||
logMessage Allowing DNSMasq to restart.
|
|
||||||
kill -s HUP `cat /var/run/dnsmasq.pid`
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Log our finish
|
|
||||||
#
|
|
||||||
logMessage Script $0 finished
|
|
||||||
1
hooks/centos-5/50-setup-hostname
Symbolic link
1
hooks/centos-5/50-setup-hostname
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../common/50-setup-hostname-rpm
|
||||||
@@ -1,53 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# This script ensures that the new guest images have a nicely
|
|
||||||
# populated /dev directory.
|
|
||||||
#
|
|
||||||
# Steve
|
|
||||||
# --
|
|
||||||
# http://www.steve.org.uk/
|
|
||||||
|
|
||||||
|
|
||||||
prefix=$1
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Source our common functions
|
|
||||||
#
|
|
||||||
if [ -e /usr/lib/xen-tools/common.sh ]; then
|
|
||||||
. /usr/lib/xen-tools/common.sh
|
|
||||||
else
|
|
||||||
. ./hooks/common.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Log our start
|
|
||||||
#
|
|
||||||
logMessage Script $0 starting
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Early termination if we have a couple of common devices present
|
|
||||||
# should speed up installs which use --copy/--tar
|
|
||||||
#
|
|
||||||
if ( test `ls -1 ${prefix}/dev | wc -l` -gt 10 ); then
|
|
||||||
logMessage "Terminating because there appear to be files in /dev already"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Make the device nodes.
|
|
||||||
#
|
|
||||||
chroot ${prefix} /bin/sh -c 'cd /dev && ./MAKEDEV console'
|
|
||||||
chroot ${prefix} /bin/sh -c 'cd /dev && ./MAKEDEV null'
|
|
||||||
chroot ${prefix} /bin/sh -c 'cd /dev && ./MAKEDEV zero'
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Log our finish
|
|
||||||
#
|
|
||||||
logMessage Script $0 finished
|
|
||||||
1
hooks/centos-5/55-create-dev
Symbolic link
1
hooks/centos-5/55-create-dev
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../common/55-create-dev
|
||||||
@@ -1,49 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# Copy files from a 'skel' directory, if present, into the
|
|
||||||
# new images
|
|
||||||
#
|
|
||||||
|
|
||||||
|
|
||||||
prefix=$1
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Source our common functions
|
|
||||||
#
|
|
||||||
if [ -e /usr/lib/xen-tools/common.sh ]; then
|
|
||||||
. /usr/lib/xen-tools/common.sh
|
|
||||||
else
|
|
||||||
. ./hooks/common.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Log our start
|
|
||||||
#
|
|
||||||
logMessage Script $0 starting
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Copy everything from the skel directory into the new instance
|
|
||||||
# if that directory exists.
|
|
||||||
#
|
|
||||||
if [ -d /etc/xen-tools/skel ]; then
|
|
||||||
|
|
||||||
logMessage Copying files from /etc/xen-tools/skel
|
|
||||||
|
|
||||||
(cd /etc/xen-tools/skel; tar -cf - . ) | (cd ${prefix}/; tar -xpf -)
|
|
||||||
|
|
||||||
logMessage Finished
|
|
||||||
|
|
||||||
else
|
|
||||||
|
|
||||||
logMessage skel directory, /etc/xen-tools/skell, not present ignoring.
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Log our finish
|
|
||||||
#
|
|
||||||
logMessage Script $0 finished
|
|
||||||
1
hooks/centos-5/65-copy-user-files
Symbolic link
1
hooks/centos-5/65-copy-user-files
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../common/65-copy-user-files
|
||||||
@@ -1,42 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# This script installs OpenSSH upon the new system.
|
|
||||||
#
|
|
||||||
# Steve
|
|
||||||
# --
|
|
||||||
# http://www.steve.org.uk/
|
|
||||||
|
|
||||||
|
|
||||||
prefix=$1
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Source our common functions
|
|
||||||
#
|
|
||||||
if [ -e /usr/lib/xen-tools/common.sh ]; then
|
|
||||||
. /usr/lib/xen-tools/common.sh
|
|
||||||
else
|
|
||||||
. ./hooks/common.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Log our start
|
|
||||||
#
|
|
||||||
logMessage Script $0 starting
|
|
||||||
|
|
||||||
#
|
|
||||||
# Install the OpenSSH server.
|
|
||||||
#
|
|
||||||
if [ ! -d ${prefix}/proc ]; then
|
|
||||||
mkdir -p ${prefix}/proc
|
|
||||||
fi
|
|
||||||
mount -o bind /proc ${prefix}/proc
|
|
||||||
chroot ${prefix} /usr/bin/yum -y install openssh-server passwd
|
|
||||||
umount ${prefix}/proc
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Log our finish
|
|
||||||
#
|
|
||||||
logMessage Script $0 finished
|
|
||||||
1
hooks/centos-5/70-install-ssh
Symbolic link
1
hooks/centos-5/70-install-ssh
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../common/70-install-ssh-rpm
|
||||||
@@ -1,62 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# This script ensures /etc/securetty upon the new guests has the new
|
|
||||||
# Xen console devices in it
|
|
||||||
#
|
|
||||||
# Steve
|
|
||||||
# --
|
|
||||||
# http://www.steve.org.uk/
|
|
||||||
|
|
||||||
|
|
||||||
prefix=$1
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Source our common functions
|
|
||||||
#
|
|
||||||
if [ -e /usr/lib/xen-tools/common.sh ]; then
|
|
||||||
. /usr/lib/xen-tools/common.sh
|
|
||||||
else
|
|
||||||
. ./hooks/common.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Log our start
|
|
||||||
#
|
|
||||||
logMessage Script $0 starting
|
|
||||||
|
|
||||||
#
|
|
||||||
# If the file doesn't exist exit early.
|
|
||||||
#
|
|
||||||
if [ ! -e ${prefix}/etc/securetty ]; then
|
|
||||||
logMessage /etc/securetty not found.
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Do both the devices.
|
|
||||||
#
|
|
||||||
for i in xvc0 hvc0 ; do
|
|
||||||
|
|
||||||
#
|
|
||||||
# Only append if not presnt.
|
|
||||||
#
|
|
||||||
if ( grep $i ${prefix}/etc/securetty > /dev/null ) ; then
|
|
||||||
|
|
||||||
logMessage Host already has $i entry
|
|
||||||
|
|
||||||
else
|
|
||||||
|
|
||||||
echo $i >> ${prefix}/etc/securetty
|
|
||||||
fi
|
|
||||||
|
|
||||||
done
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Log our finish
|
|
||||||
#
|
|
||||||
logMessage Script $0 finished.
|
|
||||||
|
|
||||||
1
hooks/centos-5/75-fixup-securetty
Symbolic link
1
hooks/centos-5/75-fixup-securetty
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../common/75-fixup-securetty
|
||||||
@@ -1,41 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# Install modules from the host system into the new image.
|
|
||||||
#
|
|
||||||
# Steve
|
|
||||||
# --
|
|
||||||
# http://www.steve.org.uk/
|
|
||||||
|
|
||||||
|
|
||||||
prefix=$1
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Source our common functions
|
|
||||||
#
|
|
||||||
if [ -e /usr/lib/xen-tools/common.sh ]; then
|
|
||||||
. /usr/lib/xen-tools/common.sh
|
|
||||||
else
|
|
||||||
. ./hooks/common.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Log our start
|
|
||||||
#
|
|
||||||
logMessage Script $0 starting
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Copy the modules from the host to the new system - we should only
|
|
||||||
# really copy the *correct* modules, but we don't know what they are.
|
|
||||||
#
|
|
||||||
mkdir -p ${prefix}/lib/modules
|
|
||||||
cp -au /lib/modules/*/ ${prefix}/lib/modules
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Log our finish
|
|
||||||
#
|
|
||||||
logMessage Script $0 finished
|
|
||||||
1
hooks/centos-5/80-install-modules
Symbolic link
1
hooks/centos-5/80-install-modules
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../common/80-install-modules-rpm
|
||||||
@@ -1,124 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# This script is responsible for setting up /etc/fstab upon the
|
|
||||||
# new instance.
|
|
||||||
#
|
|
||||||
# This should be a simple job, but it is complicated by some of the
|
|
||||||
# differences between filesystems - some root filesystems will require
|
|
||||||
# the installation of new packages, and we have to handle that here.
|
|
||||||
#
|
|
||||||
# Steve
|
|
||||||
# --
|
|
||||||
# http://www.steve.org.uk/
|
|
||||||
|
|
||||||
|
|
||||||
prefix=$1
|
|
||||||
|
|
||||||
#
|
|
||||||
# Source our common functions
|
|
||||||
#
|
|
||||||
if [ -e /usr/lib/xen-tools/common.sh ]; then
|
|
||||||
. /usr/lib/xen-tools/common.sh
|
|
||||||
else
|
|
||||||
. ./hooks/common.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Log our start
|
|
||||||
#
|
|
||||||
logMessage Script $0 starting
|
|
||||||
|
|
||||||
|
|
||||||
logMessage Filesystem options are ${options}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Find the root device.
|
|
||||||
#
|
|
||||||
# 1. default to xvda.
|
|
||||||
#
|
|
||||||
# 2. If --ide is specified use hda.
|
|
||||||
#
|
|
||||||
# 3. If --scsi is specified use sda.
|
|
||||||
#
|
|
||||||
# 4. Otherwise use a named $disk_device
|
|
||||||
#
|
|
||||||
device=xvda
|
|
||||||
if [ "${ide}" ]; then
|
|
||||||
device=hda
|
|
||||||
elif [ "${scsi}" ]; then
|
|
||||||
device=sda
|
|
||||||
else
|
|
||||||
if [ ! -z "${disk_device}" ]; then
|
|
||||||
device=`basename $disk_device`
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
logMessage "Root device is /dev/$device"
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Now we have the options we can create the fstab.
|
|
||||||
#
|
|
||||||
has_xfs=0
|
|
||||||
has_reiserfs=0
|
|
||||||
has_btrfs=0
|
|
||||||
cat <<E_O_FSTAB > ${prefix}/etc/fstab
|
|
||||||
# /etc/fstab: static file system information.
|
|
||||||
#
|
|
||||||
# <file system> <mount point> <type> <options> <dump> <pass>
|
|
||||||
proc /proc proc defaults 0 0
|
|
||||||
none /dev/pts devpts mode=0620 0 0
|
|
||||||
E_O_FSTAB
|
|
||||||
for part in `seq 1 ${NUMPARTITIONS}`; do
|
|
||||||
eval "PARTITION=\"\${PARTITION${part}}\""
|
|
||||||
OLDIFS="${IFS}"
|
|
||||||
IFS=:
|
|
||||||
x=0
|
|
||||||
for partdata in ${PARTITION}; do
|
|
||||||
eval "partdata${x}=\"${partdata}\""
|
|
||||||
x=$(( $x+1 ))
|
|
||||||
done
|
|
||||||
IFS="${OLDIFS}"
|
|
||||||
|
|
||||||
case "${partdata2}" in
|
|
||||||
xfs)
|
|
||||||
has_xfs=1
|
|
||||||
;;
|
|
||||||
reiserfs)
|
|
||||||
has_reiserfs=1
|
|
||||||
;;
|
|
||||||
btrfs)
|
|
||||||
has_btrfs=1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
if [ "${partdata2}" = "swap" ]; then
|
|
||||||
echo "/dev/${device}${part} none swap sw 0 0" >> ${prefix}/etc/fstab
|
|
||||||
else
|
|
||||||
echo "/dev/${device}${part} ${partdata3} ${partdata2} ${partdata4} 0 1" >> ${prefix}/etc/fstab
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Finally we can install any required packages for the given root
|
|
||||||
# filesystem
|
|
||||||
#
|
|
||||||
#if [ $has_xfs -eq 1 ]; then
|
|
||||||
# installDebianPackage ${prefix} xfsprogs
|
|
||||||
#fi
|
|
||||||
#if [ $has_reiserfs -eq 1 ]; then
|
|
||||||
# installDebianPackage ${prefix} reiserfsprogs
|
|
||||||
#fi
|
|
||||||
#if [ $has_btrfs -eq 1 ]; then
|
|
||||||
# installDebianPackage ${prefix} btrfs-tools
|
|
||||||
#fi
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Log our finish
|
|
||||||
#
|
|
||||||
logMessage Script $0 finished
|
|
||||||
1
hooks/centos-5/90-make-fstab
Symbolic link
1
hooks/centos-5/90-make-fstab
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../common/90-make-fstab
|
||||||
@@ -1,51 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# This script cleans the yum database on the new system.
|
|
||||||
#
|
|
||||||
# Steve
|
|
||||||
# --
|
|
||||||
# http://www.steve.org.uk/
|
|
||||||
|
|
||||||
|
|
||||||
prefix=$1
|
|
||||||
|
|
||||||
#
|
|
||||||
# Source our common functions
|
|
||||||
#
|
|
||||||
if [ -e /usr/lib/xen-tools/common.sh ]; then
|
|
||||||
. /usr/lib/xen-tools/common.sh
|
|
||||||
else
|
|
||||||
. ./hooks/common.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Log our start
|
|
||||||
#
|
|
||||||
logMessage Script $0 starting
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Clean up RPM files.
|
|
||||||
#
|
|
||||||
logMessage Cleaning .rpm* files.
|
|
||||||
find ${prefix}/ -name '*.rpmorig' -exec rm -f \{\} \;
|
|
||||||
find ${prefix}/ -name '*.rpmnew' -exec rm -f \{\} \;
|
|
||||||
|
|
||||||
#
|
|
||||||
# Clean yum
|
|
||||||
#
|
|
||||||
logMessage Cleaning Yum Repository
|
|
||||||
|
|
||||||
if [ ! -d ${prefix}/proc ]; then
|
|
||||||
mkdir -p ${prefix}/proc
|
|
||||||
fi
|
|
||||||
mount -o bind /proc ${prefix}/proc
|
|
||||||
chroot ${prefix} /usr/bin/yum clean all
|
|
||||||
umount ${prefix}/proc
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Log our finish
|
|
||||||
#
|
|
||||||
logMessage Script $0 finished
|
|
||||||
1
hooks/centos-5/99-clean-image
Symbolic link
1
hooks/centos-5/99-clean-image
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../common/99-clean-image-rpm
|
||||||
1
hooks/centos-6/10-disable-tls
Symbolic link
1
hooks/centos-6/10-disable-tls
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../common/10-disable-tls
|
||||||
1
hooks/centos-6/15-setup-arch
Symbolic link
1
hooks/centos-6/15-setup-arch
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../common/15-disable-hwclock
|
||||||
1
hooks/centos-6/20-setup-yum
Symbolic link
1
hooks/centos-6/20-setup-yum
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../common/20-setup-yum
|
||||||
83
hooks/centos-6/25-setup-kernel
Executable file
83
hooks/centos-6/25-setup-kernel
Executable file
@@ -0,0 +1,83 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# This script sets up the kernel and fstab for CentOS 5.
|
||||||
|
#
|
||||||
|
|
||||||
|
prefix=$1
|
||||||
|
|
||||||
|
#
|
||||||
|
# Source our common functions
|
||||||
|
#
|
||||||
|
if [ -e /usr/lib/xen-tools/common.sh ]; then
|
||||||
|
. /usr/lib/xen-tools/common.sh
|
||||||
|
else
|
||||||
|
. ./hooks/common.sh
|
||||||
|
fi
|
||||||
|
|
||||||
|
#
|
||||||
|
# Log our start
|
||||||
|
#
|
||||||
|
|
||||||
|
logMessage Script $0 starting
|
||||||
|
|
||||||
|
# Make the console work
|
||||||
|
sed -i "/Cancelled/ {G;s/$/co:2345:respawn:\/sbin\/mingetty console/;}" ${prefix}/etc/inittab
|
||||||
|
sed -i "s/^1:2345/#1:2345/" ${prefix}/etc/inittab
|
||||||
|
|
||||||
|
# MAKEDEV is needed at this point
|
||||||
|
chroot ${prefix} ln -s /sbin/MAKEDEV /dev/MAKEDEV
|
||||||
|
chroot ${prefix} /sbin/MAKEDEV sda sdb sdc sdd
|
||||||
|
|
||||||
|
# Create fstab
|
||||||
|
logMessage Create /etc/fstab
|
||||||
|
cat > ${prefix}/etc/fstab << EOF
|
||||||
|
# /etc/fstab: static file system information.
|
||||||
|
#
|
||||||
|
# <file system> <mount point> <type> <options> <dump> <pass>
|
||||||
|
proc /proc proc defaults 0 0
|
||||||
|
none /dev/pts devpts mode=0620 0 0
|
||||||
|
EOF
|
||||||
|
|
||||||
|
for i in `seq 1 $NUMPARTITIONS`; do
|
||||||
|
echo -n "/dev/sda$i " >> ${prefix}/etc/fstab
|
||||||
|
eval part=\$PARTITION$i
|
||||||
|
if [ ! -z "`echo $part | grep swap`" ]; then
|
||||||
|
echo "none swap ws 0 0" >> ${prefix}/etc/fstab
|
||||||
|
else
|
||||||
|
echo $part | awk -F: '{print $4,$3,$5,0,1}' >> ${prefix}/etc/fstab
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Install the kernel, grub and perl
|
||||||
|
chroot ${prefix} yum clean expire-cache
|
||||||
|
chroot ${prefix} yum -y install kernel-xen grub.x86_64 perl.x86_64
|
||||||
|
|
||||||
|
KERNELVERSION=`ls ${prefix}/boot/vmlinuz-* | sed "s#$prefix/boot/vmlinuz-##"`
|
||||||
|
logMessage "Kernel $KERNELVERSION found"
|
||||||
|
|
||||||
|
# Create grub's menu.list
|
||||||
|
logMessage "Creating /boot/grub/menu.lst"
|
||||||
|
mkdir -p ${prefix}/boot/grub
|
||||||
|
cat > ${prefix}/boot/grub/menu.lst << EOF
|
||||||
|
# WARNING : Don't forget to update this when you upgrade kernel !
|
||||||
|
# You can also exclude kernel-xen from updates by putting
|
||||||
|
# exclude=kernel-xen in in [main] in yum.conf
|
||||||
|
|
||||||
|
default=0
|
||||||
|
timeout=5
|
||||||
|
title CentOS ($KERNELVERSION)
|
||||||
|
kernel /boot/vmlinuz-$KERNELVERSION
|
||||||
|
initrd /boot/initramfs-$KERNELVERSION.img
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Some use lvm but mkinitrd will generate a wrong initrd when these are present.
|
||||||
|
rm -f ${prefix}/etc/lvm/backup/* ${prefix}/etc/lvm/archive/*
|
||||||
|
|
||||||
|
# Generate a correct initrd.
|
||||||
|
chroot ${prefix} mkinitrd --with=xenblk --with=xennet --preload=xenblk --preload=xennet\
|
||||||
|
-f /boot/initramfs-$KERNELVERSION.img $KERNELVERSION
|
||||||
|
|
||||||
|
#
|
||||||
|
# Log our finish
|
||||||
|
#
|
||||||
|
logMessage Script $0 finished
|
||||||
1
hooks/centos-6/30-disable-gettys
Symbolic link
1
hooks/centos-6/30-disable-gettys
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../common/30-disable-gettys
|
||||||
1
hooks/centos-6/35-setup-users
Symbolic link
1
hooks/centos-6/35-setup-users
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../common/35-setup-users
|
||||||
1
hooks/centos-6/40-setup-networking
Symbolic link
1
hooks/centos-6/40-setup-networking
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../common/40-setup-networking-rpm
|
||||||
1
hooks/centos-6/50-setup-hostname
Symbolic link
1
hooks/centos-6/50-setup-hostname
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../common/50-setup-hostname-rpm
|
||||||
1
hooks/centos-6/55-create-dev
Symbolic link
1
hooks/centos-6/55-create-dev
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../common/55-create-dev
|
||||||
1
hooks/centos-6/65-copy-user-files
Symbolic link
1
hooks/centos-6/65-copy-user-files
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../common/65-copy-user-files
|
||||||
1
hooks/centos-6/70-install-ssh
Symbolic link
1
hooks/centos-6/70-install-ssh
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../common/70-install-ssh-rpm
|
||||||
1
hooks/centos-6/75-fixup-securetty
Symbolic link
1
hooks/centos-6/75-fixup-securetty
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../common/75-fixup-securetty
|
||||||
1
hooks/centos-6/80-install-modules
Symbolic link
1
hooks/centos-6/80-install-modules
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../common/80-install-modules-rpm
|
||||||
1
hooks/centos-6/90-make-fstab
Symbolic link
1
hooks/centos-6/90-make-fstab
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../common/90-make-fstab
|
||||||
1
hooks/centos-6/99-clean-image
Symbolic link
1
hooks/centos-6/99-clean-image
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../common/99-clean-image-rpm
|
||||||
@@ -121,14 +121,16 @@ disableStartStopDaemon ()
|
|||||||
{
|
{
|
||||||
local prefix="$1"
|
local prefix="$1"
|
||||||
assert "$LINENO" "${prefix}"
|
assert "$LINENO" "${prefix}"
|
||||||
local daemonfile="${prefix}/sbin/start-stop-daemon"
|
for starter in start-stop-daemon initctl; do
|
||||||
|
local daemonfile="${prefix}/sbin/${starter}"
|
||||||
|
|
||||||
mv "${daemonfile}" "${daemonfile}.REAL"
|
mv "${daemonfile}" "${daemonfile}.REAL"
|
||||||
echo '#!/bin/sh' > "${daemonfile}"
|
echo '#!/bin/sh' > "${daemonfile}"
|
||||||
echo "echo \"Warning: Fake start-stop-daemon called, doing nothing\"" >> "${daemonfile}"
|
echo "echo \"Warning: Fake ${starter} called, doing nothing\"" >> "${daemonfile}"
|
||||||
|
|
||||||
chmod 755 "${daemonfile}"
|
chmod 755 "${daemonfile}"
|
||||||
logMessage "start-stop-daemon disabled / made a stub."
|
logMessage "${starter} disabled / made a stub."
|
||||||
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -140,16 +142,17 @@ enableStartStopDaemon ()
|
|||||||
{
|
{
|
||||||
local prefix=$1
|
local prefix=$1
|
||||||
assert "$LINENO" "${prefix}"
|
assert "$LINENO" "${prefix}"
|
||||||
local daemonfile="${prefix}/sbin/start-stop-daemon"
|
for starter in start-stop-daemon initctl; do
|
||||||
|
local daemonfile="${prefix}/sbin/${starter}"
|
||||||
#
|
|
||||||
# If the disabled file is present then enable it.
|
|
||||||
#
|
|
||||||
if [ -e "${daemonfile}.REAL" ]; then
|
|
||||||
mv "${daemonfile}.REAL" "${daemonfile}"
|
|
||||||
logMessage "start-stop-daemon restored to working order."
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# If the disabled file is present then enable it.
|
||||||
|
#
|
||||||
|
if [ -e "${daemonfile}.REAL" ]; then
|
||||||
|
mv "${daemonfile}.REAL" "${daemonfile}"
|
||||||
|
logMessage "${starter} restored to working order."
|
||||||
|
fi
|
||||||
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user