[scodoc-devel] [SVN] Scolar : [1671] Script d'installation pour Debian 9/stretch (a tester )

eviennet at lipn.univ-paris13.fr eviennet at lipn.univ-paris13.fr
Dim 16 Juil 21:46:43 CEST 2017


Une pièce jointe HTML a été nettoyée...
URL: https://listes.univ-paris13.fr/pipermail/scodoc-devel/attachments/20170716/2cc45587/attachment.htm 
-------------- section suivante --------------
Modified: branches/ScoDoc7/config/config.sh
===================================================================
--- branches/ScoDoc7/config/config.sh	2017-07-11 09:42:07 UTC (rev 1670)
+++ branches/ScoDoc7/config/config.sh	2017-07-16 19:46:43 UTC (rev 1671)
@@ -17,8 +17,11 @@
 # psql command: if various versions installed, force the one we want:
 debian_version=$(cat /etc/debian_version)
 debian_version=${debian_version// /}
-if [ ${debian_version:0:1} = "8" ] 
+if [ ${debian_version:0:1} = "9" ]
 then
+ PSQL=/usr/lib/postgresql/9.6/bin/psql
+elif [ ${debian_version:0:1} = "8" ] 
+then
  PSQL=/usr/lib/postgresql/9.4/bin/psql
 elif [ ${debian_version:0:1} = "7" ] 
 then
@@ -40,7 +43,7 @@
 export POSTGRES_PORT=5432
 
 # Utilise par le script de reset du mot de passe: 
-if [ ${debian_version:0:1} = "7" ] || [ ${debian_version:0:1} = "8" ]
+if [ ${debian_version:0:1} = "7" ] || [ ${debian_version:0:1} = "8" ] || [ ${debian_version:0:1} = "9" ]
 then
   export ZOPE_VERSION=2.13
 else

Modified: branches/ScoDoc7/config/etc/firehol.conf
===================================================================
--- branches/ScoDoc7/config/etc/firehol.conf	2017-07-11 09:42:07 UTC (rev 1670)
+++ branches/ScoDoc7/config/etc/firehol.conf	2017-07-16 19:46:43 UTC (rev 1671)
@@ -1,16 +1,16 @@
 #
 # Exemple de configuration pare-feu firehol minimal pour un serveur ScoDoc
 #
-# Suppose que l'interface reseau Internet est eth0: a adapter !!!
+# Suppose que l'interface reseau Internet est XXX_INTERFACE_XXX
 #
-# E. Viennet, juin 2008
+# E. Viennet, juin 2008, jul 2017
 #
 
 version 5
 
 FIREHOL_LOG_MODE="ULOG"
 
-interface eth0 internet
+interface XXX_INTERFACE_XXX internet
 	protection strong
 	client all accept  # plutot gentil, a adapter a vos besoins (attention a ntp et aux mises a jour)
 	server ssh accept

Modified: branches/ScoDoc7/config/install_debian8.sh
===================================================================
--- branches/ScoDoc7/config/install_debian8.sh	2017-07-11 09:42:07 UTC (rev 1670)
+++ branches/ScoDoc7/config/install_debian8.sh	2017-07-16 19:46:43 UTC (rev 1671)
@@ -147,12 +147,13 @@
 read ans
 if [ "$(norm_ans "$ans")" = 'Y' ]
 then
+    network_interface="eth0"
     echo 'Installation du firewall IP (voir /etc/firehol/firehol.conf)'
     echo "Attention: suppose que l'interface reseau vers Internet est eth0"
     echo "  si ce n'est pas le cas, editer /etc/firehol/firehol.conf"
     echo "  et relancer: /etc/init.d/firehol restart"
     echo
-    cp $SCODOC_DIR/config/etc/firehol.conf /etc/firehol/
+    cat $SCODOC_DIR/config/etc/firehol.conf | sed "s/XXX_INTERFACE_XXX/${network_interface}/" > /etc/firehol/firehol.conf
     mv /etc/default/firehol /etc/default/firehol.orig
     cat /etc/default/firehol.orig | sed 's/START_FIREHOL=NO/START_FIREHOL=YES/' > /tmp/firehol && mv /tmp/firehol /etc/default/firehol
     # mise a jour RESERVED_IPS (le script fournit en Deb 7 get-iana est buggy)

Added: branches/ScoDoc7/config/install_debian9.sh
===================================================================
--- branches/ScoDoc7/config/install_debian9.sh	                        (rev 0)
+++ branches/ScoDoc7/config/install_debian9.sh	2017-07-16 19:46:43 UTC (rev 1671)
@@ -0,0 +1,281 @@
+#!/bin/bash
+
+#
+# ScoDoc: install third-party software necessary for our installation
+# starting for a minimal Debian (Stretch, 9.0) install.
+#
+# E. Viennet, Jun 2008, Apr 2009, Sept 2011, Sept 2013, Nov 2013, Mar 2017, Jul 2017
+#
+
+source config.sh
+source utils.sh
+
+check_uid_root $0
+
+PYTHON=/opt/zope213/bin/python
+
+# ------------ Safety checks
+if [ ${debian_version:0:1} != "9" ]
+then
+   echo "Version du systeme Linux Debian incompatible"
+   exit 1
+fi
+
+if [ $(arch) != "x86_64" ]
+then
+   echo "Version du systeme Linux Debian incompatible (pas X86 64 bits)"
+   exit 1
+fi
+
+# ------------ Permissions
+# source dir should be writable by scodoc to write bytecode files
+chgrp www-data $SCODOC_DIR $SCODOC_DIR/ZopeProducts/*
+chmod g+w $SCODOC_DIR $SCODOC_DIR/ZopeProducts/*
+
+chgrp -R www-data "${SCODOC_DIR}"/static/photos
+chmod -R g+w "${SCODOC_DIR}"/static/photos
+
+# ------------ LOCALES
+echo 
+echo '---- Configuration des locales...'
+echo
+
+if [ ! -e /etc/locale.gen ]
+then
+touch /etc/locale.gen
+fi
+
+
+for locname in en_US.UTF-8 en_US.ISO-8859-15 en_US.ISO-8859-1
+do
+  outname=$(echo ${locname//-/} | tr '[A-Z]' '[a-z]')
+  if [ $(locale -a | egrep -i ^${outname}$ | wc -l) -lt 1 ]
+  then
+    echo adding $locname
+    echo "$locname ${locname##*.}" >> /etc/locale.gen
+  fi
+done
+
+/usr/sbin/locale-gen --keep-existing 
+
+
+if [ "$LANG" != "en_US.UTF-8" ]
+then
+   # ceci est necessaire a cause de postgresql 8.3 qui 
+   # cree son cluster lors de l'install avec la locale par defaut !
+   echo "Attention: changement de la locale par defaut"
+   mv /etc/default/locale /etc/default/locale.orig
+   echo "LANG=\"en_US.UTF-8\"" > /etc/default/locale
+   export LANG=en_US.UTF-8
+fi
+echo 'Done.'
+
+# ------------ FIX pour passage Debian 7 -> Debian 8
+chsh -s /bin/sh www-data
+
+# ------------ AJOUT DES PAQUETS NECESSAIRES
+apt-get update
+apt-get -y install subversion curl cracklib-runtime
+apt-get -y install apache2 ssl-cert 
+apt-get -y install firehol
+apt-get -y install insserv
+apt-get -y install postgresql-9.6 postgresql-client-9.6
+apt-get -y install graphviz
+
+# ------------ INSTALL DES EXTENSIONS PYTHON (2.7)
+
+apt-get -y install python-jaxml 
+apt-get -y install python-psycopg2 
+apt-get -y install python-pyrss2gen 
+apt-get -y install python-imaging python-reportlab 
+apt-get -y install python-cracklib # was python-crack
+#apt-get -y install python-pyparsing
+apt-get -y install python-beautifulsoup
+
+apt-get -y install python-egenix-mxtools python-egenix-mxdatetime
+
+# pydot est un probleme: todo: rececrire l'affichage du graphe sans pydot
+# ou contribuer une versions sans bug de pydot
+# ou encore simplement eviter d'utiliser graph_from_edges ?
+#
+# python-pydot is currently bugged in Debian 5, 6, 7, 8: install our 0.9.10
+# Le probleme: pydot v > 1 a change l'API : resultat de get_node est une liste. Resolu par sco_utils.pydot_get_node
+# pydot 1.0.25 bug avec python 2.4 (get_node_list() renvoie toujours [])
+#       1.0.3 idem (voir misc/testpydot.py)
+#       1.2.4 / python2.7: bug graph_from_edges toujours là 
+#       voir https://bugs.launchpad.net/ubuntu/+source/pydot/+bug/490015
+echo '\nInstallation de pydot\n'
+
+apt-get -y remove python-pydot
+# Version ancienne de pyparsing requise par pydot
+apt-get -y remove python-pyparsing
+/opt/zope213/bin/pip install pyparsing==1.5.7
+(cd /tmp; tar xfz $SCODOC_DIR/config/softs/pydot-0.9.10.tar.gz)
+(cd /tmp/pydot-0.9.10;  $PYTHON setup.py install)
+
+
+# UNUSED BY ScoDoc 7:
+# SOFTS="$SCODOC_DIR/config/softs"
+
+# ------------
+SVNVERSION=$(cd ..; svnversion)
+SVERSION=$(curl --silent http://scodoc.iutv.univ-paris13.fr/scodoc-installmgr/version?mode=install\&svn=$SVNVERSION)
+echo $SVERSION > $SCODOC_DIR/config/scodoc.sn
+
+
+# ------------ PYEXCELERATOR
+# inutile en Debian 8 car dans l'image ScoDoc
+#echo
+#echo 'Installation de pyExcelerator'
+#echo
+#(cd /tmp; tar xfz $SCODOC_DIR/config/softs/pyExcelerator-0.6.3a.patched.tgz)
+#(cd /tmp/pyExcelerator-0.6.3a.patched; $PYTHON setup.py install)
+#echo 'Done.'
+
+# ------------ POSTFIX
+echo 
+echo "ScoDoc a besoin de pouvoir envoyer des messages par mail."
+echo -n "Voulez vous configurer la messagerie (tres recommande) ? (y/n) [y] "
+read ans
+if [ "$(norm_ans "$ans")" != 'N' ]
+then
+    apt-get -y install postfix
+fi
+
+# ------------ CONFIG FIREWALL
+echo 
+echo "Le firewall aide a proteger votre serveur d'intrusions indesirables."
+echo -n "Voulez vous installer un firewall minimal (firehol) ? (y/n) [n] "
+read ans
+if [ "$(norm_ans "$ans")" = 'Y' ]
+then
+    echo 'Installation du firewall IP (voir /etc/firehol/firehol.conf)'
+    echo "Debian 9 n'utilise plus eth0 mais des noms fixes, comme enp0s3"
+    echo "Vos interfaces reseau actuelles sont:"
+    ip a
+    echo -n "Nom de votre interface reseau vers Internet ? "
+    read network_interface    
+    echo "Attention: configure l'interface reseau vers Internet  ${network_interface}"
+    echo "  si ce n'est pas le cas, editer /etc/firehol/firehol.conf"
+    echo "  et relancer: /etc/init.d/firehol restart"
+    echo
+    cat $SCODOC_DIR/config/etc/firehol.conf | sed "s/XXX_INTERFACE_XXX/${network_interface}/" > /etc/firehol/firehol.conf
+    mv /etc/default/firehol /etc/default/firehol.orig
+    cat /etc/default/firehol.orig | sed 's/START_FIREHOL=NO/START_FIREHOL=YES/' > /tmp/firehol && mv /tmp/firehol /etc/default/firehol
+    # mise a jour RESERVED_IPS (le script fournit en Deb 7 get-iana est buggy)
+    echo yes |  $SCODOC_DIR/config/softs/get-iana.sh
+fi
+
+# Nota: after this point, the network may be unreachable 
+# (if firewall config is wrong)
+
+# ------------ CONFIG APACHE
+a2enmod ssl
+a2enmod proxy
+a2enmod proxy_http
+a2enmod rewrite
+
+echo 
+echo "La configuration du serveur web va modifier votre installation Apache pour supporter ScoDoc."
+echo -n "Voulez vous configurer le serveur web Apache maintenant (tres conseille) ? (y/n) [y] "
+read ans
+if [ "$(norm_ans "$ans")" != 'N' ]
+then
+    echo "Configuration d'Apache"
+    server_name=""
+    while [ -z $server_name ]
+    do
+        echo "Le nom de votre serveur doit normalement etre connu dans le DNS."
+	echo -n "Nom complet de votre serveur (exemple: notes.univ.fr): "
+	read server_name
+    done
+    # --- CERTIFICATS AUTO-SIGNES
+    echo 
+    echo "Il est possible d'utiliser des certificats cryptographiques"
+    echo "auto-signes, qui ne seront pas reconnus comme de confiance"
+    echo "par les navigateurs, mais offrent une certaine securite."
+    echo -n 'Voulez vous generer des certificats ssl auto-signes ? (y/n) [y] '
+    read ans
+    if [ "$(norm_ans "$ans")" != 'N' ]
+    then
+        # attention: utilise dans scodoc-site-ssl.orig
+	    ssl_dir=/etc/apache2/scodoc-ssl 
+    	if [ ! -e $ssl_dir ]
+	    then
+          mkdir $ssl_dir
+	    fi
+	    /usr/sbin/make-ssl-cert /usr/share/ssl-cert/ssleay.cnf $ssl_dir/apache.pem
+        cert_status=$?
+    else
+        cert_status=-1
+    fi
+    # ---
+    echo 'generation de /etc/apache2/sites-available/scodoc-site-ssl'
+    cat $SCODOC_DIR/config/etc/scodoc-site-ssl-apache2.4.orig | sed -e "s:YOUR\.FULL\.HOST\.NAME:$server_name:g" > /etc/apache2/sites-available/scodoc-site-ssl.conf
+    echo 'activation du site...'
+    a2ensite scodoc-site-ssl
+
+    echo 'Remplacement du site Apache par defaut (sic ! old saved as .bak)'
+    fn=/etc/apache2/sites-available/000-default.conf
+    if [ -e $fn ]
+    then
+       mv $fn $fn.bak
+    fi
+    cp $SCODOC_DIR/config/etc/scodoc-site.orig $fn
+
+    if [ -z "$(grep Listen /etc/apache2/ports.conf | grep 443)" ]
+    then
+      echo 'adding port 443'
+      echo 'Listen 443' >> /etc/apache2/ports.conf
+    fi
+
+    echo 'configuring Apache proxy'
+    mv /etc/apache2/mods-available/proxy.conf /etc/apache2/mods-available/proxy.conf.bak
+    cat > /etc/apache2/mods-available/proxy.conf <<EOF
+<IfModule mod_proxy.c>
+# Proxy config for ScoDoc default installation
+ProxyRequests Off
+  <ProxyMatch http://localhost:8080>
+          Order deny,allow
+          Allow from all
+  </ProxyMatch>
+</IfModule>
+EOF
+
+fi
+
+service apache2 restart
+
+
+# ------------ CONFIG SERVICE SCODOC
+echo 
+echo "Installer le service scodoc permet de lancer automatiquement le serveur au demarrage."
+echo -n "Voulez vous installer le service scodoc ? (y/n) [y] "
+read ans
+if [ "$(norm_ans "$ans")" != 'N' ]
+then
+    echo 'Installation du demarrage automatique de ScoDoc'
+    cp $SCODOC_DIR/config/etc/scodoc /etc/init.d/
+    insserv scodoc
+fi
+
+# ------------ THE END
+echo
+echo "Installation terminee."
+echo
+echo "Vous pouvez maintenant creer la base d'utilisateurs avec ./create_user_db.sh"
+echo "puis creer un departement avec  ./create_dept.sh"
+echo "Ou bien restaurer vos donnees a partir d'une ancienne installation a l'aide du script restore_scodoc_data.sh"
+echo "(voir https://trac.lipn.univ-paris13.fr/projects/scodoc/wiki/MigrationDonneesScoDoc)"
+echo
+
+
+if [ "${cert_status}" != 0 ]
+then
+    echo "Attention: le serveur Web Apache n'a pas de certificat."
+    echo "Il est probable qu'il ne fonctionne pas."
+    echo "Installez vos certificats ou generez provisoirement des certificats autosignes"
+    echo "avec la commande: /usr/sbin/make-ssl-cert /usr/share/ssl-cert/ssleay.cnf $ssl_dir/apache.pem"
+    echo
+fi
+


Property changes on: branches/ScoDoc7/config/install_debian9.sh
___________________________________________________________________
Added: svn:executable
   + *


Plus d'informations sur la liste de diffusion scodoc-devel