initial commit of a *whole bunch* of old Egressive shell scripts, used to make many people redundant.

This commit is contained in:
Dave Lane 2016-03-16 13:43:31 +13:00
commit 43e0f5b59e
329 changed files with 31937 additions and 0 deletions

1
egopenvz/Makefile.am Normal file
View file

@ -0,0 +1 @@
dist_sbin_SCRIPTS = eg-make-openvz-template eg-make-openvz-ve

146
egopenvz/eg-make-openvz-template Executable file
View file

@ -0,0 +1,146 @@
#!/bin/bash
# Script to create an OpenVZ template for a specific Debian / Ubuntu
# version
DEFAULT_CONFFILE=/etc/egscripts/make-openvz-template.conf
DEFAULT_CONFIGBASE=/etc/egscripts/openvz
DEFAULT_CONFIGTEMPLATE=vps.basic
DEFAULT_VZCONFDIR=/etc/vz
DEFAULT_MIRROR=http://aptcache.egressive.com:3142/ubuntu
DEFAULT_NAMESERVER=10.128.2.11
DEFAULT_VEID=666
DEFAULT_IP=10.128.2.99
#
# Any of the variables below can be overriden either as environment variables
# or in the configuration file. Either specified on the command line or from
# the default above
#
CONFFILE=${CONFFILE-$DEFAULT_CONFFILE}
MIRROR=${MIRROR-$DEFAULT_MIRROR}
NAMESERVER=${NAMESERVER-$DEFAULT_NAMESERVER}
VEID=${VEID-$DEFAULT_VEID}
IP=${IP-$DEFAULT_IP}
CONFIGBASE=${CONFIGBASE-$DEFAULT_CONFIGBASE}
CONFIGTEMPLATE=${CONFIGTEMPLATE-$DEFAULT_CONFIGTEMPLATE}
VZCONFDIR=${VZCONFDIR-$DEFAULT_VZCONFDIR}
usage() {
cat <<EOT
Usage: `basename $0` [ -c configfile ] dist
EOT
}
while getopts "c:h" OPT ; do
case $OPT in
c) $CONFFILE=$OPTARG ;;
h) usage ; exit 0;;
*) usage ; exit 1;;
esac
done
shift $(($OPTIND - 1))
if [ $# -ne 1 ] ; then
usage
exit 1
fi
SUITE=$1
# Exit on any error
set -e
if [ -f $CONFFILE ] ; then
. $CONFFILE
fi
. $VZCONFDIR/vz.conf
if [ ! -r $CONFIGBASE/${SUITE}.config ] ; then
echo "Required config file $CONFIGBASE/${SUITE}.config not found"
exit 1
fi
. $CONFIGBASE/${SUITE}.config
# Make sure a tarball doesn't already exist
if [ -f $TEMPLATE/cache/$OSTEMPLATE.tar.gz ] ; then
echo "$TEMPLATE/cache/$OSTEMPLATE.tar.gz already exists"
exit 1
fi
# Make temporary directory for deboostrap
TARGET="$VE_PRIVATE"
if [ -d $TARGET ] ; then
echo "$TARGET already exists"
exit 1
fi
# Build the initial debootstrap
debootstrap $SUITE $TARGET $MIRROR
# Configure the container configuration for this dist
vzctl set $VEID --applyconfig ${CONFIGTEMPLATE} --save
echo "OSTEMPLATE=$OSTEMPLATE" >> $VZCONFDIR/conf/$VEID.conf
vzctl set $VEID --nameserver $NAMESERVER --save
vzctl set $VEID --ipadd $IP --save
# You will probably want to create a SUITE.sources.list file in th
# config directory, otherwise the only apt source will be the $MIRROR
if [ -f $CONFIGBASE/$SUITE.sources.list ] ; then
cp $CONFIGBASE/$SUITE.sources.list $TARGET/etc/apt/sources.list
fi
vzctl start $VEID
sleep 10
vzctl exec $VEID "rm /etc/event.d/tty*"
vzctl exec $VEID "chmod 700 /root"
vzctl exec $VEID "echo $SUITE-vztemplate > /etc/hostname"
vzctl exec $VEID "aptitude update"
vzctl exec $VEID "aptitude purge -y ${PURGE_PACKAGES}"
vzctl exec $VEID "aptitude install -y ${INSTALL_PACKAGES}"
vzctl exec $VEID "ln -s /bin/true /sbin/modprobe"
vzctl exec $VEID "aptitude -y safe-upgrade"
# Init will hang on klogd if not disabled
vzctl exec $VEID "update-rc.d -f klogd remove"
# /etc/mtab must be a link to /proc/mounts
vzctl exec $VEID "rm -f /etc/mtab"
vzctl exec $VEID "ln -s /proc/mounts /etc/mtab"
vzctl exec $VEID "update-rc.d -f mtab.sh remove"
# Puppet is always required
vzctl exec $VEID "aptitude install -y puppet"
# Clean apt cache
vzctl exec $VEID "aptitude -y clean"
if [ -f $CONFIGBASE/$SUITE.puppet.conf ] ; then
cp $CONFIGBASE/$SUITE.puppet.conf $TARGET/etc/puppet/puppet.conf
fi
vzctl stop $VEID
vzctl set $VEID --ipdel all --save
if [ -f $TARGET/etc/lsb-release ] ; then
. $TARGET/etc/lsb-release
TARNAME=${DISTRIB_ID}-${DISTRIB_CODENAME}-${DISTRIB_RELEASE}
else
TARNAME=${SUITE}
fi
pushd $VE_PRIVATE
echo -n "Creating $TEMPLATE/cache/$OSTEMPLATE.tar.gz ... "
tar -zcf $TEMPLATE/cache/$OSTEMPLATE.tar.gz .
echo "done"
popd
vzctl destroy $VEID

80
egopenvz/eg-make-openvz-ve Executable file
View file

@ -0,0 +1,80 @@
#!/bin/bash
# Script to create an OpenVZ VE for a specific hostname
# The hostname must be present in $CONFIGBASE/host.map
DEFAULT_CONFFILE=/etc/egscripts/make-openvz-ve.conf
DEFAULT_CONFIGBASE=/etc/egscripts/openvz
DEFAULT_CONFIGTEMPLATE=vps.basic
DEFAULT_VZCONFDIR=/etc/vz
DEFAULT_DOMAIN=kc
DEFAULT_NAMESERVER=10.128.2.11
#
# Any of the variables below can be overriden either as environment variables
# or in the configuration file. Either specified on the command line or from
# the default above
#
CONFFILE=${CONFFILE-$DEFAULT_CONFFILE}
CONFIGBASE=${CONFIGBASE-$DEFAULT_CONFIGBASE}
CONFIGTEMPLATE=${CONFIGTEMPLATE-$DEFAULT_CONFIGTEMPLATE}
VZCONFDIR=${VZCONFDIR-$DEFAULT_VZCONFDIR}
DOMAIN=${DOMAIN-$DEFAULT_DOMAIN}
NAMESERVER=${NAMESERVER-$DEFAULT_NAMESERVER}
START=1
usage() {
cat <<EOT
Usage: `basename $0` [ -h ] [ -N ] [ -c configfile ] hostname
EOT
}
while getopts "c:hN" OPT ; do
case $OPT in
c) $CONFFILE=$OPTARG ;;
h) usage ; exit 0;;
N) START=0 ;;
*) usage ; exit 1;;
esac
done
shift $(($OPTIND - 1))
if [ $# -ne 1 ] ; then
usage
exit 1
fi
TARGETHOST=$1
# Exit on any error
set -e
if [ -f $CONFFILE ] ; then
. $CONFFILE
fi
while read HOST OSTEMPLATE VEID IP ; do
if [ "$HOST" == "$TARGETHOST" ] ; then
echo "Creating host $HOST with VEID $VEID and IP $IP"
. $VZCONFDIR/vz.conf
vzctl create $VEID --config $CONFIGTEMPLATE --ostemplate $OSTEMPLATE --hostname $HOST --ipadd $IP
vzctl set $VEID --name $HOST --save
vzctl set $VEID --features "nfs:on" --save
vzctl set $VEID --nameserver "$NAMESERVER" --save
# The apt cache has most likely been updated since the template was
# created, so do a one off update
chroot $VE_PRIVATE /usr/bin/aptitude update
if [ $START -eq 1 ] ; then
vzctl start $VEID
fi
exit 0
fi
done < $CONFIGBASE/host.map
echo "Host $TARGETHOST not found in $CONFIGBASE/host.map"