Projet Socle ENT
Pages enfant
  • Installation uPortal v3 sur une centOS

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.

...

Nous supposons que vous possédez une infrastructure en place avec au minimum un DNS, CAS et un serveur openLDAP en production.

(ampoule grise)   Insérer ici Table des Matières

1/ Contexte

Dans ce qui va suivre, notre machine s'appelle gaspar-dev.int-evry.fr et a pour adresse IP 157.159.10.200 .

...

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

...

Afin de ne pas obtenir une erreur de type "/usr/bin/rebuild-security-providers is needed by package java-1.4.2-gcj-compat..", éditez /etc/yum.repos.d/jpackage50.repo et mettez le repository jpackage-generic à enabled=0.

Une fois ceci fait, vous pouvez continuer à installer les packages java:

...

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-RC1.tar.gz  esupdev-3.1.2-esup-0.5-RC1.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:

---

uPortal 3 ne supporte pas les bases mySSQL en case sensitive : http://www.ja-sig.org/wiki/display/UPM31/03+MySQL+Configuration parce qu'ils ne garantissent pas que toutes les requêtes soient écrites avec la même casse. 
On s'en aperçoit très vite dès l'init de la base : les scripts Cernunnos sont écrits en minuscules
Si on veut passer en case insensitive sur un serveur hébergeant déjà des bases, il faut migrer les bases (il y a en effet transformation physique des noms de tables en minuscules) :
- Faire un dump de chaque base
- Changer la config mySql pour passer en lowercase
- Réimporter chaque base
- Observer les résultats

---

Ici, on crée les bases MySQL, on ne se souci donc pas de bases existantes. Voici un lien qui décrit comment faire: http://dev.mysql.com/doc/refman/5.0/fr/name-case-sensitivity.html.

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

cp apache-maven-2.2.1-bin.tar.gz /usr/local/.
cd /usr/local/
gunzip apache-maven-2.2.1-bin.tar.gz
tar xvf apache-maven-2.2.1-bin.tar
rm apache-maven-2.2.1-bin.tar
chmod +x /usr/local/apache-maven-2.2.1/bin/mvn

En tant qu'utilisateur esup, il faut rajouter ceci à votre path:

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 .

Dans notre établissement, on a également une PKI (tout ce qui contient les caractères "it" ou "tmsp" dans la suite).

On va créer un keystore qui comprend la chaine de notre PKI et celle de Terena. Si ce n'est pas votre cas, ça ne peut être que plus simple (grand sourire)

Attention:

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

Balise Wiki
\[root@gaspar-dev /etc/pki/tls/certs\] wget [http://www.cru.fr/_media/services/tcs/cachain.pem|http://www.cru.fr/_media/services/tcs/cachain.pem?cache=nocache]

On récupère et met les certificats de notre PKI (ca-chain-tmspca2_itca2_itrootca2.crt,  tmspca.crt.1, cat itca.crt.1 et cat itrootca.crt.1) dans le même répertoire. On concatène le tout dans le bundle:

Balise Wiki
\[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). 

On crée ceci sur un autre serveur pour des raisons "historiques" car c'est celui qui contient notre PKI. Le logiciel qu'on utilise est CSP dont voici quelques références:

http://www.rajeevnet.com/crypto/ca/ca-paper.html

http://devel.it.su.se/pub/jsp/polopoly.jsp?d=1026&a=3290

On crée donc la clé privée (protégée par un mot de passe) et le csr via openssl:

Balise Wiki
\[pkitcs@pki \~/tcs-tmsp\] $ openssl req \-config [opensslTCS-TMSP-gaspardev.cnf|^opensslTCS-TMSP-gaspardev.cnf] \-new \-extensions v3_req \-keyout private/gaspardev_pass.key \-out req/gaspardev.req \-days 720

Dans le fichier de configuration opensslTCS-TMSP-gaspardev.cnf en pièce jointe ci-dessus, les points importants sont:

Balise Wiki
nsCertType              = server, client
keyUsage                = nonRepudiation, digitalSignature, keyEncipherment, dataEncipherment
extendedKeyUsage        = serverAuth, clientAuth
subjectAltName          = @altnamesgaspardev
\[ altnamesgaspardev \]
DNS.1                   = "gaspar-dev.it-sudparis.eu"

On récupère la clé sur le serveur où tournera uPortal, par exemple en utilisant scp:

Balise Wiki
\[root@gaspar-dev /etc/pki/tls/certs\]  scp root@carthage:/vservers/pki/home/pkitcs/tcs-tmsp/opensslTCS-TMSP-gaspardev.cnf .

On retire la passphrase de la clé privée:

openssl rsa -in gaspardev_pass.key -out gaspardev.key

On soumet à TCS notre csr et, après approbation, on récupère le certificat signé et la chaine de certification. Dans notre cas, il s'agit respectivement de cert-593-gaspar-dev.int-evry.fr.pem et chain-593-gaspar-dev.int-evry.fr.pem.

On copie le tout aux emplacements traditionnels:

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:

openssl pkcs12 -export -in cert-593-gaspar-dev.int-evry.fr.pem -inkey gaspardev.key -out gaspardev_ca-pkiit1-pkiit2-chain-tcs-addtrust-bundle.p12 -name tomcat -CAfile ca-pkiit1-pkiit2-chain-tcs-addtrust-bundle.crt -caname root -chain

On vérifie ce que ça donne:

keytool -list  -storetype pkcs12 -keystore gaspardev_ca-pkiit1-pkiit2-chain-tcs-addtrust-bundle.p12 -v

On copie ce keystore où il convient:

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

<Connector port="8443" maxHttpHeaderSize="8192"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" disableUploadTimeout="true"
               acceptCount="100" scheme="https" secure="true"
               keystoreFile="/etc/pki/tls/certs/gaspardev_ca-pkiit1-pkiit2-chain-tcs-addtrust-bundle.p12" keystorePass="changeit" keystoreType="pkcs12"
               clientAuth="false" sslProtocol="TLS" />

4

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

cp apache-maven-2.2.1-bin.tar.gz /usr/local/.
cd /usr/local/
gunzip apache-maven-2.2.1-bin.tar.gz
tar xvf apache-maven-2.2.1-bin.tar
rm apache-maven-2.2.1-bin.tar
chmod +x /usr/local/apache-maven-2.2.1/bin/mvn

En tant qu'utilisateur esup, il faut rajouter ceci à votre path:

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

...

/ Installation du package esup-portail à proprement parler

(moins) Attention, 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-RC1.tar.gz
tar xvf esup-3.1.2-esup-0.5-RC1.tar
mkdir Archive
gzip -9 esup-3.1.2-esup-0.5-RC1.tar
mv esup-3.1.2-esup-0.5-RC1.tar.gz Archive/.

...

4.2/ Configuration

Bloc de code
cd esup-3.1.2-esup-0.5-RC1
cp config.sample.properties config.properties
cp build.sample.properties build.properties

...

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-RC1
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-RC1/Portail/uPortal-3.1.1
vi build.properties
cd ../..

...

4.6/ Utilisation du ant embarqué

Bloc de code
cd /home/esup/esup-3.1.2-esup-0.5-RC1/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-RC1
./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-RC1
./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
----