for creole's zephir2 branch
This commit is contained in:
28
upgrade/pre_download/00-common
Executable file
28
upgrade/pre_download/00-common
Executable file
@ -0,0 +1,28 @@
|
||||
#!/bin/bash
|
||||
|
||||
BACKUP_DIR="/var/backup/creolelocal"
|
||||
echo -e "\n# personnalisations locales (dictionnaires/patch/templates)"
|
||||
echo -e " Sauvegarde dans ${BACKUP_DIR}"
|
||||
mkdir -p ${BACKUP_DIR}/distrib
|
||||
mkdir -p ${BACKUP_DIR}/dicos
|
||||
mkdir -p ${BACKUP_DIR}/patch
|
||||
# dictionnaires locaux
|
||||
/bin/cp -rf /usr/share/eole/creole/dicos/local/*.xml ${BACKUP_DIR}/dicos/ >/dev/null 2>&1
|
||||
# si enregistré sur Zéphir : suppression des dictionnaires locaux/de variante
|
||||
# limite les problèmes avec creoled (cf https://dev-eole.ac-dijon.fr/issues/9787)
|
||||
/usr/bin/enregistrement_zephir --check >/dev/null
|
||||
if [ $? -eq 0 ]
|
||||
then
|
||||
/bin/rm -f /usr/share/eole/creole/dicos/local/*.xml
|
||||
/bin/rm -f /usr/share/eole/creole/dicos/variante/*.xml
|
||||
fi
|
||||
# patchs
|
||||
/bin/cp -rf /usr/share/eole/creole/patch/*.patch ${BACKUP_DIR}/patch/ >/dev/null 2>&1
|
||||
# templates non installés par un paquet (variante et locaux)
|
||||
for TMPL in `ls /usr/share/eole/creole/distrib/*`
|
||||
do
|
||||
dpkg -S $TMPL >/dev/null 2>&1
|
||||
if [ $? -ne 0 ];then
|
||||
/bin/cp -rf $TMPL ${BACKUP_DIR}/distrib/
|
||||
fi
|
||||
done
|
3
upgrade/pre_download/00-dpkg_options
Executable file
3
upgrade/pre_download/00-dpkg_options
Executable file
@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo 'Dpkg::Options {"--force-confdef"; "--force-confmiss";};' > /etc/apt/apt.conf.d/99upgradeEOLE
|
10
upgrade/pre_download/01-amon
Executable file
10
upgrade/pre_download/01-amon
Executable file
@ -0,0 +1,10 @@
|
||||
#!/bin/bash
|
||||
# Sauvegarde des bases de filtres obligatoires (#8621)
|
||||
DB="$(CreoleGet container_path_proxy '')/var/lib/blacklists/db"
|
||||
for filter in 'adult' 'redirector';do
|
||||
if [ -d $DB/$filter ];then
|
||||
mkdir -p /tmp/db/$filter
|
||||
cp -f $DB/$filter/urls /tmp/db/$filter/urls
|
||||
cp -f $DB/$filter/domains /tmp/db/$filter/domains
|
||||
fi
|
||||
done
|
6
upgrade/pre_download/01-bacula
Executable file
6
upgrade/pre_download/01-bacula
Executable file
@ -0,0 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Suppression des anciens fichiers bacula (#14933)
|
||||
if [ -d /etc/bacula/baculafichiers.d ];then
|
||||
rm -rf /etc/bacula/baculafichiers.d
|
||||
fi
|
27
upgrade/pre_download/01-horus
Executable file
27
upgrade/pre_download/01-horus
Executable file
@ -0,0 +1,27 @@
|
||||
#!/bin/bash
|
||||
|
||||
if dpkg-query -s eole-horus-backend > /dev/null 2>&1;then
|
||||
python -c """import sys
|
||||
from horus import backend
|
||||
from ldap import INVALID_CREDENTIALS
|
||||
try:
|
||||
for user in backend.ldapsearch('(&%s(sambaLogonScript=*))' % backend.user_filters):
|
||||
print 'correction du compte %s' % user[1]['uid'][0]
|
||||
backend.ldapmodify(user[0], 'sambaLogonScript', '')
|
||||
except INVALID_CREDENTIALS:
|
||||
print
|
||||
print 'Erreur le mot de passe ldap est désynchronisé'
|
||||
print 'Relancer un reconfigure pour corriger'
|
||||
print
|
||||
sys.exit(1)
|
||||
"""
|
||||
fi
|
||||
|
||||
# Sauvegarde des fichiers Interbase (#11070)
|
||||
if [ -f /opt/interbase/isc4.gdb ];then
|
||||
mkdir -p /tmp/interbase
|
||||
cp -f /opt/interbase/isc4.gdb /tmp/interbase
|
||||
cp -f /opt/interbase/ib_license.dat /tmp/interbase 2>/dev/null
|
||||
fi
|
||||
|
||||
exit 0
|
16
upgrade/pre_download/03-zephir-client
Executable file
16
upgrade/pre_download/03-zephir-client
Executable file
@ -0,0 +1,16 @@
|
||||
#!/bin/bash
|
||||
|
||||
/usr/bin/enregistrement_zephir --check >/dev/null 2>&1
|
||||
|
||||
if [ $? -eq 0 ]
|
||||
then
|
||||
BACKUP_DIR=/var/lib/zephir_backup/
|
||||
mkdir -p $BACKUP_DIR
|
||||
# copie temporaire de la configuration d'enregistrement
|
||||
cp -f /usr/lib/python2.7/dist-packages/zephir/zephir_conf/zephir_conf.py $BACKUP_DIR
|
||||
# configuration ssh de l'utilisateur uucp
|
||||
cp -rpf /var/spool/uucp/.ssh $BACKUP_DIR
|
||||
cp -rpf /etc/uucp $BACKUP_DIR
|
||||
fi
|
||||
|
||||
exit 0
|
18
upgrade/pre_download/10-rsyslog
Executable file
18
upgrade/pre_download/10-rsyslog
Executable file
@ -0,0 +1,18 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Remove autogenerated configuration files
|
||||
DO_NOT_TOUCH_REGEXP='eole_templates\|default'
|
||||
|
||||
for conf in $(find /etc/rsyslog.d/ -type f -name '*.conf')
|
||||
do
|
||||
if echo "${conf}" | grep -qs "${DO_NOT_TOUCH_REGEXP}"
|
||||
then
|
||||
# Do nothing
|
||||
continue
|
||||
fi
|
||||
if ! dpkg -S "${conf}" > /dev/null 2>&1
|
||||
then
|
||||
echo "Remove generated rsyslog configuration file: “${conf}”"
|
||||
rm -f "${conf}"
|
||||
fi
|
||||
done
|
6
upgrade/pre_download/10-sympa
Executable file
6
upgrade/pre_download/10-sympa
Executable file
@ -0,0 +1,6 @@
|
||||
#!/bin/sh
|
||||
|
||||
if CreoleGet container_ip_reseau > /dev/null 2>&1
|
||||
then
|
||||
CreoleRun 'rm -f /etc/apache2/conf.d/sympa' reseau
|
||||
fi
|
107
upgrade/pre_download/90-fill-apt-cache
Executable file
107
upgrade/pre_download/90-fill-apt-cache
Executable file
@ -0,0 +1,107 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
ISO_DIR='/var/lib/eole/iso'
|
||||
|
||||
ISO_IMAGE=$(ls -1 ${ISO_DIR}/*.iso 2>/dev/null || true)
|
||||
|
||||
APT_CACHER_DIR='/var/cache/apt-cacher-ng'
|
||||
APT_DIR='/var/cache/apt/archives'
|
||||
|
||||
MOUNT_POINT=
|
||||
|
||||
## Called at the end of the file
|
||||
main() {
|
||||
if [ $(echo "${ISO_IMAGE}" | wc -l) -gt 1 ]
|
||||
then
|
||||
die "more than one ISO image detected: ${ISO_IMAGE}"
|
||||
fi
|
||||
|
||||
if [ -d "${APT_CACHER_DIR}" ]
|
||||
then
|
||||
populate_apt_cacher_cache
|
||||
else
|
||||
populate_apt_cache
|
||||
fi
|
||||
}
|
||||
|
||||
populate_apt_cache() {
|
||||
MOUNT_POINT='/media/cdrom'
|
||||
mount_iso "${ISO_IMAGE}" "${MOUNT_POINT}"
|
||||
|
||||
if find "${MOUNT_POINT}" -type f -name '*.deb' | xargs -I{} cp {} "${APT_DIR}"
|
||||
then
|
||||
echo "APT cache directory populated"
|
||||
else
|
||||
die "unablo to populate APT cache"
|
||||
fi
|
||||
}
|
||||
|
||||
populate_apt_cacher_cache() {
|
||||
|
||||
MOUNT_POINT="${APT_CACHER_DIR}/_import"
|
||||
mount_iso "${ISO_IMAGE}" "${MOUNT_POINT}"
|
||||
APT_CACHER_IMPORT_LOG=/tmp/apt-cacher-import.log
|
||||
APT_CACHER_PORT=$(CreoleGet apt_cacher_port)
|
||||
|
||||
CURRENT_DISTRIB=$(lsb_release --codename --short)
|
||||
NEXT_DISTRIB=$(awk '/^Suite:/ {print $2}' "${MOUNT_POINT}/dists/stable/Release")
|
||||
TMP_SL=/tmp/next-apt-sources.list
|
||||
|
||||
# Build a temporary sources.list
|
||||
# EOLE references are OK
|
||||
cp /etc/apt/sources.list ${TMP_SL}
|
||||
sed -i -e "s,${CURRENT_DISTRIB},${NEXT_DISTRIB}," ${TMP_SL}
|
||||
|
||||
# Clean apt cache
|
||||
rm -f /var/cache/apt/*cache.bin
|
||||
rm -f /var/lib/apt/lists/*Packages
|
||||
rm -f /var/lib/apt/lists/*Sources
|
||||
|
||||
apt-get -o Dir::Etc::SourceList=${TMP_SL} update
|
||||
|
||||
IMPORT_URL="http://localhost:${APT_CACHER_PORT}/acng-report.html?abortOnErrors=aOe&doImport=Start+Import&calcSize=cs&asNeeded=an"
|
||||
|
||||
ERROR_PATTERN='(No appropriate files found in the _import directory|color=red)'
|
||||
wget -O "${APT_CACHER_IMPORT_LOG}" -q "${IMPORT_URL}"
|
||||
ERRORS=$(sed -n -E "/${ERROR_PATTERN}/ s,<[^>]*>,,gp" "${APT_CACHER_IMPORT_LOG}")
|
||||
if [ -n "${ERRORS}" ]
|
||||
then
|
||||
die "import log contains errors: ${ERRORS}"
|
||||
else
|
||||
echo "APT-CACHER cache populated"
|
||||
fi
|
||||
}
|
||||
|
||||
mount_iso() {
|
||||
ISO="${1}"
|
||||
MOUNT_POINT="$2"
|
||||
|
||||
[ -d "${MOUNT_POINT}" ] || mkdir "${MOUNT_POINT}"
|
||||
|
||||
if ! mount -o loop,ro "${ISO}" "${MOUNT_POINT}"
|
||||
then
|
||||
die "unable to mount “${ISO}”"
|
||||
fi
|
||||
}
|
||||
|
||||
die(){ echo 'Error:' $@ >&2; exit 1; }
|
||||
|
||||
_clean() {
|
||||
EXIT_CODE=$?
|
||||
|
||||
# Do not abort on failure as we are in SIGHANDLER
|
||||
set +e
|
||||
|
||||
# Make script idempotent
|
||||
umount "${MOUNT_POINT}" 2> /dev/null
|
||||
rmdir "${MOUNT_POINT}" 2> /dev/null
|
||||
|
||||
# Use main script exit code
|
||||
return ${EXIT_CODE}
|
||||
}
|
||||
|
||||
trap _clean EXIT
|
||||
|
||||
main $@
|
Reference in New Issue
Block a user