Current time: 11-26-2024, 06:37 PM Hello There, Guest! (LoginRegister)


Post Reply 
How to setup a server to follow development?
Author Message
sci2tech Away
Senior Member
****

Posts: 1,285
Joined: Jan 2007
Reputation: 23
Post: #32
RE: How to setup a server to follow development?
v 0.0.3:
Add support for other distribution (Fedora, SuSE, Gentoo, RedHat) (I only tested with debian, please make backups if you have other distro)
Default variables are read from ispcp.conf.
maillogconvert.pl it`s updated too.
Other little tweaks.
PLEASE TEST BEFORE ADD TO WIKI. WORKS FOR ME BUT... you know Wink
TODO:
Still ispcp.conf it`s not modified.
PHP Code:
#!/bin/bash
#
# ispcp-nightly-update
# Version: 0.0.3 - 19.05.2008
# License: GPL
# Author : ispcomm
# Credits: ispcp development team
#
# Variables
BACKUPDIR="/var/www/backup"
TRUNK_DIR="/usr/src/ispcp"
REBUILD_SITES="yes"
SAVE_DEFAULT_BACKUP="yes"
DISTRO_UPD="yes"

function msg_exit(){
    echo $
1;exit;
}
function 
Extract_vars(){
    eval `
cat ${TRUNK_DIR}/${MAKEFILE} | grep -E "(INST_PREF|SYSTEM_CONF)="| sed -e 's/$(INST_PREF)//g'`
    for 
a in `cat ${SYSTEM_CONF}/ispcp.conf | grep -E "(ROOT_DIR|BACKUP_FILE_DIR|CMD_HTTPD|CMD_NAMED|CMD_MTA|CMD_ISPCPD|CMD_PFLOGSUM)"| sed -e 's/ //g'`
    do 
        
export $a
    done
    WWWDIR
=`echo ${ROOT_DIR} | awk -F "/ispcp" '{print $1}'`
}

#download/update trunk no longer remove old trunk (thanks kilburn)
echo "#### DOWNLOAD TRUNK ####"
mkdir -${TRUNK_DIR}
svn checkout http://www.isp-control.net/ispcp_svn/trunk/ ${TRUNK_DIR}
cd ${TRUNK_DIR}

echo 
"#### SO determining ####"
if [ -/etc/debian_version ]; then
    RELEASE
=`cat /etc/debian_version`
    case ${
RELEASEin
        2.0
VERSION="hamm";msg_exit "HAMM is not suported";;
        
2.1VERSION="slink";msg_exit "SLINK is not suported";;
        
2.2VERSION="potato";msg_exit "POTATO is not suported";;
        
3.0VERSION="woody";msg_exit "WOODY is not suported";;
        
3.1VERSION="sarge";;
        
4.0VERSION="etch";;
        
lenny*) VERSION="lenny";;
    
esac
    MAKEFILE
="Makefile"
    
Extract_vars
    
if [ $DISTRO_UPD == "yes" ] ; then
        
echo "#### SO UPDATE ####"
        
apt-get update;
        
apt-get -y dist-upgrade;
        
apt-get -y install `cat ./docs/Debian/debian-packages-${VERSION}`;
    
fi;
elif [ -/etc/fedora-release ]; then
    MAKEFILE
="Makefile.fedora"
    
Extract_vars
    
if [ $DISTRO_UPD == "yes" ] ; then
        msg_exit 
"Fedora is not suported yet"
        
yum -y install `cat ./docs/Fedora/fedora-packages`
        
cpan2rpm -i http://search.cpan.org/CPAN/authors/id/P/PH/PHOENIX/Term-ReadPassword-0.07.tar.gz
        
wget -/tmp/core http://hany.sk/mirror/fedora/releases/7/Everything/i386/os/Fedora/perl-Net-LibIDN-0.09-3.fc7.i386.rpm
        
rpm -/tmp/core/perl-Net-LibIDN-0.09-3.fc7.i386.rpm
        rm 
-/tmp/core/perl-Net-LibIDN-0.09-3.fc7.i386.rpm
    fi
;
elif [ -/etc/SuSE-release ]; then
    MAKEFILE
="Makefile.opensuse"
    
Extract_vars
    
if [ $DISTRO_UPD == "yes" ] ; then
        yast 
-`cat ./docs/OpenSuse/opensuse103-packages`
    
fi;
elif [ -/etc/gentoo-release ]; then
    MAKEFILE
="Makefile.gentoo"
    
Extract_vars
    
if [ $DISTRO_UPD == "yes" ] ; then
        emerge 
-uq `cat ./docs/Gentoo/gentoo-packages`
    
