Pages enfant
  • Installation sur une debian

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.
Commentaire: Migrated to Confluence 5.3

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 :

Télécharger les packages de source

En tant qu'utilisateur root :

Bloc de code
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 :

Bloc de code
<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

Bloc de code
sudo a2enmod proxy_balancer proxy_ajp
sudo a2ensite entergo-unpidf
sudo a2dissite 000-default

sudo /etc/init.d/apache2 restart

Installer java

Bloc de code
sudo apt-get install sun-java6-jdk

Configurer mysql

La base doit être en mode "insensible à la casse" pour respecter les standards SQL

Bloc de code
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

Bloc de code
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

Bloc de code
sudo adduser --system --group --shell /bin/bash esup
sudo install -o esup -g esup -d /usr/local/esup

Installer tomcat dans /usr/local/esup

Bloc de code
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

Bloc de code
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

Bloc de code
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 :

Bloc de code
# 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 :

Bloc de code
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)

Bloc de code
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

Bloc de code
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

Bloc de code
sudo -u esup /usr/local/esup/esup-package/start-esup.sh

Démarrage automatique de esup-portail

Bloc de code
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 :

Bloc de code
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 :

Bloc de code
<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

Bloc de code
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.