Hello
Thanks a lot! It has been on my todo list, but I have not done
this yet. Have you tested this, and if so in what cases.
I'll test this some and then upload a new version with your patch.
Thanks a lot (again).
Regards,
// Ola
On Mon, Apr 18, 2005 at 11:48:27AM +0200, Daniel Hermann wrote:
> Package: vserver-debiantools
> Version: 0.1.10
> Severity: normal
> Tags: patch
>
> Hi,
>
> this is more an inconsistency than a bug, but I file it here anyway.
>
> Recently, the alpha branch of util-vserver was introduced to Debian
> which has a different configuration scheme and other differences
> compared to the stable branch. In addition, the "vserver" command now
> has support for building Debian vservers using debootstrap.
>
> The newvserver command in vserver-debiantools creates a new vserver of
> old style (stable branch). These vservers can still be handled by
> util-vserver in legacy mode, but IMHO it would be better if new
> vservers were of the new alpha branch style. This would avoid several
> legacy problems (security, documentation, ...).
>
> I adjusted the newvserver script so that it creates a new vserver
> using "vserver ... build" with the "debootstrap" method instead of
> using "debootstrap" directly. Some parts of "newvserver" could be
> removed because "vserver ... build" handles them already (care about
> devices, check if vserver already exists, ...), other parts were only
> relevant for old style vservers (vreboot, rebootmgr, ...).
>
> The adjusted script reproduces the same package selection and the same
> /dev tree in the new vserver.
>
> I send a patch as well as the complete newvserver script.
>
> regards
>
> Daniel
>
>
> -- System Information:
> Debian Release: 3.1
> APT prefers testing
> APT policy: (500, 'testing'), (200, 'unstable')
> Architecture: i386 (i686)
> Kernel: Linux 2.4.26-ath64.ws
> Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)
>
> Versions of packages vserver-debiantools depends on:
> ii binutils 2.15-5 The GNU assembler, linker and
> bina
> ii debootstrap 0.2.45-0.2 Bootstrap a basic Debian system
> ii rsync 2.6.3-2 fast remote file copy program
> (lik
> ii util-vserver 0.30.204-4 tools for Virtual private
> servers
>
> -- debconf-show failed
> --- newvserver.orig 2005-04-17 17:46:11.000000000 +0200
> +++ newvserver 2005-04-17 18:54:08.000000000 +0200
> @@ -62,9 +62,6 @@
> # Default network interface for vservers:
> INTERFACE="eth0"
>
> -# Copy vreboot/vhalt/vshutdown utility into /usr/local/sbin/
> -COPY_VREBOOT="true"
> -
> if [ -r /etc/vservers/util-vserver-vars ] ; then
> . /etc/vservers/util-vserver-vars
> fi
> @@ -96,15 +93,13 @@
> {
> cat << EOF
> Usage: ${0##*/} [OPTIONS] --hostname x --domain y.z --ip 1.2.3.4
> -Creates a new Debian vserver by downloading packages via HTTP/FTP
> +Creates a new Debian vserver by calling "vserver ... build"
>
> Options:
> -h, --help this help
> -V, --version copyright and version information
> --arch set target architecture (eg. --arch "i386")
> (autodetected on Debian host if dpkg available)
> - --copy-vreboot install "vreboot/vshutdown/vhalt"
> - --no-copy-vreboot don't install "vreboot/vshutdown/vhalt"
> --dist defaults to "sarge", passed to debootstrap.
> --fakeinit use "/sbin/init" to boot vserver
> --conffile extra configuration file to load.
> @@ -184,14 +179,6 @@
> fi
> shift 2
> ;;
> - --copy-vreboot)
> - COPY_VREBOOT="true"
> - shift
> - ;;
> - --no-copy-vreboot)
> - COPY_VREBOOT=""
> - shift
> - ;;
> --dist)
> case "$2" in
> [a-z]*)
> @@ -341,16 +328,6 @@
>
> ##############################################################################
>
>
> -# Check we've got debootstrap available
> -if [ ! -x /usr/sbin/debootstrap ]; then
> - cat << EOF 1>&2
> -${0##*/}: Requires the debootstrap package to bootstrap Debian
> - Debian Host: apt-get install debootstrap
> - RPM Host: rpm -i
> http://people.debian.org/~blade/install/debootstrap/debootstrap-0.1.17.3-2.i386.rpm
> -EOF
> - exit 1
> -fi
> -
> if ! cat /proc/self/status | grep '^s_context:[^0-9]0$'; then
> echo "${0##*/} error:"
> echo " Must be run from the host server (security context 0)" 1>&2
> @@ -364,33 +341,19 @@
> exit 1
> fi
>
> -# check for /vserver/$VHOST/etc/ incase we are on pre-mounted LVM partition
> -# (used to just check for "/vserver/$VHOST/" existing
> -if [ -d "$VROOTDIR/$VHOST/etc/" -o -f "/etc/vservers/$VHOST.conf" ] ; then
> - cat << EOF 1>&2
> -${0##*/} error: Virtual Server "$VHOST" appears to already exist
> - check "/etc/vservers/$VHOST.conf" or "/vservers/$VHOST/etc/";
> -EOF
> - exit 1
> -fi
> -
> -# This is used to keep a cache of the downloaded .deb packges for next
> install
> -if [ -d "$VROOTDIR/ARCHIVES/$DIST" ]; then
> - mkdir -p "$VROOTDIR/$VHOST/var/cache/apt/archives"
> - cp -a "$VROOTDIR/ARCHIVES/$DIST/"*.deb
> "$VROOTDIR/$VHOST/var/cache/apt/archives" > /dev/null 2>&1
> -fi
> -
> # We only want to pass the Architecture if we need to (autodectected
> otherwise)
> if [ -n "$ARCH" ]; then
> ARCH_ARGUMENT="--arch $ARCH"
> fi
>
> -# Fire off `debootstrap' to do all the hard work
> -# like downloading and installing
> -if ! /usr/sbin/debootstrap $ARCH_ARGUMENT \
> - "--include=$INSTALL_PACKAGES" "--exclude=$REMOVE_PACKAGES" \
> - "$DIST" "$VROOTDIR/$VHOST" "$MIRROR" ; then
> - echo "${0##*/}: error: debootstrap failure. Cannot continue."
> +## use "vserver ... build" to build the new vserver
> +if ! /usr/sbin/vserver "$VHOST" build -m debootstrap \
> + --rootdir "$VROOTDIR" --hostname "$VHOST" --interface
> "$INTERFACE:$IP" \
> + -- -d "$DIST" -m "$MIRROR" \
> + -- $ARCH_ARGUMENT \
> + --include="$INSTALL_PACKAGES" --exclude="$REMOVE_PACKAGES"
> + then
> + echo "${0##*/}: error: vserver-build failure. Cannot continue."
> exit 1
> fi
>
> @@ -406,15 +369,8 @@
>
> EOF
>
> -# Fix up the available device nodes, for security
> +# Fix up the available device nodes (mostly done by vserver-build above)
> if cd "$VROOTDIR/$VHOST/dev"; then
> - mkdir -p /var/lib/vserver-debiantools
> - tar cfp /var/lib/vserver-debiantools/dev.tar.$$ full null ptmx random
> tty urandom zero
> - rm -rf *
> - tar xfp /var/lib/vserver-debiantools/dev.tar.$$
> - rm -f /var/lib/vserver-debiantools/dev.tar.$$
> - mkdir pts
> - mkdir shm
> ln -s /proc/self/fd fd
> ln -s fd/2 stderr
> ln -s fd/0 stdin
> @@ -467,14 +423,6 @@
> proc /proc proc defaults 0 > 0
> EOF
>
> -# The new vserver patch now automatically mounts /proc
> -# Debian needs /dev/pts mounting "gid=5,mode=620" by vserver
> -cat << EOF > "$VROOTDIR/$VHOST/etc/mtab"
> -/dev/hdv1 / vfs none 0 0
> -proc /proc proc rw 0 0
> -devpts /dev/pts devpts rw,gid=5,mode=620 0 0
> -EOF
> -
> # Create a reduced inittab that doesn't start getty on the consoles
> cat << EOF > "$VROOTDIR/$VHOST/etc/inittab"
> # /etc/inittab: init(8) configuration.
> @@ -549,22 +497,6 @@
>
> EOF
>
> -# Create default /etc/vservers entry
> -cat << EOF > /etc/vservers/$VHOST.conf
> -S_HOSTNAME="$VHOST"
> -IPROOT="$IP"
> -IPROOTDEV="$INTERFACE"
> -ONBOOT="yes"
> -S_NICE=""
> -S_FLAGS="lock nproc$FAKEINIT"
> -ULIMIT="-H -n 1024"
> -S_CAPS="CAP_NET_RAW"
> -
> -# *NOT* DNS domain name, for NIS only
> -S_DOMAINNAME=""
> -
> -EOF
> -
> if [ -n "$EXTRA_PACKAGES" ]; then
> EXTRA_PACKAGES_INSTALL="apt-get --assume-yes install
> ${EXTRA_PACKAGES//,/ }"
> fi
> @@ -601,6 +533,9 @@
>
> EOF
>
> +## start vserver before we can exec anything inside it
> +vserver $VHOST start
> +
> # Run the above commands from within the server
> chmod 755 $VROOTDIR/$VHOST/vserver-config.sh
> vserver $VHOST exec /vserver-config.sh
> @@ -622,30 +557,12 @@
> chmod 600 "$VROOTDIR/$VHOST/root/.ssh/authorized_keys"
> fi
>
> -# Install the vreboot/rebootmgr utility--hopefully this will disappear soon
> -VREBOOT_LOCATION="/usr/lib/util-vserver/vreboot"
> -if [ "$COPY_VREBOOT" == "true" -a -x "$VREBOOT_LOCATION" ]; then
> - cp -a "$VREBOOT_LOCATION" "$VROOTDIR/$VHOST/usr/local/sbin/"
> - chmod 750 "$VROOTDIR/$VHOST/usr/local/sbin/vreboot"
> - # ln -s "$VROOTDIR/$VHOST/usr/local/sbin/"{vshutdown,vreboot}
> - # ln -s "$VROOTDIR/$VHOST/usr/local/sbin/"{vhalt,vreboot}
> -fi
> -
> -# Stop all the processes that were started inside the server
> -export PREVLEVEL=2
> -vserver $VHOST exec /etc/init.d/rc 0
> +## stop the vserver
> vserver $VHOST stop
>
> -# Populate the archive for future virtual servers
> -if [ ! -d $VROOTDIR/ARCHIVES/$DIST ]; then
> - mkdir -p $VROOTDIR/ARCHIVES/$DIST
> -fi
> -cp $VROOTDIR/$VHOST/var/cache/apt/archives/*.deb $VROOTDIR/ARCHIVES/$DIST
> -
> -echo "Restarting rebootmgr."
> -invoke-rc.d rebootmgr restart
> echo
> -echo "You should now adjust /etc/vservers/$VHOST.conf to suit your needs,"
> +echo "You should now adjust the configuration in /etc/vservers/$VHOST/"
> +echo "to suit your needs,"
> echo "or else just go ahead and type \`vserver $VHOST start' to start"
> echo "your new virtual server. debian/rules!"
> echo
--
--------------------- Ola Lundqvist ---------------------------
/ [EMAIL PROTECTED] Annebergsslingan 37 \
| [EMAIL PROTECTED] 654 65 KARLSTAD |
| +46 (0)54-10 14 30 +46 (0)70-332 1551 |
| http://www.opal.dhs.org UIN/icq: 4912500 |
\ gpg/f.p.: 7090 A92B 18FE 7994 0C36 4FE4 18A1 B1CF 0FE5 3DD9 /
---------------------------------------------------------------
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]