Sync Loadbalanced webservers: Difference between revisions

From Hobbynet Admin Wiki
Jump to navigation Jump to search
(layout aanpassingen)
(→‎locale scripting op webserver: toegvoegen van extra wensen)
Line 25: Line 25:
Nadat alle sites zijn uitgeschakeld worden de huidige website files weg gebackup naar /usr/local/hobbynet/local/backup.<br>
Nadat alle sites zijn uitgeschakeld worden de huidige website files weg gebackup naar /usr/local/hobbynet/local/backup.<br>
Hierna worden alle files (website) die in de configdir staan geactiveerd.<br>
Hierna worden alle files (website) die in de configdir staan geactiveerd.<br>
Wil je een site uitschakelen dan verplaats je de website configfile naar de map 'uitgeschakeld'.
Wil je een site uitschakelen dan verplaats je de website configfile naar de map 'uitgeschakeld'.<br>
Daarnaast wordt er de php.ini die in de php directory staat naar de server gekopieerd<br>
Daarnasst wordt ook de logrotated config op zelfde manier verspreid naar beide servers<br>
<pre>
<pre>
#!/bin/bash
#!/bin/bash
BASISCONFIG=/usr/local/hobbynet/apache2conf/html
BASISCONFIG=/usr/local/hobbynet/apache2conf/php
APACHE2CONFIGDIR=/etc/apache2/sites-available
APACHE2CONFIGDIR=/etc/apache2/sites-available
BACKUPDIR=/usr/local/hobbynet/local/backup/
BACKUPDIR=/usr/local/hobbynet/local/backup
LOGROTATECONFIGDIR=/etc/logrotate.d
LOGROTATEFILE=apache2
BASISLOGROTATE=/usr/local/hobbynet/apache2conf/php/logrotate
BASISPHP=/usr/local/hobbynet/apache2conf/php/php/php.ini
PHPCLI=/etc/php5/cli/php.ini
PHPCGI=/etc/php5/cgi/php.ini
PHPAPACHE2=/etc/php5/apache2/php.ini
LB=1
LB=1


cd $BASISCONFIG/lb$LB
 
echo "bezig met aanpassen van apache configuratie"
cd $BASISCONFIG/lb$LB
rm $BASISCONFIG/lb$LB/*
rm $BASISCONFIG/lb$LB/*
cp $BASISCONFIG/* $BASISCONFIG/lb$LB/ >/dev/null
cp $BASISCONFIG/* $BASISCONFIG/lb$LB/ >/dev/null
Line 41: Line 52:
     rm -f $fl.old
     rm -f $fl.old
     done
     done
echo "bezig met aanpassen van logrotate configuratie"
cd $BASISLOGROTATE/lb$LB
rm $BASISLOGROTATE/lb$LB/*
cp $BASISLOGROTATE/$LOGROTATEFILE $BASISLOGROTATE/lb$LB/$LOGROTATEFILE >/dev/null
    mv $BASISLOGROTATE/lb$LB/$LOGROTATEFILE $BASISLOGROTATE/lb$LB/$LOGROTATEFILE.old
    sed 's/lb\*/lb'$LB/g $BASISLOGROTATE/lb$LB/$LOGROTATEFILE.old > $BASISLOGROTATE/lb$LB/$LOGROTATEFILE
    rm -f $BASISLOGROTATE/lb$LB/$LOGROTATEFILE.old
echo "kopieer van nieuwe logrotated file naar server"
cp $BASISLOGROTATE/lb$LB/$LOGROTATEFILE $LOGROTATECONFIGDIR/$LOGROTATEFILE
echo "kopieeren van php.ini naar $PHPCLI"
cp $BASISPHP $PHPCLI
echo "kopieeren van php.ini naar $PHPCGI"
cp $BASISPHP $PHPCLI
echo "kopieeren van php.ini naar $PHPAPACHE2"
cp $BASISPHP $PHPAPACHE2
echo "Apache2 stoppen, Apache2 sites uitschakelen, nieuwe configs kopieeren, site activeren apache2 herstarten"


