...
Sommaire | ||
---|---|---|
|
...
1/ Firewall
Il convient de correctement configurer votre firewall. Dans le cas d'un vserver installé avec les vs-tools (http://dokuwicri.univ-reims.fr/wiki/doku.php?id=public:projets:vs-tools:startvs-tools ), le fichier est accessible sur la machine hôte/physique dans /etc/vservers/nomduvserver/firewall.conf.
...
Voici les flux à laisser transiter à travers votre firewall
...
# Connexions sortantes:
...
Bloc de code |
---|
allow to 0/0 to udp/53 # DNS request allow to 0/0 to udp/123 # Network Time Protocol allow to 157.159.0.0/16 to tcp/22 # SSH vers le réseau de l'établissement # # Récupération de packages allow to 0/0 to tcp/21 # FTP allow from 0/0 from tcp/20 # FTP-data allow to 0/0 to tcp/80 # HTTP YUM allow to 0/0 to tcp/11371 # PGP-keys # # Portail allow to 157.159.10.29/32 to tcp/443 # Accès https au CAS de l'établissement allow to 157.159.10.76/32 to tcp/3306 # Requêtes mysql vers un serveur central (pas nécessaire a priori) allow to 157.159.0.0/16 to tcp/389 # LDAP (tcp/636 pour du LDAPS) allow to 157.159.0.0/16 to tcp/25 # SMTP allow to 0/0 to tcp/8443 # HTTPS tomcat pour shibboleth allow to 0/0 to tcp/443 # HTTPS pour shibboleth allow to 0/0 to tcp/445 # CIFS stockage allow to 0/0 to tcp/137 # CIFS stockage allow to 0/0 to tcp/138 # CIFS stockage allow to 0/0 to tcp/139 # CIFS stockage allow to 157.159.10.88/32 to tcp/143 # Accès au serveur de boites aux lettres pour Canal IMAP |
...
# Connexions entrantes:
...
Bloc de code |
---|
allow from 0/0 to tcp/80 # HTTP allow from 157.159.0.0/16 to tcp/8080 # HTTP tomcat allow from 0/0 to tcp/443 # HTTPS allow from 0/0 to tcp/8443 # HTTPS tomcat allow from 0/0 to tcp/22 # Local SSH allow from 0/0 to udp/161 # SNMP |
2/ Installation système de base
2.1/ Récupération des repositories java
2.1.1/ jpackage
Bloc de code |
---|
cd /etc/yum.repos.d/ wget http://www.jpackage.org/jpackage50.repo wget http://www.jpackage.org/jpackage.asc rpm --import jpackage.asc |
2.1.2/ remi
Bloc de code |
---|
wget http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm wget http://rpms.famillecollet.com/RPM-GPG-KEY-remi rpm --import RPM-GPG-KEY-remi wget http://rpms.famillecollet.com/enterprise/remi-release-5.rpm rpm -ihv remi-release-5.rpm |
2.2/ Installation packages de base via RPM
On vérifie qu'on dispose que de packages 32 bits:
...
On met à jour mlocate afin de retrouver facilement un fichier:
Bloc de code |
---|
updatedb |
2.3/ Configuration spécifique à Linux-VServer
On met le système à l'heure:
...
Bloc de code |
---|
[root@gaspar-dev ~]# more /etc/hosts 157.159.10.200 gaspar-dev.int-evry.fr localhost |
2.4/ Installation des packages java pour ESUP
Bloc de code |
---|
yum install tomcat6 yum install ant-nodeps yum install tomcat6-admin-webapps.noarch tomcat6-docs-webapp.noarch tomcat6-webapps.noarch yum update tomcat6.noarch tomcat6-javadoc.noarch velocity yum install java-1.6.0-sun-jdbc ant-apache-log4j |
...
Bloc de code |
---|
yum install ant java-sun java-sun-devel yum install ant-apache-regexp ant-contrib yum install java-1.6.0-sun-fonts java-1.6.0-openjdk-devel java-1.6.0-openjdk yum install httpd mod_ssl yum install mysql-server |
2.5/ Démarrage automatique de ces services/daemons:
Bloc de code |
---|
chkconfig --level 345 mysqld on chkconfig --level 345 tomcat6 on chkconfig --level 345 httpd on |
2.6/ Récupération d'esupdev et de uPortal-esup-DLM
Bloc de code |
---|
cd ~ wget http://sourcesup.cru.fr/frs/download.php/2874/esupdev-3.1.2-esup-0.5-RC3.tar.gz wget http://sourcesup.cru.fr/frs/download.php/2875/esup-3.1.2-esup-0.5-RC3.tar.gz |
...
Référez vous à http://sourcesup.cru.fr/frs/?group_id=173 .
2.7/ Ajout d'un compte local et positionnement des droits
Ajout du compte esup:
Bloc de code |
---|
useradd esup |
...
Bloc de code |
---|
cd /home/esup/ chgrp -R apache .bash_logout .bash_profile .bashrc .mozilla chown esup:tomcat esup-3.1.2-esup-0.5-RC3.tar.gz esupdev-3.1.2-esup-0.5-RC3.tar.gz |
2.8/ Mysql
2.8.1/ Authentification et autorisations
Bloc de code |
---|
/etc/init.d/mysqld start /usr/bin/mysqladmin -u root password 'motdepasse' mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.0.77 Source distribution Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> create database esup; mysql> GRANT ALL PRIVILEGES ON esup.* TO 'esup'@'localhost' IDENTIFIED BY 'motdepasse' WITH GRANT OPTION; mysql> GRANT ALL PRIVILEGES ON esup.* TO 'esup'@'gaspar-dev.int-evry.fr' IDENTIFIED BY 'motdepasse' WITH GRANT OPTION; |
2.8.2/ Modification pour régler les problèmes de casse
Pour citer Vincent Repain:
...
Bloc de code |
---|
/etc/init.d/mysqld restart |
2.9/ Monitoring nagios (spécifique à mon établissement mais ça peut rappeler que...)
Bloc de code |
---|
yum install nrpe yum install nagios-of-plugins nagios-plugins-ntp nagios-plugins-load nagios-plugins-users nagios-int-plugins nagios-plugins nagios-plugins-disk nagios-plugins-perl nagios-plugins-procs vi /etc/nagios/nrpe.cfg chkconfig --level 345 nrpe on /etc/init.d/nrpe start |
2.10/ Installation de maven
Après téléchargement (http://maven.apache.org/) ou récupération de maven via "ant init":
...
Bloc de code |
---|
su - esup vi /home/esup/.bash_profile ... # User specific environment and startup programs PATH=$PATH:$HOME/bin:/usr/local/:/usr/local/apache-maven-2.2.1/bin |
3/ Certificats, keystore et autres soucis
On va supposer que votre établissement à obtenu l'agrément afin de se faire signer par Terena Certicate Service (TCS). Pour en savoir plus sur TCS, allez par exemple à: http://www.cru.fr/services/tcs/index .
...
Avertissement | ||
---|---|---|
| ||
Il faut que votre serveur CAS soit également signé par Terena. |
3.1/ Création d'un bundle comprenant la chaine de notre PKI et celle de TCS/addTrust
On récupère la chaine TCS/addtrust àhttp://www.cru.fr/_media/services/tcs/cachain.pem
...
Bloc de code |
---|
[root@gaspar-dev /etc/pki/tls/certs] ( cat ca-chain-tmspca2_itca2_itrootca2.crt ; cat tmspca.crt.1 ; cat itca.crt.1 ; cat itrootca.crt.1; cat cachain-tcs-addtrust.pem ) > ca-pkiit1-pkiit2-chain-tcs-addtrust-bundle.crt |
3.2/ Génération de la clé et du certificate request pour TCS
Dans notre cas, on va sur un autre serveur afin de générer la clé et le csr (certificate request).
...
Bloc de code |
---|
cp gaspardev.key /etc/pki/tls/private/. cp cert-593-gaspar-dev.int-evry.fr.pem /etc/pki/tls/certs/. cp chain-593-gaspar-dev.int-evry.fr.pem /etc/pki/tls/certs/. |
3.3/ Création d'un Keystore pkcs12 et vérification
On crée le keystore pkcs12:
...
Bloc de code |
---|
cp gaspardev_ca-pkiit1-pkiit2-chain-tcs-addtrust-bundle.p12 /etc/pki/tls/certs/. |
3.4/ Modification de Tomcat
Le fichier à modifier est /etc/tomcat6/server.xml :
...
De la documentation peut être trouvée à http://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html .
4/ Installation du package esup-portail à proprement parler
Avertissement | ||
---|---|---|
| ||
Faites tout ce qui suit en tant que l'utilisateur esup (su - esup) |
4.1/ Décompression des packages
Bloc de code |
---|
cd gunzip esup-3.1.2-esup-0.5-RC3.tar.gz tar xvf esup-3.1.2-esup-0.5-RC3.tar mkdir Archive gzip -9 esup-3.1.2-esup-0.5-RC3.tar mv esup-3.1.2-esup-0.5-RC3.tar.gz Archive/. |
4.2/ Configuration
Bloc de code |
---|
cd esup-3.1.2-esup-0.5-RC3 cp config.sample.properties config.properties cp build.sample.properties build.properties |
...
config.properties
...
Les parties modifiées du fichier config.properties sont en mauve ci-dessous.
...
Bloc de code |
---|
# Components Options use.embedded.ant=true use.embedded.maven=true use.embedded.tomcat=true # Tomcat Options tomcat.update=true tomcat.reloadable=true tomcat.port.shutdown=8005 tomcat.port.http=8080 tomcat.port.jk=8009 # URL Options esup.public.host=gaspar-dev.int-evry.fr esup.public.proto=http esup.public.port=:8080 esup.public.uri=/uPortal esup.public.guest.uri=/Guest esup.public.ressource.uri=/ResourceServingWebapp esup.real.host=${esup.public.host} esup.real.uri=${esup.public.uri} esup.real.port.https= # LDAP Options esup.ldap.auth=false esup.ldap.url=ldap://ldap4.int-evry.fr:389 ldap://ldap3.int-evry.fr:389 esup.ldap.baseDN=dc=int-evry,dc=fr esup.ldap.bindDN=cn=mcibind,ou=system,dc=int-evry,dc=fr esup.ldap.bindPasswd=motdepassebindldap esup.ldap.persondirs.use=true esup.ldap.uid=uid # CAS Options esup.cas.auth=true esup.cas.proto=https esup.cas.proxy=true esup.cas.host=cas.it-sudparis.eu esup.cas.port.https= esup.cas.port.http= esup.cas.uri=/cas esup.cas.withoutSSL=false esup.cas.uri.login=/login esup.cas.uri.validate=/serviceValidate esup.cas.uri.proxy=/proxy esup.cas.uri.logout=/logout esup.real.uri.callbackCas=/CasProxyServlet # DB Options esup.db.auth=true esup.db.persondirs.use=true esup.db.username=sa esup.db.password= #esup.db.username=esup #esup.db.password=motdepassemysql # db type : mysql, hsql, postgresql esup.db.type=hsql esup.db.url=jdbc:hsqldb:hsql://localhost:8887 esup.db.className=org.hsqldb.jdbcDriver #esup.db.type=mysql #esup.db.className=com.mysql.jdbc.Driver #esup.db.jdbcDriverJar=mysql-connector-java-5.1.6 #esup.db.db-version=5.0.77 #esup.db.poolPreparedStatements=true # XSL Options esup.xsl.debug=false esup.xsl.cache=false esup.xsl.help.url=http://www.esup-portail.org/display/ESUPMU/Documentations+%28esup-3%29 esup.xsl.help.login=http://www.esup-portail.org/display/ESUPMU/Documentations+%28esup-3%29 esup.xsl.use.sidebar=false esup.xsl.use.sidebar.focused=false esup.xsl.use.sidebar.guest=false # LOG Options esup.log.dir=${esup.root}/logs esup.log.file=${esup.log.dir}/portal.log esup.log.size=500000KB esup.log.level=DEBUG # STATS Options esup.stats.file=${esup.log.dir}/stats.log esup.stats.attributeType=eduPersonPrimaryAffiliation esup.stats.channelFnames=all esup.stats.size=200000KB # MISC Optionsesup.title.main=eSup DEVEL ${uportal.ver} - [${esup.host.logicalName}] esup.host.logicalName=gaspar-dev esup.session.lifetime=30 esup.languages=fr_FR,en_US esup.default.language=fr esup.upload-maxsize=300000 esup.ws.groups=trueesup.monitor=true esup.userprefs.save=false esup.keystore=/etc/pki/tls/certs/gaspardev_ca-pkiit1-pkiit2-chain-tcs-addtrust-bundle.p12 |
...
build.properties
...
On utilise là encore le tomcat embarqué afin de faire des tests. Pour utiliser le tomcat v.6 récupéré, il faut commenter/décommenter le "esup.deploy" et "server.home" de build.properties comme ci-dessous.
Bloc de code |
---|
#java_home=/usr/java/jdk1.6.0_16 java_home=/usr/lib/jvm/java # CURRENT FOLDER esup.root=${basedir.conv} esup.base=${esup.root}/Portail ant_home=${basedir.conv}/resources/${ant.package.final} mvn_home=${esup.base}/${mvn.package.final} esup.sources=${esup.base}/uPortal_rel-${uportal.ver} esup.deploy=${esup.base}/webapps #esup.deploy=/var/lib/tomcat6/webapps server.home=${esup.base}/apache-tomcat-${tomcat.ver} #server.home=/usr/share/tomcat6 server.temp=${server.home}/temp esup.custom=${esup.root}/custom esup.update=${esup.root}/update esup.resources=${basedir.conv}/resources esup.packages=${esup.root}/packages esup.tmp=${esup.root}/temp config.file=${esup.root}/config.properties mvn_repo=${esup.base}/maven-repo mvn_offline=false mvn_skiptest=true mvn_esuprepo=${esup.resources}/esup-maven-repo |
4.3/ Premières taches ant et création de l'arborescence
Les options de ant:
Bloc de code |
---|
ant -p |
...
Bloc de code |
---|
cd ~/esup-3.1.2-esup-0.5-RC3 ant getcomponents ant unzip |
4.4/ Modification des droits
Bloc de code |
---|
ls logs/ ls -al logs touch logs/portal.log touch logs/stats.log |
4.5/ Configuration de uPortal
Bloc de code |
---|
cd /home/esup/esup-3.1.2-esup-0.5-RC3/Portail/uPortal-3.1.1 vi build.properties |
...
Allez ensuite dans le répertoire où se situe ant:
Bloc de code |
---|
cd ../.. |
4.6/ Utilisation du ant embarqué
Bloc de code |
---|
cd /home/esup/esup-3.1.2-esup-0.5-RC3/resources/ gunzip apache-ant-1.7.1-bin.tar.gz tar xvf apache-ant-1.7.1-bin.tar rm apache-ant-1.7.1-bin.tar cp ant.sample.sh ant.sh vi ant.sh ---- #!/bin/sh export LANG=fr_FR # export JAVA_HOME=/usr/java/jdk1.6 export JAVA_HOME=/usr/lib/jvm/java export ANT_HOME=./resources/apache-ant-1.7.1 # chmod 755 $ANT_HOME/bin/ant $ANT_HOME/bin/ant $@ ---- chmod u+x ant.sh dos2unix ant.sh |
4.7/ Deuxièmes tâches ant
Bloc de code |
---|
cd /home/esup/esup-3.1.2-esup-0.5-RC3 ./ant.sh init ./ant.sh getcomponents ./ant.sh unzip |
...
Bloc de code |
---|
./ant.sh db.test ./ant.sh db.init ./ant.sh deploy |
4.8/ Création d'un script de lancement automatique
Bloc de code |
---|
vi ~/restart_esup.sh ---- #!/bin/bash # /usr/bin/sudo /etc/init.d/tomcat6 stop cd ~/esup-3.1.2-esup-0.5-RC3 ./ant.sh init ./ant.sh db.import -Dchannel=all ./ant.sh db.import -Dusername=monuser-lo ./ant.sh deploy /usr/bin/sudo /etc/init.d/tomcat6 start cd vi /etc/sudoers chmod u+x restart_esup.sh ~/restart_esup.sh ---- |
5/ On reprend tout suite à l'analyse des différents logs
5.1/ APR
Dans /var/log/tomcat6/catalina.out, on voit au lancement de Tomcat une phrase un rien inquiétante si la mise en production du portail presse:
...
Il faut récupérer le source de tomcat-native et le recompiler.
Premier essai
Bloc de code |
---|
wget http://archive.apache.org/dist/tomcat/tomcat-connectors/native/1.1.9/source/tomcat-native-1.1.9-src.tar.gz tar xvf tomcat-native-1.1.9-src.tar.gz cd tomcat-native-1.1.9-src/jni/native/ ./configure --with-apr=/usr/bin/apr-1-config --with-java-home=/usr/lib/jvm/java --with-ssl=yes make make install |
...
Ca ne marche toujours pas
Second essai
On va récupérer un package source de Fedora, le recompiler et l'installer. C'est pour ça qu'on a installé au départ le package "rpm-build"..
...
Bloc de code |
---|
12 févr. 2010 17:24:13 org.apache.catalina.core.AprLifecycleListener init INFO: An older version 1.1.18 of the APR based Apache Tomcat Native library is installed, while Tomcat recommends version greater then 1.1.19 |
5.2/ Modification de Tomcat
Je m'inspire ici de la documentation se trouvant à http://www.esup-portail.org/display/ESUPMU/Tomcat en production .