All pastes #334983 Raw Edit

Create vserver

public shellscript v1 · immutable
·published 2007-02-01 01:20 UTC
rendered paste body
#!/bin/bash# Lock the scriptlockfile /tmp/vservercreator.lock# Read parameters passed to scriptread TEMPecho $TEMP > /tmp/vservercreator-$$.tmp. /tmp/vservercreator-$$.tmprm /tmp/vservercreator-$$.tmp# Does the tar file exist?if [ ! -e $VTAR ]then        echo "Fatal Error! $VTAR does not exist!"else        # Is the vserver name invalid?        if [[ ! "$VNAME" =~ '^[a-zA-Z0-9-]{3,20}$' ]]        then                echo "Fatal Error! '$VNAME' is an invalid vserver name!, The name must be between 3-20 characters long and contain only letters, numebrs and hyphens."        else                # extract                 echo "vservercreator.sh -> Extracting $VTAR..."                mkdir /tmp/vserver-template-$$                cd /tmp/vserver-template-$$                tar -xf $VTAR                # remove config symlinks                echo "vservercreator.sh -> Removing old config symlinks..."                rm /tmp/vserver-template-$$/etc/vservers/template-vserver/run /tmp/vserver-template-$$/etc/vservers/template-vserver/cache /tmp/vserver-template-$$/etc/vservers/template-vserver/vdir                # move to new location                echo "vservercreator.sh -> Moving files to their new location..."                mv /tmp/vserver-template-$$/etc/vservers/template-vserver /etc/vservers/$VNAME                mv /tmp/vserver-template-$$/var/lib/vservers/template-vserver /var/lib/vservers/$VNAME                # create config symlinks                echo "vservercreator.sh -> Creating the new config symlinks..."                ln -s /etc/vservers/.defaults/cachebase/$VNAME /etc/vservers/$VNAME/cache                ln -s /var/run/vservers/$VNAME /etc/vservers/$VNAME/run                ln -s /var/lib/vservers/$VNAME /etc/vservers/$VNAME/vdir                # configure vserver                echo "vservercreator.sh -> Configuring the new vserver..."                echo $VNAME > /etc/vservers/$VNAME/name                echo $VNAME > /etc/vservers/$VNAME/vdir/etc/hostname                echo $VNAME.$VDOMAIN > /etc/vservers/$VNAME/uts/nodename                echo $VIP > /etc/vservers/$VNAME/interfaces/0/ip                echo $VDEV > /etc/vservers/$VNAME/interfaces/0/dev                # remove unwanted files                echo "vservercreator.sh -> Removing unwanted files..."                rm -rf /tmp/vserver-template-$$                rm -f $VTAR                cd /                if [ "$VSTART" == 1 ]                then                        # start new vserver                        echo "vservercreator.sh -> Starting the vserver..."                        vserver $VNAME start 1>/dev/null 2>&1                fi                echo "vservercreator.sh -> Success, vserver '$VNAME' created successfully."        fifi# unlock scriptrm -f /tmp/vservercreator.lock