Préambule
Nous décrivons ici l'installation d'un esup-portail 3.2 avec mysql et frontal apache sur une debian 5.0 ou 6.0, sous forme d'une liste d'instructions shell le plus reproductible/automatisé possible.
Nous supposons que vous possédez une infrastructure en place avec un DNS, CAS et un serveur openLDAP en production.
Dans ce qui va suivre, notre machine s'appelle entergo-unpidf.univ-paris1.fr
Références
Cet article se base sur les articles :
- http://www.esup-portail.org/pages/viewpage.action?pageId=98730206
- http://www.esup-portail.org/display/ESUPMU/c%29+Installation
- http://www.esup-portail.org/display/ESUPMU/Installation+uPortal+v3+sur+une+centOS
Télécharger les packages de source
En tant qu'utilisateur root :
mkdir -p /usr/local/src cd /usr/local/src sudo wget http://apache.multidist.com/tomcat/tomcat-6/v6.0.33/bin/apache-tomcat-6.0.33.tar.gz sudo wget http://archive.apache.org/dist/ant/binaries/apache-ant-1.7.1-bin.tar.gz sudo wget https://sourcesup.cru.fr/frs/download.php/3562/esup-uPortal-3.2.4-esup-1.0.0-RC3.tar.gz echo '928a960268adf610a7d6fe5c4fcd0b20 *apache-tomcat-6.0.32.tar.gz' | md5sum -c - echo 'cc5777c57c4e8269be5f3d1dc515301c *apache-ant-1.7.1-bin.tar.gz' | md5sum -c - echo '17366476588f4bcaa3cc331232fc01b0 *esup-uPortal-3.2.4-esup-1.0.0-RC3.tar.gz' | md5sum -c -
Configurer le frontal apache
Créer /etc/apache2/sites-available/entergo-unpidf avec :
<VirtualHost *:80 > <Proxy balancer://entCluster> BalancerMember ajp://localhost:8009 route=ent1 retry=1 Order deny,allow </Proxy> ProxyPass /balancer-manager ! ProxyPass / balancer://entCluster/ stickysession=JSESSIONID nofailover=Off <Location /balancer-manager> SetHandler balancer-manager Order allow,deny Allow from xxx.univ-xxx.fr </Location> ServerName entergo-unpidf.univ-paris1.fr ServerAlias entergo-unpidf ErrorLog /var/log/apache2/entergo-unpidf-error.log CustomLog /var/log/apache2/entergo-unpidf-access.log combined # restreindre l'acces a certaines choses, notamment les web services <Location ~ "/(EsupMonitor|private|problems|services|monitor)"> Order allow,deny Allow from univ-paris1.fr </Location> # Interdit en mode non SSL <Location /jkstatus> Order allow,deny </Location> </VirtualHost>
Puis
sudo a2enmod proxy_balancer proxy_ajp sudo a2ensite entergo-unpidf sudo a2dissite 000-default sudo /etc/init.d/apache2 restart
Installer java
sudo apt-get install sun-java6-jdk
Configurer mysql
La base doit être en mode "insensible à la casse" pour respecter les standards SQL
cat <<EOF > /tmp/lower_case_table_names-esup.cnf [mysqld] lower_case_table_names=1 EOF sudo cp /tmp/lower_case_table_names-esup.cnf /etc/mysql/conf.d/ sudo /etc/init.d/mysql restart
Installer ant dans /usr/local
sudo tar xzC /usr/local/ -f /usr/local/src/apache-ant-1.7.1-bin.tar.gz sudo ln -s apache-ant-1.7.1 /usr/local/ant sudo ln -s ../ant/bin/ant /usr/local/bin/ant
Créer l'utilisateur esup
sudo adduser --system --group --shell /bin/bash esup sudo install -o esup -g esup -d /usr/local/esup
Installer tomcat dans /usr/local/esup
sudo -u esup tar xzC /usr/local/esup -f /usr/local/src/apache-tomcat-6.0.32.tar.gz sudo -u esup ln -s apache-tomcat-6.0.32 /usr/local/esup/tomcat
Installer esup-uPortal dans /usr/local/esup
sudo -u esup tar xzC /usr/local/esup -f /usr/local/src/esup-uPortal-3.2.4-esup-1.0.0-RC3.tar.gz sudo -u esup ln -s esup-uPortal-3.2.4-esup-1.0.0-RC3 /usr/local/esup/esup-package
Configurer esup-uPortal
cd /usr/local/esup/esup-package sudo -u esup cp build.sample.properties build.properties sudo -u esup perl -pi -e 's!^java_home=\S+!java_home=/usr/lib/jvm/java-6-sun!' build.properties sudo -u esup perl -pi -e 's!^server.home=\S+!server.home=/usr/local/esup/tomcat!' build.properties sudo -u esup cp config.sample.properties config.properties sudo -u esup perl -pi -e 's!^use.embedded.maven=\S+!use.embedded.maven=true!' config.properties
Puis configurer tomcat.* , esup.public.host , esup.ldap.* , esup.cas.* et esup.db.* dans config.properties :
# pour "ant _tomcat.init" : tomcat.reloadable=true tomcat.port.shutdown=8005 tomcat.port.http=8080 tomcat.port.jk=8009 ... esup.public.host=entergo-unpidf.univ-paris1.fr ... esup.ldap.url=ldap://ldap-test.univ-paris1.fr esup.ldap.baseDN=dc=univ-xxx,dc=fr esup.ldap.bindDN=cn=xxx,ou=xxx,dc=univ-xxx,dc=fr esup.ldap.bindPasswd=xxx ... esup.cas.host=cas.univ-xxx.fr esup.cas.uri=/cas ... esup.db.username=xxx esup.db.password=xxx ... esup.db.type=mysql esup.db.url=jdbc:mysql://localhost/uportal esup.db.className=com.mysql.jdbc.Driver
Configurer tomcat
esup-uPortail est fourni avec des fichiers de configuration dans update/Tomcat/conf/, pour les installer :
sudo -u esup sh -c 'cd /usr/local/esup/esup-package ; ant _tomcat.init -Dtomcat.update=true -Dtomcat.reloadable=false'
(nb: il faut appeler la tache _tomcat.init car elle n'est pas effectuée quand on n'utilise pas le embbeded tomcat)
Créer l'utilisateur de la base de données et la base de données
(nb : les commandes ci-dessous suppose que le mot de passe root mysql est stocké dans /root/.my.cnf)
root_password=`sudo sed -n 's/password="\(.*\)"/\1/p' /root/.my.cnf` dbvar() { sed -n 's![[:space:]]*!!g; s/esup.db.'$1'=//p' /usr/local/esup/esup-package/config.properties; } username=`dbvar username` password=`dbvar password` database=`dbvar url | sed 's!jdbc:mysql://localhost/!!'` echo "grant all on $database.* to $username identified by '$password';" | mysql -uroot -p"$root_password" mysqladmin -u"$username" -p"$password" create "$database"
Compiler esup-uPortal
sudo su - esup cd /usr/local/esup/esup-package ant getcomponents unzip init deploy db.test db.init
Démarrage à la main de esup-portail
sudo -u esup /usr/local/esup/esup-package/start-esup.sh
Démarrage automatique de esup-portail
cat <<'EOF' > /tmp/esup #! /bin/bash # # Warning: throw a daemon each time it is invoked # don't mind if other instances are running # ### BEGIN INIT INFO # Provides: esup # Required-Start: $local_fs $remote_fs $network $syslog mysql # Required-Stop: $local_fs $remote_fs $network $syslog mysql # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start/stop Esup server ### END INIT INFO ESUP_HOME=/usr/local/esup/esup-package/ ESUP_USER=esup case "$1" in start) echo -ne "Starting esup.\n" /bin/su $ESUP_USER $ESUP_HOME/start-esup.sh ;; stop) echo -ne "Stopping esup.\n" /bin/su $ESUP_USER $ESUP_HOME/stop-esup.sh ;; *) echo "Usage: /etc/init.d/esup {start|stop}" exit 1 ;; esac exit 0 EOF sudo install /tmp/esup /etc/init.d/esup sudo insserv esup || sudo update-rc.d esup defaults 90 10
Premier admin
Le premier administrateur est "admin". Pour utiliser ce login non ldap avec un mot de passe maison :
sudo su - esup cd /usr/local/esup/esup-package ant user.add -Dusername=admin
Puis accéder à http://entergo-unpidf.univ-paris1.fr/private/
Configurer https
Créer /etc/apache2/sites-available/entergo-unpidf-ssl :
<VirtualHost *:443 > <Proxy balancer://entCluster> BalancerMember ajp://localhost:8009 route=ent1 retry=1 Order deny,allow </Proxy> ProxyPass /balancer-manager ! ProxyPass / balancer://entCluster/ stickysession=JSESSIONID nofailover=Off <Location /balancer-manager> SetHandler balancer-manager Order allow,deny Allow from xxx.univ-xxx.fr </Location> ServerName entergo-unpidf.univ-paris1.fr ServerAlias entergo-unpidf ErrorLog /var/log/apache2/entergo-unpidf-ssl-error.log CustomLog /var/log/apache2/entergo-unpidf-ssl-access.log combined SSLEngine on SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP SSLCertificateFile /usr/local/etc/ssl/certs/entergo-unpidf.univ-paris1.fr.crt SSLCertificateKeyFile /usr/local/etc/ssl/private/entergo-unpidf.univ-paris1.fr.key SSLCertificateChainFile /usr/local/etc/ssl/certs/cachain.crt # restreindre l'acces a certaines choses, notamment les web services <Location ~ "/(EsupMonitor|private|problems|services)"> Order allow,deny Allow from univ-paris1.fr </Location> # Interdit en mode non SSL <Location /jkstatus> Order allow,deny </Location> </VirtualHost>
Puis
sudo a2ensite entergo-unpidf-ssl sudo /etc/init.d/apache2 restart
nb : les /etc/apache2/sites-available/entergo-unpidf et entergo-unpidf-ssl sont presque les même.
Commentaire
Pascal Rigaux dit :
janv. 05, 2015Ci-dessous l'ajout mis en place fin 2014 sur l'esup-uportal de l'université Paris 1 pour s'assurer que le JSESSIONID est regénéré, et plus particulièrement pour s'assurer que le JSESSIONID vide est refusé (cas incompréhensible rencontré sur 2 google chrome...)