Scalix Update 11.x: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
| (23 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 3: | Zeile 3: | ||
<pre> | <pre> | ||
scx:~# cd /usr/src | scx:~# cd /usr/src | ||
wget -c http://downloads.scalix.com/.community/. | wget -c http://downloads.scalix.com/.community/11.4/scalix-11.4.0-GA-unsupported-debian-intel.bin | ||
sh ./scalix-11.4.0-GA-unsupported-debian-intel.bin | |||
cd scalix-debian-11.4.0-GA/software/scalix_server | cd scalix-debian-11.4.0-GA/software/scalix_server | ||
/usr/src/scx-update.sh | |||
</pre> | </pre> | ||
Das Update-Script habe ich unter /usr/src liegen, da ich dort auch die verschiedenen scalix-sourcen installiert habe: | In Version 11.4.0 war (mal wieder) ein Deb-Paket (leicht) fehlerhaft, ich zeige hier beispielhaft, wie solche Fehler korrigiert werden können. Nach Fehlerbereinigung einfach das Paket entfernen und neu installieren. | ||
<pre> | |||
scx:/usr/src# cd scalix-debian-11.4.0-GA/software/scalix_server/ | |||
mkdir -p old new/DEBIAN | |||
mv scalix-iconv-extras_1.2-1_i386.deb old | |||
dpkg -x old/scalix-iconv-extras_1.2-1_i386.deb new | |||
dpkg -e old/scalix-iconv-extras_1.2-1_i386.deb new/DEBIAN | |||
vi new/DEBIAN/preinst | |||
# ... Zeile 3 korrigieren | |||
if [ -n "$1" ]; then | |||
# ... | |||
vi new/DEBIAN/postrm | |||
# ... Zeile 2 korrigieren | |||
if [ -z "$1" ]; then | |||
# ... | |||
# Jetzt das korrigierte Paket bauen | |||
dpkg -b new scalix-iconv-extras_1.2-1_i386.deb | |||
# Fertig :-) | |||
dpkg -r scalix-iconv-extras | |||
dpkg -i scalix-iconv-extras_1.2-1_i386.deb | |||
</pre> | |||
In 11.4.3 musste ich die Apache Konfiguration fixen, da Scalix die Konfigfiles umbenannt hat, aber das nicht im entsprechendem Setup-File aktualisiert hat. | |||
<pre>scx:/etc/apache2/conf.d# grep 'ajp/' scal* | |||
scalix-tomcat-connector.conf:#Include /etc/opt/scalix-tomcat/connector/ajp/instance-*.conf | |||
scalix-tomcat-connector.conf:Include /etc/opt/scalix-tomcat/connector/ajp/app-*.conf | |||
</pre> | |||
Das Update-Script '''scx-update.sh''' habe ich unter '''/usr/src''' liegen, da ich dort auch die verschiedenen scalix-sourcen installiert habe: | |||
<pre>scx:/usr/src# ls | <pre>scx:/usr/src# ls | ||
scalix-11.3.0-U1-GA-unsupported-debian-intel.bin | scalix-11.3.0-U1-GA-unsupported-debian-intel.bin | ||
| Zeile 18: | Zeile 51: | ||
scalix-debian-11.4.0-GA/ | scalix-debian-11.4.0-GA/ | ||
scx-install.sh* | scx-install.sh* | ||
scx-update.sh* | scx-update.sh* | ||
</pre> | </pre> | ||
Hier ist das Scalix Update-Script. | |||
'''/usr/src/scx-update.sh''' | |||
<pre>#!/bin/sh | |||
# Scalix 11.x update script | |||
# Author: neobiker | |||
# Version: $Id: scx-update.sh,v 1.6 2009/02/04 17:30:28 root Exp root $ | |||
scalix11version=11.4.6 | |||
dbpwd="" | |||
ldappwd="" | |||
# load and decompress scalix packages | |||
scalix11downloadurl="http://downloads.scalix.com/.community/${scalix11version}/scalix-${scalix11version}-GA-unsupported-debian-intel.bin" | |||
scalix11bin=`basename $scalix11downloadurl` | |||
scalix11dir=scalix-debian-${scalix11version}-GA | |||
usage () | |||
{ | |||
cat << EOF | |||
Usage: $0 [-c|-i] # update scalix packages with: dpkg -i -E <package> | |||
Options are: | |||
-c configure scalix, don't update/install packages | |||
-i (re-)install scalix packages with: dpkg -i <package> | |||
EOF | |||
exit 0 | |||
} | |||
# Initialise some settings | |||
# get scalix pakage filenames: main_files, app_files, other_files | |||
# define config files etc. | |||
scx_initvars () | |||
{ | |||
scx_main="server postgres" | |||
scx_apps="tomcat- tomcat_ swa sac mobile platform res sis" | |||
# Extract and install packages | |||
if [ ! -e $scalix11dir ]; then | |||
# Download Scalix 11 | |||
if [ ! -e $scalix11bin ]; then | |||
cd $src_dir | |||
wget -N $scalix11downloadurl | |||
fi | |||
sh ./$scalix11bin | |||
fi | |||
cd $scalix11dir/software/scalix_server/ | |||
if [ `ls -1 scalix-*.deb 2>/dev/null | wc -l` -gt 0 ] ; then | |||
for f in ${scx_main}; do | |||
main_files="${main_files} "`ls scalix-${f}*.deb` | |||
dropme="${dropme} | grep -v $f" | |||
done | |||
for f in ${scx_apps}; do | |||
app_files="${app_files} "`ls scalix-${f}*.deb` | |||
dropme="${dropme} | grep -v $f" | |||
done | |||
other_files=`eval "ls -1 scalix-*.deb ${dropme}"` | |||
pid=$$ | |||
host=$(hostname) | |||
fqdn=$(hostname -f) | |||
short=${host:0:1}${host: -1:1} | |||
base=/var/opt/scalix/${short} | |||
config_files="${base}/webmail/swa.properties \ | |||
${base}/caa/scalix.res/config/ubermanager.properties \ | |||
${base}/res/config/res.properties \ | |||
${base}/platform/platform.properties \ | |||
${base}/mobile/mobile.properties \ | |||
${base}/sis/sis.properties" | |||
else | |||
echo 'Sorry, no scalix-\*.deb packages found.' | |||
echo "Please change to the directory which contains the files and try again." | |||
exit 1 | |||
fi | |||
} | |||
# modify scalix deb packages (for lenny) | |||
fix_scalix_debs () | |||
{ | |||
deb=`/bin/ls -1 scalix-${1}*.deb` | |||
if [ -e "$deb" ]; then | |||
[ -d old ] || mkdir old | |||
[ -d new_$1 ] && rm -rf new_$1 | |||
[ -d new_$1/DEBIAN ] || mkdir -p new_$1/DEBIAN | |||
[ -e old/$deb ] || cp $deb old/$deb | |||
dpkg -x old/$deb new_$1 | |||
dpkg -e old/$deb new_$1/DEBIAN | |||
case $1 in | |||
iconv) | |||
file=new_$1/DEBIAN/preinst | |||
cat $file | sed -e 's/ "\$1" -gt 1 / -n "\$1" /g' >$file.neu | |||
mv $file.neu $file | |||
chmod a+x $file | |||
file=new_$1/DEBIAN/postrm | |||
cat $file | sed -e 's/ "\$1" -eq 0 / -z "\$1" /g' >$file.neu | |||
mv $file.neu $file | |||
chmod a+x $file | |||
dpkg -b new_$1 $deb | |||
;; | |||
server) | |||
file=new_$1/DEBIAN/control | |||
cat $file | sed -e 's/libsasl2,/libsasl2-2,/g' \ | |||
-e 's/libmilter[^,]*,//g' \ | |||
-e 's/libstdc++2[^,]*,//g' >$file.neu | |||
mv $file.neu $file | |||
file=new_$1/DEBIAN/postinst | |||
cat $file | sed -e "s#OMLOGFILE='~/sys/install/log'#OMLOGFILE='~/sys/install/log';#g" >$file.neu | |||
mv $file.neu $file | |||
chmod a+x $file | |||
dpkg -b new_$1 $deb | |||
;; | |||
postgres) | |||
file=new_$1/DEBIAN/control | |||
cat $file | sed -e 's/| postgresql-client-.\..//g' \ | |||
-e 's/| postgresql-.\..//g' >$file.neu | |||
mv $file.neu $file | |||
dpkg -b new_$1 $deb | |||
;; | |||
*) | |||
;; | |||
esac | |||
fi | |||
} | |||
apache_config () | |||
{ | |||
# Setup Apache | |||
file=/etc/apache2/conf.d/scalix-web-client.conf | |||
[ -e $file ] || ln -s /opt/scalix/global/httpd/scalix-web-client.conf $file | |||
cat << EOT > /etc/apache2/conf.d/scalix-access.conf | |||
<Location /> | |||
Allow from all | |||
</Location> | |||
EOT | |||
file=/etc/opt/scalix-tomcat/connector/ajp/instance-$mnode.conf | |||
if [ ! -e $file ]; then | |||
echo 'Include /etc/opt/scalix-tomcat/connector/ajp/app-*.conf' > $file | |||
fi | |||
files="/etc/opt/scalix-tomcat/connector/ajp/*-$mnode*.conf \ | |||
/etc/opt/scalix-tomcat/connector/jk/*-$mnode*.conf" | |||
for file in $files; do | |||
if [ -e $file ]; then | |||
sed -e 's;<VirtualHost;#<VirtualHost;g' \ | |||
-e 's;</VirtualHost;#</VirtualHost;g' \ | |||
$file > $file.neu | |||
mv $file.neu $file | |||
fi | |||
done | |||
} | |||
scx_update () | |||
{ | |||
echo "" | |||
echo "Removing Scalix applications:" | |||
for file in ${app_files}; do | |||
pkgs="${pkgs} "`scx_pkgname ${file}` | |||
done | |||
echo "removing ${pkgs}" | |||
aptitude remove ${pkgs} | |||
echo "Updating Scalix Server" | |||
dpkg -i --force-overwrite $opt_update ${main_files} | |||
dpkg -i --force-overwrite $opt_update ${other_files} | |||
echo "" | |||
echo "Reinstalling Scalix applications:" | |||
for file in ${app_files}; do | |||
pkg=`scx_pkgname ${file}` | |||
echo "updating ${pkg}: ${file}" | |||
if ! dpkg -i --force-overwrite ${file} ; then | |||
echo ">>> Warning: dpkg returned an error. <<<" | |||
echo "" | |||
fi | |||
done | |||
echo "Scalix Configuration files must be reconfigured." | |||
} | |||
# configure scalix | |||
scx_configure () | |||
{ | |||
if [ "x$dbpwd" == "x" ]; then | |||
echo . | |||
echo "Scalix configuration:" | |||
echo "---------------------" | |||
echo "Scalix DB-Password ? " | |||
read dbpwd | |||
fi | |||
tomcatport=80 | |||
for file in ${config_files}; do | |||
sed -e "s;%LOCALDOMAIN%;$ldomain;g" \ | |||
-e "s;%LOCALHOST%;$fqdn;g" \ | |||
-e "s;%IMAPHOST%;$fqdn;g" \ | |||
-e "s;%SMTPHOST%;$fqdn;g" \ | |||
-e "s;%DBHOST%;$fqdn:5733;g" \ | |||
-e "s;%DBPASSWD%;$dbpwd;g" \ | |||
-e "s;%LDAPPORT%;389;g" \ | |||
-e "s;http://%PLATFORMURL%:8080/api;http://$fqdn/api;g" \ | |||
-e "s;%PLATFORMURL%;http://$fqdn/api;g" \ | |||
-e "s;swa.platform.enabled=false;swa.platform.enabled=true;g" \ | |||
-e "s;__SECURED_MODE__;false;g" \ | |||
-e "s;ubermanager/__FQHN_HOST__@__KERBEROS_REALM__;;g" \ | |||
-e "s;__KERBEROS_REALM__;;g" \ | |||
-e "s;__FQHN_FOR_KDC_HOST__;;g" \ | |||
-e "s;__FQHN_QUERY_SERVER_NAME__;$fqdn;g" \ | |||
-e "s;__UBERMGR_USE_EXTERNAL_AUTH__;false;g" \ | |||
-e "s;__UBERMGR_ALLOW_EXTERNAL_AUTH__;false;g" \ | |||
-e "s;__UBERMGR_MAXLIST_SIZE__;100;g" \ | |||
-e "s;__UBERMGR_MAIL_DOMAINS_LIST__;$ldomain;g" \ | |||
-e "s;__UBERMGR_EXTERNAL_DOMAIN_AUTH_LIST__;;g" \ | |||
-e "s;__CONFIGURED__;true;g" \ | |||
-e "s;__FQHN_FOR_UBERMANAGER__;$fqdn;g" \ | |||
-e "s;__TOMCAT_PORT__;$tomcatport;g" \ | |||
-e "s;localhost;$fqdn;g" \ | |||
-e "s;%INDEX-WHITELIST%;$fqdn;g" \ | |||
-e "s;%SEARCH-WHITELIST%;$fqdn;g" \ | |||
-e "s;%INDEXADMIN-WHITELIST%;$fqdn;g" \ | |||
-e "s;%SIS-LANGUAGE%;German;g" \ | |||
${file} > ${file}.new | |||
mv $file.new $file | |||
done | |||
# some (optional) GERMAN settings | |||
for file in ${config_files}; do | |||
sed -e "s;ubermanager.console.defaultCountry=US;ubermanager.console.defaultCountry=DE;g" \ | |||
-e "s;ubermanager.console.defaultLanguage=AMERICAN;ubermanager.console.defaultLanguage=GERMAN;g" \ | |||
-e "s;swa.user.locale=en_US;swa.user.locale=de_DE;g" \ | |||
-e "s;swa.user.preferredDateTimeFormat=1;swa.user.preferredDateTimeFormat=2;g" \ | |||
-e "s;swa.user.dateSeparatorChar=/;swa.user.dateSeparatorChar=.;g" \ | |||
-e "s;swa.user.weekStart=0;swa.user.weekStart=1;g" \ | |||
-e "s;swa.user.defaultCalendarView=0;swa.user.defaultCalendarView=2;g" \ | |||
${file} > ${file}.new | |||
mv $file.new $file | |||
done | |||
# If SAC Login doesn't work, try this | |||
# Write Ldappassword to psdata | |||
file=${base}/caa/scalix.res/config/psdata | |||
if [ ! -e ${file} ]; then | |||
if [ "x$ldappwd" == "x" ]; then | |||
echo "Scalix LDAP-Password [DB-Password]? " | |||
read ldappwd | |||
[ -z "$ldappwd" ] && ldappwd=$dbpwd | |||
fi | |||
echo "${ldappwd}" > ${file} | |||
chown root:root ${file} | |||
chmod 400 ${file} | |||
ommodu sxqueryadmin -p $ldappwd | |||
fi | |||
} | |||
# backup scalix config files | |||
scx_backup_config () | |||
{ | |||
for f in ${config_files}; do | |||
mkdir -p `dirname ${base}/scalix-config-backup-${pid}${f}` | |||
cp ${f} ${base}/scalix-config-backup-${pid}${f} | |||
cp ${f} ${f}.bak | |||
done | |||
} | |||
# show differences to new config files | |||
scx_diff_config () | |||
{ | |||
for file in ${config_files}; do | |||
sed -e 's/#.*//g' \ | |||
-e '/^$/ D' \ | |||
${file} | sort > ${file}.new | |||
sed -e 's/#.*//g' \ | |||
-e '/^$/ D' \ | |||
${base}/scalix-config-backup-${pid}${file} | sort > ${file}.old | |||
if ! diff -q ${file}.old ${file}.new; then | |||
echo "-------------------------------------------------" | |||
echo "Check changes in ${file}:" | |||
diff ${file}.old ${file}.new | |||
echo ">>> Restore old Configfile [y] ?" | |||
read a | |||
if [ -z "$a" -o "$a" == "y" -o "$a" == "Y" ]; then | |||
cp ${file} ${file}.new.update | |||
cp ${base}/scalix-config-backup-${pid}${file} ${file} | |||
echo "restored ${file} !!! <<<" | |||
fi | |||
echo "-------------------------------------------------" | |||
echo "" | |||
fi | |||
done | |||
echo ">>> Remove temp. Backupfiles (${base}/scalix-config-backup-${pid}) [y] ?" | |||
read a | |||
if [ -z "$a" -o "$a" == "y" -o "$a" == "Y" ]; then | |||
rm -rf ${base}/scalix-config-backup-${pid} | |||
echo "${base}/scalix-config-backup-${pid} deleted" | |||
fi | |||
} | |||
scx_tomcat_restart () | |||
{ | |||
echo "Scalix tomcat restart..." | |||
/etc/init.d/apache2 restart | |||
/etc/init.d/scalix-tomcat restart | |||
} | |||
scx_restart () | |||
{ | |||
echo "Scalix restart..." | |||
for f in /etc/rc1.d/K*scalix* /etc/rc1.d/K*apache2; do $f stop 2>/dev/null; done | |||
for f in /etc/rc2.d/S*apache2 /etc/rc2.d/S*scalix*; do $f start; done | |||
echo "Scalix restarted." | |||
} | |||
# get pakage name (used by dpkg -r <package>) | |||
scx_pkgname () | |||
{ | |||
dpkg -I $1 | awk '/Package/ {print $2}' | |||
} | |||
# set script options | |||
opt_update="-E" | |||
while getopts "chi" option | |||
do | |||
case $option in | |||
c) opt_configure=1 | |||
;; | |||
h) usage | |||
;; | |||
i) opt_update="" | |||
;; | |||
*) usage | |||
;; | |||
esac | |||
done | |||
# Update scalix pakages: | |||
# backup config-files | |||
# update scalix pakages: Web applications need 'remove' first | |||
# reconfigure scalix | |||
scx_initvars | |||
scx_backup_config | |||
fix_scalix_debs iconv | |||
fix_scalix_debs server | |||
fix_scalix_debs postgres | |||
[ -z "$opt_configure" ] && scx_update | |||
scx_configure | |||
apache_config | |||
scx_diff_config | |||
#scx_tomcat_restart | |||
scx_restart | |||
</pre> | |||
Das Skript konfiguriert Scalix, z.B. nach einem update, da die Konfig-Files beim Update überschrieben werden. | |||
Siehe auch mein (Re-)[http://www.neobiker.de/wiki/index.php?title=Scalix_mit_Debian_Etch#Installation Installationsskript für Scalix]. | |||
Aktuelle Version vom 14. Februar 2010, 17:25 Uhr
Scalix Update
Scalix Sourcen laden und updaten.
scx:~# cd /usr/src wget -c http://downloads.scalix.com/.community/11.4/scalix-11.4.0-GA-unsupported-debian-intel.bin sh ./scalix-11.4.0-GA-unsupported-debian-intel.bin cd scalix-debian-11.4.0-GA/software/scalix_server /usr/src/scx-update.sh
In Version 11.4.0 war (mal wieder) ein Deb-Paket (leicht) fehlerhaft, ich zeige hier beispielhaft, wie solche Fehler korrigiert werden können. Nach Fehlerbereinigung einfach das Paket entfernen und neu installieren.
scx:/usr/src# cd scalix-debian-11.4.0-GA/software/scalix_server/
mkdir -p old new/DEBIAN
mv scalix-iconv-extras_1.2-1_i386.deb old
dpkg -x old/scalix-iconv-extras_1.2-1_i386.deb new
dpkg -e old/scalix-iconv-extras_1.2-1_i386.deb new/DEBIAN
vi new/DEBIAN/preinst
# ... Zeile 3 korrigieren
if [ -n "$1" ]; then
# ...
vi new/DEBIAN/postrm
# ... Zeile 2 korrigieren
if [ -z "$1" ]; then
# ...
# Jetzt das korrigierte Paket bauen
dpkg -b new scalix-iconv-extras_1.2-1_i386.deb
# Fertig :-)
dpkg -r scalix-iconv-extras
dpkg -i scalix-iconv-extras_1.2-1_i386.deb
In 11.4.3 musste ich die Apache Konfiguration fixen, da Scalix die Konfigfiles umbenannt hat, aber das nicht im entsprechendem Setup-File aktualisiert hat.
scx:/etc/apache2/conf.d# grep 'ajp/' scal* scalix-tomcat-connector.conf:#Include /etc/opt/scalix-tomcat/connector/ajp/instance-*.conf scalix-tomcat-connector.conf:Include /etc/opt/scalix-tomcat/connector/ajp/app-*.conf
Das Update-Script scx-update.sh habe ich unter /usr/src liegen, da ich dort auch die verschiedenen scalix-sourcen installiert habe:
scx:/usr/src# ls scalix-11.3.0-U1-GA-unsupported-debian-intel.bin scalix-11.4.0-GA-unsupported-debian-intel.bin scalix-debian-11.3.0-GA/ scalix-debian-11.4.0-GA/ scx-install.sh* scx-update.sh*
Hier ist das Scalix Update-Script. /usr/src/scx-update.sh
#!/bin/sh
# Scalix 11.x update script
# Author: neobiker
# Version: $Id: scx-update.sh,v 1.6 2009/02/04 17:30:28 root Exp root $
scalix11version=11.4.6
dbpwd=""
ldappwd=""
# load and decompress scalix packages
scalix11downloadurl="http://downloads.scalix.com/.community/${scalix11version}/scalix-${scalix11version}-GA-unsupported-debian-intel.bin"
scalix11bin=`basename $scalix11downloadurl`
scalix11dir=scalix-debian-${scalix11version}-GA
usage ()
{
cat << EOF
Usage: $0 [-c|-i] # update scalix packages with: dpkg -i -E <package>
Options are:
-c configure scalix, don't update/install packages
-i (re-)install scalix packages with: dpkg -i <package>
EOF
exit 0
}
# Initialise some settings
# get scalix pakage filenames: main_files, app_files, other_files
# define config files etc.
scx_initvars ()
{
scx_main="server postgres"
scx_apps="tomcat- tomcat_ swa sac mobile platform res sis"
# Extract and install packages
if [ ! -e $scalix11dir ]; then
# Download Scalix 11
if [ ! -e $scalix11bin ]; then
cd $src_dir
wget -N $scalix11downloadurl
fi
sh ./$scalix11bin
fi
cd $scalix11dir/software/scalix_server/
if [ `ls -1 scalix-*.deb 2>/dev/null | wc -l` -gt 0 ] ; then
for f in ${scx_main}; do
main_files="${main_files} "`ls scalix-${f}*.deb`
dropme="${dropme} | grep -v $f"
done
for f in ${scx_apps}; do
app_files="${app_files} "`ls scalix-${f}*.deb`
dropme="${dropme} | grep -v $f"
done
other_files=`eval "ls -1 scalix-*.deb ${dropme}"`
pid=$$
host=$(hostname)
fqdn=$(hostname -f)
short=${host:0:1}${host: -1:1}
base=/var/opt/scalix/${short}
config_files="${base}/webmail/swa.properties \
${base}/caa/scalix.res/config/ubermanager.properties \
${base}/res/config/res.properties \
${base}/platform/platform.properties \
${base}/mobile/mobile.properties \
${base}/sis/sis.properties"
else
echo 'Sorry, no scalix-\*.deb packages found.'
echo "Please change to the directory which contains the files and try again."
exit 1
fi
}
# modify scalix deb packages (for lenny)
fix_scalix_debs ()
{
deb=`/bin/ls -1 scalix-${1}*.deb`
if [ -e "$deb" ]; then
[ -d old ] || mkdir old
[ -d new_$1 ] && rm -rf new_$1
[ -d new_$1/DEBIAN ] || mkdir -p new_$1/DEBIAN
[ -e old/$deb ] || cp $deb old/$deb
dpkg -x old/$deb new_$1
dpkg -e old/$deb new_$1/DEBIAN
case $1 in
iconv)
file=new_$1/DEBIAN/preinst
cat $file | sed -e 's/ "\$1" -gt 1 / -n "\$1" /g' >$file.neu
mv $file.neu $file
chmod a+x $file
file=new_$1/DEBIAN/postrm
cat $file | sed -e 's/ "\$1" -eq 0 / -z "\$1" /g' >$file.neu
mv $file.neu $file
chmod a+x $file
dpkg -b new_$1 $deb
;;
server)
file=new_$1/DEBIAN/control
cat $file | sed -e 's/libsasl2,/libsasl2-2,/g' \
-e 's/libmilter[^,]*,//g' \
-e 's/libstdc++2[^,]*,//g' >$file.neu
mv $file.neu $file
file=new_$1/DEBIAN/postinst
cat $file | sed -e "s#OMLOGFILE='~/sys/install/log'#OMLOGFILE='~/sys/install/log';#g" >$file.neu
mv $file.neu $file
chmod a+x $file
dpkg -b new_$1 $deb
;;
postgres)
file=new_$1/DEBIAN/control
cat $file | sed -e 's/| postgresql-client-.\..//g' \
-e 's/| postgresql-.\..//g' >$file.neu
mv $file.neu $file
dpkg -b new_$1 $deb
;;
*)
;;
esac
fi
}
apache_config ()
{
# Setup Apache
file=/etc/apache2/conf.d/scalix-web-client.conf
[ -e $file ] || ln -s /opt/scalix/global/httpd/scalix-web-client.conf $file
cat << EOT > /etc/apache2/conf.d/scalix-access.conf
<Location />
Allow from all
</Location>
EOT
file=/etc/opt/scalix-tomcat/connector/ajp/instance-$mnode.conf
if [ ! -e $file ]; then
echo 'Include /etc/opt/scalix-tomcat/connector/ajp/app-*.conf' > $file
fi
files="/etc/opt/scalix-tomcat/connector/ajp/*-$mnode*.conf \
/etc/opt/scalix-tomcat/connector/jk/*-$mnode*.conf"
for file in $files; do
if [ -e $file ]; then
sed -e 's;<VirtualHost;#<VirtualHost;g' \
-e 's;</VirtualHost;#</VirtualHost;g' \
$file > $file.neu
mv $file.neu $file
fi
done
}
scx_update ()
{
echo ""
echo "Removing Scalix applications:"
for file in ${app_files}; do
pkgs="${pkgs} "`scx_pkgname ${file}`
done
echo "removing ${pkgs}"
aptitude remove ${pkgs}
echo "Updating Scalix Server"
dpkg -i --force-overwrite $opt_update ${main_files}
dpkg -i --force-overwrite $opt_update ${other_files}
echo ""
echo "Reinstalling Scalix applications:"
for file in ${app_files}; do
pkg=`scx_pkgname ${file}`
echo "updating ${pkg}: ${file}"
if ! dpkg -i --force-overwrite ${file} ; then
echo ">>> Warning: dpkg returned an error. <<<"
echo ""
fi
done
echo "Scalix Configuration files must be reconfigured."
}
# configure scalix
scx_configure ()
{
if [ "x$dbpwd" == "x" ]; then
echo .
echo "Scalix configuration:"
echo "---------------------"
echo "Scalix DB-Password ? "
read dbpwd
fi
tomcatport=80
for file in ${config_files}; do
sed -e "s;%LOCALDOMAIN%;$ldomain;g" \
-e "s;%LOCALHOST%;$fqdn;g" \
-e "s;%IMAPHOST%;$fqdn;g" \
-e "s;%SMTPHOST%;$fqdn;g" \
-e "s;%DBHOST%;$fqdn:5733;g" \
-e "s;%DBPASSWD%;$dbpwd;g" \
-e "s;%LDAPPORT%;389;g" \
-e "s;http://%PLATFORMURL%:8080/api;http://$fqdn/api;g" \
-e "s;%PLATFORMURL%;http://$fqdn/api;g" \
-e "s;swa.platform.enabled=false;swa.platform.enabled=true;g" \
-e "s;__SECURED_MODE__;false;g" \
-e "s;ubermanager/__FQHN_HOST__@__KERBEROS_REALM__;;g" \
-e "s;__KERBEROS_REALM__;;g" \
-e "s;__FQHN_FOR_KDC_HOST__;;g" \
-e "s;__FQHN_QUERY_SERVER_NAME__;$fqdn;g" \
-e "s;__UBERMGR_USE_EXTERNAL_AUTH__;false;g" \
-e "s;__UBERMGR_ALLOW_EXTERNAL_AUTH__;false;g" \
-e "s;__UBERMGR_MAXLIST_SIZE__;100;g" \
-e "s;__UBERMGR_MAIL_DOMAINS_LIST__;$ldomain;g" \
-e "s;__UBERMGR_EXTERNAL_DOMAIN_AUTH_LIST__;;g" \
-e "s;__CONFIGURED__;true;g" \
-e "s;__FQHN_FOR_UBERMANAGER__;$fqdn;g" \
-e "s;__TOMCAT_PORT__;$tomcatport;g" \
-e "s;localhost;$fqdn;g" \
-e "s;%INDEX-WHITELIST%;$fqdn;g" \
-e "s;%SEARCH-WHITELIST%;$fqdn;g" \
-e "s;%INDEXADMIN-WHITELIST%;$fqdn;g" \
-e "s;%SIS-LANGUAGE%;German;g" \
${file} > ${file}.new
mv $file.new $file
done
# some (optional) GERMAN settings
for file in ${config_files}; do
sed -e "s;ubermanager.console.defaultCountry=US;ubermanager.console.defaultCountry=DE;g" \
-e "s;ubermanager.console.defaultLanguage=AMERICAN;ubermanager.console.defaultLanguage=GERMAN;g" \
-e "s;swa.user.locale=en_US;swa.user.locale=de_DE;g" \
-e "s;swa.user.preferredDateTimeFormat=1;swa.user.preferredDateTimeFormat=2;g" \
-e "s;swa.user.dateSeparatorChar=/;swa.user.dateSeparatorChar=.;g" \
-e "s;swa.user.weekStart=0;swa.user.weekStart=1;g" \
-e "s;swa.user.defaultCalendarView=0;swa.user.defaultCalendarView=2;g" \
${file} > ${file}.new
mv $file.new $file
done
# If SAC Login doesn't work, try this
# Write Ldappassword to psdata
file=${base}/caa/scalix.res/config/psdata
if [ ! -e ${file} ]; then
if [ "x$ldappwd" == "x" ]; then
echo "Scalix LDAP-Password [DB-Password]? "
read ldappwd
[ -z "$ldappwd" ] && ldappwd=$dbpwd
fi
echo "${ldappwd}" > ${file}
chown root:root ${file}
chmod 400 ${file}
ommodu sxqueryadmin -p $ldappwd
fi
}
# backup scalix config files
scx_backup_config ()
{
for f in ${config_files}; do
mkdir -p `dirname ${base}/scalix-config-backup-${pid}${f}`
cp ${f} ${base}/scalix-config-backup-${pid}${f}
cp ${f} ${f}.bak
done
}
# show differences to new config files
scx_diff_config ()
{
for file in ${config_files}; do
sed -e 's/#.*//g' \
-e '/^$/ D' \
${file} | sort > ${file}.new
sed -e 's/#.*//g' \
-e '/^$/ D' \
${base}/scalix-config-backup-${pid}${file} | sort > ${file}.old
if ! diff -q ${file}.old ${file}.new; then
echo "-------------------------------------------------"
echo "Check changes in ${file}:"
diff ${file}.old ${file}.new
echo ">>> Restore old Configfile [y] ?"
read a
if [ -z "$a" -o "$a" == "y" -o "$a" == "Y" ]; then
cp ${file} ${file}.new.update
cp ${base}/scalix-config-backup-${pid}${file} ${file}
echo "restored ${file} !!! <<<"
fi
echo "-------------------------------------------------"
echo ""
fi
done
echo ">>> Remove temp. Backupfiles (${base}/scalix-config-backup-${pid}) [y] ?"
read a
if [ -z "$a" -o "$a" == "y" -o "$a" == "Y" ]; then
rm -rf ${base}/scalix-config-backup-${pid}
echo "${base}/scalix-config-backup-${pid} deleted"
fi
}
scx_tomcat_restart ()
{
echo "Scalix tomcat restart..."
/etc/init.d/apache2 restart
/etc/init.d/scalix-tomcat restart
}
scx_restart ()
{
echo "Scalix restart..."
for f in /etc/rc1.d/K*scalix* /etc/rc1.d/K*apache2; do $f stop 2>/dev/null; done
for f in /etc/rc2.d/S*apache2 /etc/rc2.d/S*scalix*; do $f start; done
echo "Scalix restarted."
}
# get pakage name (used by dpkg -r <package>)
scx_pkgname ()
{
dpkg -I $1 | awk '/Package/ {print $2}'
}
# set script options
opt_update="-E"
while getopts "chi" option
do
case $option in
c) opt_configure=1
;;
h) usage
;;
i) opt_update=""
;;
*) usage
;;
esac
done
# Update scalix pakages:
# backup config-files
# update scalix pakages: Web applications need 'remove' first
# reconfigure scalix
scx_initvars
scx_backup_config
fix_scalix_debs iconv
fix_scalix_debs server
fix_scalix_debs postgres
[ -z "$opt_configure" ] && scx_update
scx_configure
apache_config
scx_diff_config
#scx_tomcat_restart
scx_restart
Das Skript konfiguriert Scalix, z.B. nach einem update, da die Konfig-Files beim Update überschrieben werden.
Siehe auch mein (Re-)Installationsskript für Scalix.