aboutsummaryrefslogtreecommitdiff
path: root/files
diff options
context:
space:
mode:
Diffstat (limited to 'files')
-rw-r--r--files/vserver/build_vserver52
1 files changed, 32 insertions, 20 deletions
diff --git a/files/vserver/build_vserver b/files/vserver/build_vserver
index 0f0cea7..f808122 100644
--- a/files/vserver/build_vserver
+++ b/files/vserver/build_vserver
@@ -1,36 +1,48 @@
#!/bin/bash
-NAME=$1
-CONTEXT=$2
-RELEASE = $3
-DEBOOTSTRAP_MIRROR = $4
-# create basic vserver
-vserver $NAME build -m debootstrap -- -d $RELEASE -m $DEBOOTSTRAP_MIRROR
+NAME="$1"
+CONTEXT="$2"
+RELEASE="$3"
+DEBOOTSTRAP_MIRROR="$4"
+VHOSTNAME="$5"
+VINTERFACE="$6"
+PACKAGES="lsb-release,openssl,iproute,cron,sudo,openssh-server,locales"
+
+if [ "$VHOSTNAME" != "none" ]; then
+ VHOSTNAME_OPT="--hostname $VHOSTNAME"
+fi
+
+if [ ! -z "$VINTERFACE" ]; then
+ VINTERFACE_OPT="--interface $VINTERFACE"
+ VIP="`echo $VINTERFACE | cut -d : -f 2 | cut -d '/' -f 1`"
+fi
-# default settings
-echo $NAME >/etc/vservers/$NAME/uts/nodename
-echo $CONTEXT >/etc/vservers/$NAME/context
+# create basic vserver
+vserver $NAME build -n $NAME --context $CONTEXT \
+ $VHOSTNAME_OPT $VINTERFACE_OPT -m debootstrap -- \
+ -d $RELEASE -m $DEBOOTSTRAP_MIRROR -- --include=$PACKAGES || exit 1
# copy in some some defaults
TARGET=/etc/vservers/$NAME/vdir/
-
cp /etc/apt/{preferences,sources.list} $TARGET/etc/apt/
-# this is needed so puppet can find the puppetmaster and creates the right
-# certificate
-grep -v $NAME /etc/hosts > $TARGET/etc/hosts
+# add minimum /etc/hosts entries
+if [ "$VHOSTNAME" != "none" ]; then
+ echo "$VIP $VHOSTNAME" > $TARGET/etc/hosts
+fi
+
echo "127.0.0.1 $NAME" >> $TARGET/etc/hosts
-#mkdir -p $TARGET/var/lib/puppet/modules/dbp
-#cp /var/lib/puppet/modules/dbp/puppet_current.deb $TARGET/var/lib/puppet/modules/dbp/
# Setup is complete, now do the post-install stuff
-vserver $NAME start
-vserver $NAME exec dselect update
-# install a few packages needed for facter
-vserver $NAME exec apt-get -y install lsb-release iproute
+vserver $NAME start || exit 1
+vserver $NAME exec apt-get update || exit 1
+vserver $NAME exec apt-get upgrade || exit 1
+
+# custom puppet installation
+#mkdir -p $TARGET/var/lib/puppet/modules/dbp
+#cp /var/lib/puppet/modules/dbp/puppet_current.deb $TARGET/var/lib/puppet/modules/dbp/
#vserver $NAME exec dpkg --install var/lib/puppet/modules/dbp/puppet_current.deb
#vserver $NAME exec apt-get -fy install
-
#echo "Please sign now: puppetca --sign $NAME" >&2
echo "VServer $NAME created"