fi;
elif [ -/etc/redhat-release ]; then
    msg_exit 
"RedHat is not suported yet"
elif [ -/etc/slackware-version ]; then
    msg_exit 
"Slackware is not suported yet"
else
    
msg_exit "Unknown Linux ditribution: not suported"
fi

echo "#### BACKUP OLD FILES ####"
# Backup current installation
mkdir -p $BACKUPDIR
pushd $BACKUPDIR
if [ $SAVE_DEFAULT_BACKUP == "yes" ] ; then
    
#move ispcp/backups to a temporary location
    
mv -f $BACKUP_FILE_DIR .
fi
tar czpf 
"ispcp_backup-`date +'%Y-%m-%d %H-%M-%S'`.tar.gz" ${WWWDIR}/ispcp/
tar czpf "ispcp_backup-etc-`date +'%Y-%m-%d %H-%M-%S'`.tar.gz" ${SYSTEM_CONF}

echo 
"#### SAVEING SETTINGS ####"
cp -${WWWDIR}/ispcp/engine/ispcp-db-keys.pl .
cp -${WWWDIR}/ispcp/gui/include/ispcp-db-keys.php .
cp -${WWWDIR}/ispcp/gui/tools/pma/config.inc.php .
popd

echo "#### BUILDING ISPCP ####"
make -${MAKEFILEclean
make 
-${MAKEFILEinstall 

echo "#### STOPING ISPCP DAEMON ####"
$CMD_ISPCPD stop


echo "#### REMOVE OLD ISPCP ####"
rm -fR $ROOT_DIR

echo  "#### REMOVE .svn DIRECTORIES ####"
rm -fr `find ${INST_PREF} -type d -name '.svn'`

echo 
"#### UPDATE CURENT INSTALATION ####"
pushd ${INST_PREF}${WWWDIR}
rm -fr `find ispcp/ -type d -name '.svn'`
cp -R ispcp$WWWDIR
cp 
-${INST_PREF}${CMD_PFLOGSUM} ${CMD_PFLOGSUM}
popd

echo "#### RESTORE SETTINGS ####"
pushd $BACKUPDIR
cp 
-v ispcp-db-keys.pl ${WWWDIR}/ispcp/engine/
cp -v ispcp-db-keys.pl ${WWWDIR}/ispcp/engine/messager/
cp -v ispcp-db-keys.php ${WWWDIR}/ispcp/gui/include/
cp -v config.inc.php ${WWWDIR}/ispcp/gui/tools/pma/

echo 
"#### RESTORE BACKUPS ####"
if [ $SAVE_DEFAULT_BACKUP == "yes" ] ; then
    mv 
-f backups ${BACKUP_FILE_DIR}
fi
popd

echo "#### SETTING PERMISIONS ####"
pushd ${WWWDIR}/ispcp/engine/setup/
./
set-engine-permissions.sh
./set-gui-permissions.sh
popd
 
echo "#### COPYING /parts DIRECTORIES ####"
bla=`find ${INST_PREF}/etc/ispcp -type d -name 'parts'`;
for 
x in $bla;
do
    
bla2=`echo ${x} | awk -F"${INST_PREF}|/parts" '{print $2}'`
    
cp -R $x $bla2
done
 
echo "#### REBUILDING SITES ####"
if [ $REBUILD_SITES == "yes" ] ; then
# Some old releases require this. not necessary for current ones.
#DELETE FROM config WHERE name = 'DATABASE_REVISION';
#read -p "Enter mysql pasword on prompt"
cat <<EOF mysql -uroot -pYOURPASSWORD ispcp
UPDATE mail_users SET status
='toadd' where status='ok';
UPDATE domain SET domain_status 'change' WHERE domain_status 'ok';
UPDATE domain_aliasses SET alias_status 'change' WHERE alias_status 'ok';
UPDATE subdomain SET subdomain_status 'change' WHERE subdomain_status 'ok';
EOF
${ROOT_DIR}/engine/ispcp-rqst-mngr
fi

echo "#### Starting ispcp-daemon ####"
$CMD_ISPCPD start

echo "#### Deleting ispcp tmp Dir ####"
rm -fR ${INST_PREF}

echo 
"#### Restarting Services ####"
$CMD_HTTPD restart
$CMD_NAMED restart
$CMD_MTA restart 
05-31-2008 07:40 AM
Visit this user's website Find all posts by this user Quote this message in a reply
Post Reply 


Messages In This Thread
RE: How to setup a server to follow development? - sci2tech - 05-31-2008 07:40 AM

Forum Jump:


User(s) browsing this thread: 12 Guest(s)