| Info |
|---|
La version PDF présentée ici est mieux formatée - on garde cette version également pour archive. |
| Volet | ||
|---|---|---|
| ||
** | ||
| Balise Wiki | ||
|
{panel:bgColor=#F8F7EF}
h1. Conseils d'installation d'esup-portail
**
\\
Auteur : Vincent MATHIEU ([Université Nancy
2|http://http://www.univ-nancy2.fr]) {panel} {toc:style=disc\|indent=20px\|minLevel=1} h1. Liens utiles \\ * [Document d'installation du package |
| Sommaire | ||||||
|---|---|---|---|---|---|---|
|
Liens utiles
- [Document d'installation
du package esup-portail|InstallPackage2-5Esup.html]
...
- [Paramétrage
du fichier personDirectory.xml|http://www.ja-sig.org/wiki/display/UPC/PersonDirectory]
...
- Paramétrage et utilisation des groupes
- [Paramétrage
du fichier compositeGroupServices.xml|../gestion_groupes/serviceGroup/composite.html]
- [Paramétrage
...
- [Service
...
- de
groupe 'local'|../gestion_groupes/serviceGroup/local.html]
- de
...
- [Service de
groupes 'LDAP"|../gestion_groupes/serviceGroup/ldap.html]
- [Service de
...
- [Groupes
PAGS|../gestion_groupes/serviceGroup/pags.html]
- [Groupes
...
- [Documentation
groupes PAGS sur le wiki uportal|http://www.ja-sig.org/wiki/display/GAP/uPortal+PAGS+documentation]
- [Documentation
...
Généralités
Ce document donne un exemple d'organisation
...
d'une
...
installation
...
esup-portail
...
qui
...
permet
...
de
...
faciliter
...
la
...
maintenance,
...
et
...
en
...
particulier
...
la
...
mise
...
à
...
jour
...
de
...
nouvelles
...
versions
...
en
...
limitant
...
les
...
efforts
...
et
...
les
...
risques.
...
Il
...
ne
...
prétend
...
pas
...
être
...
une
...
bible
...
:
...
chaque
...
installation
...
est
...
à
...
adapter
...
en
...
fonction
...
de
...
l'environnement
...
cible
...
:
...
mono
...
ou
...
multi-serveurs,
...
politique
...
de
...
site,
...
...
...
Les
...
différentes
...
problématiques
...
à
...
prendre
...
en
...
compte
...
sont
...
les
...
suivantes
...
:
Gestion des librairies
uPortal est packagé avec un certain nombre de librairies (fichiers .jar) nécessaires à son bon fonctionnement ; esup-portail ajoute un certain nombre de librairies communes à notre environnement.
Certains canaux ont également besoin de librairies externes pour fonctionner ; les canaux 'natifs' uportal (hors les portlets) s'exécutent dans le contexte d'uPortal ; ils partagent donc les mêmes librairies.
Gestion des canaux, des fragments
Au cours de la vie du portail, l'administrateur est amené à gérer son contenu : ajout / modification de canaux, modifications de fragments, ...
Il faut donc faire en sorte que ces actions soient les plus pérennes possibles, et qu'un retour en arrière soit possible simplement en cas de modification malheureuse.
Mises à jour du 'socle' esup-portail
C'est la mise à jour du package uPortal-w.z-esup.y
...
(exemple
...
:
...
uPortal-2.5-esup-1).
...
Suivant
...
l'ampleur
...
de
...
la
...
mise
...
à
...
jour,
...
la
...
procédure
...
va
...
différer.
...
w,
...
z
...
sont
...
les
...
indices
...
de
...
mise
...
à
...
jour
...
d'uPortal,
...
y
...
un
...
sous-indice
...
esup-portail.
...
- w : c'est
...
- une
...
- mise
...
- à
...
- jour
...
- majeure.
...
- Une
...
- procédure
...
- spécifique
...
- doit
...
- être
...
- mise
...
- en
...
- oeuvre.
...
- z : C'est
...
- une
...
- mise
...
- à
...
- jour
...
- 'intermédiaire'.
...
- Elle
...
- peut
...
- nécessiter
...
- une
...
- mise
...
- à
...
- jour
...
- de
...
- la
...
- base
...
- de
...
- données,
...
- de
...
- JVM,
...
- ...
...
- Une
...
- procédure
...
- spécifique
...
- peut
...
- être
...
- nécessaire.
...
- y : C'est
...
- une
...
- mise
...
- à
...
- jour
...
- mineure
...
- ;
...
- ce
...
- document
...
- devrait
...
- suffire
...
- à
...
- couvrir
...
- les
...
- contraintes
...
- liées
...
- à
...
- ces
...
- mises
...
- à
...
- jour.
...
La
...
- lecture
...
- du
...
- [document
...
d'installation
...
- du
...
- package
...
- esup-portail|InstallPackage2-5Esup.html]
...
- est
...
- un
...
- préalable
...
- à
...
- la
...
- bonne
...
- compréhension
...
- de
...
- ce
...
- document.
...
Exemple d'installation
...
du
...
'socle'
...
Afin
...
de
...
faciliter
...
la
...
compréhension,
...
nous
...
allons
...
prendre
...
un
...
exemple
...
d'installation
...
'générique'
...
;
...
cette
...
installation
...
ne
...
correspond
...
volontairement
...
pas
...
à
...
un
...
cas
...
réel.
...
Elle
...
est
...
proposée
...
en
...
trame
...
de
...
la
...
documentation.
...
C'est
...
bien
...
un
...
exemple
...
qui
...
est
...
proposé,
...
pas
...
un
...
modèle
...
à
...
appliquer
...
systématiquement.
...
Création d'un
...
compte
...
lié
...
au
...
portail
...
Il
...
est
...
fortement
...
conseillé
...
d'installer
...
un
...
serveur
...
apache
...
en
...
frontal
...
d'esup-portail,
...
via
...
mod_jk
...
(ou
...
mod_proxy
...
en
...
apache
...
2.2).
...
Il
...
n'est
...
donc
...
pas
...
nécessaire
...
que
...
le
...
lancement
...
d'esup-portail
...
(en
...
fait,
...
le
...
serveur
...
J2EE
...
supportant
...
esup-portail)
...
se
...
fasse
...
sous
...
le
...
compte
...
root,
...
puisque
...
le
...
port
...
TCP
...
APJ13
...
peut
...
être
...
supérieur
...
à
...
1024.
...
Nous
...
supposerons
...
ici
...
qu'un
...
compte
...
esup
...
est
...
créé.
...
Toutes
...
les
...
actions
...
nécessaires
...
au
...
fonctionnement
...
d'esup-portail
...
(à
...
l'exception
...
du
...
frontal
...
apache)
...
seront
...
faites
...
sous
...
le
...
compte
...
'esup'.
...
Tous
...
les
...
chemins
...
file
...
système
...
paramétrés
...
seront
...
accessibles
...
en
...
écriture
...
à
...
ce
...
compte
...
.
...
Organisation
...
file-système
...
On
...
va
...
séparer
...
l'environnement
...
de
...
paramétrage/compilation
...
de
...
l'environnement
...
de
...
production.
...
Dans
...
cet
...
exemple,
...
l'environnement
...
de
...
paramétrage/compilation
...
sera
...
/home/esup/BUILD,
...
l'environnement
...
de
...
production
...
/home/esup/PROD.
...
On
...
suppose
...
que
...
le
...
package
...
à
...
installer
...
est
...
uPortal-2.5-esup-1
...
; il est désarchivé dans /home/esup/BUILD/.
...
Voici
...
un
...
extrait
...
du
...
fichier
...
esup.properties
...
correspondant
...
à
...
l'exemple
...
de
...
ce
...
document
...
:
| Bloc de code |
|---|
{code} java_home=/usr/java/jdk1.5 esup.custom=/home/esup/BUILD/Custom esup.root=/home/esup/BUILD/uPortal-package esup.distrib=/home/esup/BUILD/uPortal-sources esup.custom=/home/esup/BUILD/Custom esup.deploy=/home/esup/PROD/webapps server.home=/home/esup/PROD/Tomcat server.temp=/home/esup/PROD/temp {code} * |
- /ur/java/jdk1.5
...
- est
...
- un
...
- lien
...
- symbolique
...
- vers
...
- la
...
- JVM
...
- 1.5
...
- courante.
- /home/esup/BUILD/uPortal-package
...
- est
...
- un
...
- lien
...
- symbolique
...
- vers
...
- le
...
- répertoire
...
- de
...
- décompactage
...
- du
...
- package,
...
- ici
...
- BUILD/uPortal-2.5-esup-1.
...
/home/esup/BUILD/uPortal-sources
...
est
...
un
...
lien
...
vers
...
le
...
répertoire
...
BUILD/uPortal-2.5-esup
...
-1-sources (à
...
créer
...
avant
...
Span
...
class
...
command
...
ant
...
esup.unzip
...
).
...
- /home/esup/PROD/webapps
...
- est
...
- un
...
- lien
...
- symbolique
...
- vers
...
- PROD/webapps-2.5-esup-1
...
- /home/esup/PROD/Tomcat
...
- est
...
- un lien symbolique vers PROD/Tomcat_5-5-9
...
On
...
- crée
...
- également
...
- le
...
- répertoire
...
- /home/esup/BUILD/canaux,
...
- qui
...
- sera
...
- la
...
- racine
...
- de
...
- désarchivage
...
- des
...
- différents
...
- canaux
...
- installés.
...
Personnalisations
Les personnalisations propres à l'établissement
...
se
...
trouvent
...
dans
...
le
...
répertoire
...
/home/esup/BUILD/Custom,
...
lui-même
...
subdivisé
...
en
...
sous-répertoires
...
:
...
ROOT,
...
Tomcat,
...
uPortal.
...
Vous
...
aurez
...
au
...
moins
...
les
...
choses
...
suivantes
...
dans
...
le
...
répertoire
...
Custom
...
:
Custom/uPortal/properties
...
On
...
devrait
...
y
...
trouver
...
au
...
moins
...
les
...
fichiers
...
suivants
...
:
...
- uPortal55.xml
...
- :
...
- C'est
...
- un
...
- fichier
...
- qui
...
- permet
...
- de
...
- définir
...
- les
...
- pools
...
- Tomcat
...
- de
...
- connexion
...
- aux
...
- différents
...
- bases
...
- de
...
- données.
...
- personDirectory.xml
...
- :
...
- ce
...
- fichier
...
- permet
...
- de
...
- faire
...
- un
...
- 'mapping'
...
- entre
...
- des
...
- attributs
...
- LDAP
...
- (ou
...
- issus d'une base SQL) avec des attributs uPortal. Voir [ce
document|http://www.ja-sig.org/wiki/display/UPC/PersonDirectory]
...
- sur
...
- le
...
- wiki
...
- uportal.
...
- groups/PAGSGroupStoreConfig.xml
...
- :
...
- définition
...
- des
...
- groupes
...
- dynamiques
...
- uPortal.
...
- Voir
...
- [ce
...
document|http://www.ja-sig.org/wiki/display/GAP/uPortal+PAGS+documentation]
...
- sur
...
- le
...
- wiki
...
- uportal.
...
chanpub/XXXXX.xml
...
:
...
les
...
fichiers
...
de
...
publication
...
des
...
différents
...
canaux.
...
Même
...
s'il
...
est
...
possible
...
de
...
déclarer
...
/
...
modifier
...
dynamiquement
...
dans
...
uPortal les canaux, nous préconisons de le faire par la publication de ces fichiers de description (utilisés par la commande
Span class command ant
uportal.pubchan
), ceci afin de les rejouer ultérieur.- al/xx-fragments.xml
...
- :
...
- les
...
- fragments
...
- poussés
...
- pour
...
- cette
...
- instance
...
- d'esup-portail.
...
Custom/uPortal/lib
...
Comme
...
- indiqué
...
- dans
...
- un
...
- pragraphe
...
- suivant,
...
- ce
...
- répertoire
...
- contiendra
...
- les
...
- librairies
...
- (fichiers
...
- .jar)
...
- nécessiare
...
- à
...
- l'exécution
...
- de
...
- certains
...
- canaux.
...
Custom/uPortal/webpages
...
Ca
...
- contenir
...
- les
...
- éventuels
...
- skins
...
- de
...
- l'établissement.
...
Première
...
installation
...
du
...
portail
...
On
...
- utilise
...
- la
...
- procédure
...
- 'normale'
...
- :
...
Span class command ant -buildfile
/home/esup/BUILD/uPortal-package/build.xml
...
esup.unzip
...
Span class command ant -buildfile
/home/esup/BUILD/uPortal-package/build.xml
...
esup.init
Span class command ant -buildfile
/home/esup/BUILD/uPortal-package/build.xml
...
esup.deploy
...
Span class command ant -buildfile
/home/esup/BUILD/uPortal-package/build.xml
...
esup.db.init
Installation des canaux
Comme indiqué prédédemment, un répertoire dédié aux canaux a été créé.
Chaque canal à la norme esup contient à sa racine un fichier
| Span | ||
|---|---|---|
| ||
| build.properties |
, qui contient au moins les trois propriétés tomcat.home, uportal.home, deploy.home ; voici comment les valuer dans notre exemple :
| Bloc de code |
|---|
{span} h1. Installation des canaux \\ Comme indiqué prédédemment, un répertoire dédié aux canaux a été créé. Chaque canal à la norme esup contient à sa racine un fichier {span:class=command}build.properties{span} , qui contient au moins les trois propriétés tomcat.home, uportal.home, deploy.home ; voici comment les valuer dans notre exemple : {code} #Repertoire d'installation de Tomcat tomcat.home = /home/esup/PROD/Tomcat #Repertoire d'installation d'uPortal uportal.home = /home/esup/BUILD/uPortal-sources #Repertoire de deploiement deploy.home = /home/esup/PROD/webapps/uPortal {code} |
A
...
la
...
racine
...
du
...
répertoire
...
/home/esup/BUILD/canaux,
...
un
...
script
...
shell
...
est
...
créé,
...
afin
...
de
...
pouvoir
...
compiler/déployer
...
facilement
...
l'ensemble
...
des
...
canaux,
...
et
...
de
...
pouvoir
...
rejouer
...
cette
...
installation
...
(le
...
terme
...
déploiement
...
ici
...
ne
...
comprend
...
pas
...
la
...
déclaration
...
des
...
canaux
...
dans
...
la
...
base
...
esup-portail,
...
mais
...
la
...
compilation
...
et
...
la
...
recopie
...
des
...
classes
...
java
...
et
...
des
...
fichiers
...
annexes
...
aux
...
canaux
...
dans
...
l'environnement
...
de
...
production).
...
Voici
...
ce
...
script
...
:
| Bloc de code |
|---|
{code} #!/bin/sh UPORTAL_CHANNEL_DIR=/home/esup/BUILD/canaux CHANNELS="esup-utils-mag-2.10-RC-3 connectors-1.06-RC-1 CAnnuaire-3.0-RC-4 CActu-1.0-Rc-2 .... " for channel in $CHANNELS do if [ -d $UPORTAL_CHANNEL_DIR/$channel ]; then /home/uportal/ant.sh -buildfile $UPORTAL_CHANNEL_DIR/$channel/build.xml clean > /dev/null 2>&1 echo -n "Deploy $channel : " /home/uportal/ant.sh -buildfile $UPORTAL_CHANNEL_DIR/$channel/build.xml deploy | grep BUILD else echo -n "###### $channel pas trouve #####" fi done {code} |
Une
...
attention
...
particulière
...
doit
...
être
...
apportée
...
aux
...
libraires
...
(fichiers
...
.jar)
...
nécessaires
...
à
...
certains
...
canaux.
...
Ces
...
librairies
...
se
...
trouvent
...
habituellement
...
dans
...
le
...
sous-répertoire
...
lib
...
de
...
la
...
racine
...
de
...
désarchivage
...
du
...
canal.
...
Ces
...
librairies
...
doivent
...
être
...
ajoutées
...
en
...
final
...
dans
...
le
...
répertoire
...
de
...
librairies
...
d'esup-portail
...
:
...
PROD/webapps/uPortal/WEB-INF/lib.
...
Il
...
est
...
déconseillé
...
de
...
les
...
ajouter
...
directement
...
dans
...
ce
...
répertoire
...
;
...
nous
...
conseillons
...
de
...
les
...
ajouter
...
dans
...
BUILD/Custom/uPortal/lib,
...
puis
...
de
...
lancer
...
ensuite un
| Span | ||
|---|---|---|
| ||
| ant esup.init |
puis
| Span | ||
|---|---|---|
| ||
| ant esup.deploy |
.
Ceci permet de suivre plus facilement les librairies liées aux canaux. En particulier, avant de recopier une nouvelle librairie dans ce répertoire, il faut s'assurer qu'un autre librairie de même nom n'y est pas présente, afin d'éviter les conflits.
| Info |
|---|
Si une libraire plus récente doit être installée (exemple : mylib.2.2 en remplacement de un {span:class=command}ant esup.init{span} puis {span:class=command}ant esup.deploy{span} . Ceci permet de suivre plus facilement les librairies liées aux canaux. En particulier, avant de recopier une nouvelle librairie dans ce répertoire, il faut s'assurer qu'un autre librairie de même nom n'y est pas présente, afin d'éviter les conflits. {info} Si une libraire plus récente doit être installée (exemple : mylib.2.2 en remplacement demylib.2.1), il faut éviter que les 2 librairies se retrouvent en final dans l'environnement de production esup-portal. Pour celà, il faut supprimer dans les différents environnements l'ancienne librairie : -
|
Installation d'une
...
nouvelle
...
version
...
du
...
package
...
Ce
...
paragraphe
...
décrit
...
l'installation
...
une
...
version
...
mineure, qui n'impacte
...
pas
...
la
...
base
...
esup-portail.
...
Grace
...
aux
...
différents
...
liens
...
symboliques
...
utilisés,
...
on
...
s'assure
...
d'un
...
retour
...
en
...
arrière
...
facile.
...
On
...
suppose
...
ici
...
qu'on
...
installe
...
la
...
version
...
uPortal-2.5-esup-2.
...
Liens symboliques
On déporte les différents liens symboliques vers les nouveaux répertoires :
- /home/esup/BUILD/uPortal-package
...
- vers
...
- BUILD/uPortal-2.5-esup-2.
...
- /home/esup/BUILD/uPortal-sources
...
- vers
...
- BUILD/uPortal-2.5-esup-2-sources
...
- /home/esup/PROD/webapps
...
- vers
...
- PROD/webapps-2.5-esup-2
...
désarchivage du package
Dans /home/esup/BUILD,
...
- donc
...
- vers
...
- BUILD/uPortal-2.5-esup-2
...
Personnalisations
D'une
...
- manière
...
- générale,
...
- commencer
...
- par
...
- lire
...
- le
...
- fichier
...
- CHANGELOG
...
- de
...
- la
...
- nouvelle
...
- version
...
- du
...
- package.
...
Les
...
modifications
...
qui
...
sont
...
fortement
...
susceptibles
...
de
...
nécessiter
...
des
...
modifications
...
de
...
paramètres
...
sont
...
préfixés
...
de 5 étoiles "*****
...
".
...
esup.properties
...
| Span | ||
|---|---|---|
| ||
| cp BUILD/uPortal-2.5-esup-1/esup.properties |
...
BUILD/uPortal-2.5-esup-2/ |
...
Vérifier que les paramètres sont toujours corrects. Voir CHANGELOG. Si modification nécessaire, penser à sauvegarder l'ancien fichier.
Custom/uPortal
Vérifier que les fichiers que vous avez personnalisés n'ont pas été modifiés par cette nouvelle version. Si nécessaire, les adapter (sauvegarde préalable).
Installation
Comme l'installation originale, sans l'installation de la base : *
| Span | ||
|---|---|---|
| ||
| ant -buildfile /home/esup/BUILD/uPortal-package/build.xml |
...
esup.init |
...
Span class command ant -buildfile
/home/esup/BUILD/uPortal-package/build.xml
...
esup.deploy
...
Puis,
...
nouveau
...
déploiement
...
des
...
canaux
...
:
| Span | ||
|---|---|---|
| ||
| /home/esup/BUILD/canaux/deploy.sh |
| Remarque |
|---|
Il est possible de simplifier la procédure, et de recopier {span} {note} Il est possible de simplifier la procédure, et de recopierPROD/webapps-2.5-esup-1 vers PROD/webapps-2.5-esup-2 ; dans ce cas, le nouveau déploiement des canaux n'est pas nécessaire. {note} h2. Si problème \\ Il est possible de revenir en arrière très rapidement, en remodifiant les 3 liens symboliques liés à la version du package esup-portail. h1. Cas du load-balancing \\ De nombreux sites utilisent un load-balancer pour répartir la charge des requêtes sur plusieurs serveurs esup-portail. Nous exposons ici une méthode qui permet de maintenir les différents serveurs synchrones. On suppose que l'adresse publique d'accès au portail est |
Si problème
Il est possible de revenir en arrière très rapidement, en remodifiant les 3 liens symboliques liés à la version du package esup-portail.
Cas du load-balancing
De nombreux sites utilisent un load-balancer pour répartir la charge des requêtes sur plusieurs serveurs esup-portail.
Nous exposons ici une méthode qui permet de maintenir les différents serveurs synchrones.
On suppose que l'adresse publique d'accès au portail est http://ent.univ.fr,
...
et
...
que
...
3
...
serveurs
...
réels
...
dont
...
installés
...
:
...
ent1.univ.fr,
...
ent2.univ.fr,
...
ent3.univ.fr.
...
Paramétrage
Dans le fichier esup.properties,
...
le
...
paramètre
...
esup.multiservers
...
doir
...
être
...
valué
...
à
...
true.
...
Si
...
vous
...
désirez
...
regrouper
...
les
...
logs
...
(et/ou
...
les
...
stats)
...
des
...
différents
...
instances
...
de
...
portail
...
dans
...
un
...
seul
...
fichier,
...
il
...
est
...
facile
...
de
...
modifier
...
le
...
fichier
...
de
...
propriétés
...
Logger.properties.
...
Voici
...
un
...
extrait
...
permettant
...
ceci
...
:
| Bloc de code |
|---|
{code} syslog_host=syslog.univ.fr log4j.appender.R=org.apache.log4j.net.SyslogAppender log4j.appender.R.SyslogHost=${syslog_host} log4j.appender.R.Facility=LOCAL5 {code} h2. Principe \\ Le principe est |
Principe
Le principe est d'utiliser
...
un
...
serveur
...
comme
...
maître
...
;
...
c'est
...
sur
...
ce
...
serveur
...
(ici,
...
ent1)
...
que
...
l'on
...
fera
...
les
...
différents
...
paramétrages,
...
compilations,
...
déploiements,
...
...
...
Ensuite,
...
il
...
suffit
...
de
...
déployer
...
l'environnement
...
de
...
production
...
vers
...
les
...
serveurs
...
'esclaves'.
...
En
...
pratique,
...
ceci
...
peut
...
se
...
faire
...
chaque
...
nuit,
...
depuis
...
un
...
script
...
exécuté
...
sur
...
les
...
esclaves,
...
qui
...
réalise
...
les
...
opérations
...
suivantes
...
:
- arrêt du portail
Span class command rsync
du répertoire /home/esup/PROD
...
- adaptation des quelques fichiers liés au serveur réel :
- Logger.properties
- portal.properties (logicalname)
- web.xml (call back CAS)
- ...
- relance du portail
Arrêt - Relance du portail
D'une manière générale, il est préconisé de faire un redémarrage du portail à intervalle régulier, toutes les nuits par exemple.