Sync Loadbalanced webservers
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 # CLUSTER speciefiek # Naam van directory waar cluster inzit CLUSTERDIR=php54 #NR van loadbalanced server LB1 = 1 LB2 = 2 etc LB=1 # Standaard variabelen BASISCONFIG=/usr/local/hobbynet/apache2conf/$CLUSTERDIR #apache APACHE2=/etc/apache2 APACHE2CONFIGDIR=$APACHE2/sites-available # backup dir BACKUPDIR=/usr/local/hobbynet/local/backup #logrotated BASISLOGROTATE=$BASISCONFIG/logrotate LOGROTATECONFIGDIR=/etc/logrotate.d LOGROTATEFILE=apache2 #php BASISPHP=$BASISCONFIG/php PHPCLI=/etc/php5/cli/php.ini PHPCGI=/etc/php5/cgi/php.ini PHPAPACHE2=/etc/php5/apache2/php.ini PHPCONFD=/etc/php5/conf.d #IPlists IPLISTBASIS=/usr/local/hobbynet/apache2conf/iplist IPLISTLOCAL=/usr/local/hobbynet/iplists #apache2 configuratie echo "bezig met aanpassen van apache configuratie" cd $BASISCONFIG/lb$LB rm $BASISCONFIG/lb$LB/* find $BASISCONFIG -maxdepth 1 -type f -exec cp {} $BASISCONFIG/lb$LB/ \; for fl in *; do mv $fl $fl.old sed 's/lb\*/lb'$LB/g $fl.old > $fl rm -f $fl.old done #Logrotate 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 #php echo "kopieeren van php.ini naar $PHPCLI" cp $BASISPHP/php.ini $PHPCLI echo "kopieeren van php.ini naar $PHPCGI" cp $BASISPHP/php.ini $PHPCGI echo "kopieeren van php.ini naar $PHPAPACHE2" cp $BASISPHP/php.ini $PHPAPACHE2 # Iplist if [ -e $IPLISTBASIS ] ; then if [ ! -e $IPLISTLOCAL/ ] ; then mkdir $IPLISTLOCAL fi echo "kopieeren IPlist uit $IPLISTBASIS naar $IPLISTLOCAL" cp $IPLISTBASIS/* $IPLISTLOCAL/ fi 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