cd $APACHE2CONFIGDIR
cd $APACHE2CONFIGDIR
service apache2 stop
service apache2 stop
a2dissite *
a2dissite *
mv *  $BACKUPDIR
mv *  $BACKUPDIR/
cp $BASISCONFIG/lb$LB/* .
cp $BASISCONFIG/lb$LB/* .
a2ensite *
a2ensite *
service apache2 start
service apache2 start
</pre>
</pre>

Revision as of 22:43, 15 November 2011

doel

Dit script zorgt ervoor dat de configuraties van webservers gelijk worden getrokken

config files

De config files staan in de volgende dir /usr/local/hobbynet/apache2conf/html
Vervang 'html' door de naam van het cluster, bijvoorbeeld 'php-joomla' dus zonder -lbx

config files synchroniseren

Om de config files te synchroniseren draai je op scripting het script /usr/local/hobbynet/bin/sync_html
Vervang 'html' door de naam van het cluster, bijvoorbeeld 'php-joomla' dus zonder -lbx

scripting

op server scripting

Op de server scripting wordt het script /usr/local/hobbynet/bin/sync_* aangeroepen.
Deze start op beide servers in het cluster het script /usr/local/hobbynet/local/getapacheconf

#!/bin/bash
echo syncing html-lb1
ssh html-lb1-int /usr/local/hobbynet/local/getapacheconf
echo synching html-lb2
ssh html-lb2-int /usr/local/hobbynet/local/getapacheconf

locale scripting op webserver

Dit script zorgt ervoor dat lb* in de config file wordt vervangen door lb1 of lb2, afhankelijk van de waarde in het script.
Omdat dit script server specifiek is staat deze lokaal op de server, in de map /usr/local/hobbynet/local/getapacheconf.
Nadat alle sites zijn uitgeschakeld worden de huidige website files weg gebackup naar /usr/local/hobbynet/local/backup.
Hierna worden alle files (website) die in de configdir staan geactiveerd.
Wil je een site uitschakelen dan verplaats je de website configfile naar de map 'uitgeschakeld'.
Daarnaast wordt er de php.ini die in de php directory staat naar de server gekopieerd
Daarnasst wordt ook de logrotated config op zelfde manier verspreid naar beide servers

#!/bin/bash
BASISCONFIG=/usr/local/hobbynet/apache2conf/php
APACHE2CONFIGDIR=/etc/apache2/sites-available
BACKUPDIR=/usr/local/hobbynet/local/backup
LOGROTATECONFIGDIR=/etc/logrotate.d
LOGROTATEFILE=apache2
BASISLOGROTATE=/usr/local/hobbynet/apache2conf/php/logrotate
BASISPHP=/usr/local/hobbynet/apache2conf/php/php/php.ini
PHPCLI=/etc/php5/cli/php.ini
PHPCGI=/etc/php5/cgi/php.ini
PHPAPACHE2=/etc/php5/apache2/php.ini
LB=1


echo "bezig met aanpassen van apache configuratie"
cd  $BASISCONFIG/lb$LB
rm $BASISCONFIG/lb$LB/*
cp $BASISCONFIG/* $BASISCONFIG/lb$LB/ >/dev/null
     for fl in *; do
     mv $fl $fl.old
     sed 's/lb\*/lb'$LB/g $fl.old > $fl
     rm -f $fl.old
     done

echo "bezig met aanpassen van logrotate configuratie"
cd $BASISLOGROTATE/lb$LB
rm $BASISLOGROTATE/lb$LB/*
cp $BASISLOGROTATE/$LOGROTATEFILE $BASISLOGROTATE/lb$LB/$LOGROTATEFILE >/dev/null
     mv $BASISLOGROTATE/lb$LB/$LOGROTATEFILE $BASISLOGROTATE/lb$LB/$LOGROTATEFILE.old
     sed 's/lb\*/lb'$LB/g $BASISLOGROTATE/lb$LB/$LOGROTATEFILE.old > $BASISLOGROTATE/lb$LB/$LOGROTATEFILE
     rm -f $BASISLOGROTATE/lb$LB/$LOGROTATEFILE.old
echo "kopieer van nieuwe logrotated file naar server"
cp $BASISLOGROTATE/lb$LB/$LOGROTATEFILE $LOGROTATECONFIGDIR/$LOGROTATEFILE


echo "kopieeren van php.ini naar $PHPCLI"
cp $BASISPHP $PHPCLI

echo "kopieeren van php.ini naar $PHPCGI"
cp $BASISPHP $PHPCLI

echo "kopieeren van php.ini naar $PHPAPACHE2"
cp $BASISPHP $PHPAPACHE2

echo "Apache2 stoppen, Apache2 sites uitschakelen, nieuwe configs kopieeren, site activeren apache2 herstarten"

cd $APACHE2CONFIGDIR
service apache2 stop
a2dissite *
mv *  $BACKUPDIR/
cp $BASISCONFIG/lb$LB/* .
a2ensite *
service apache2 start