Workshop ESUP4 ESUP V4 : installation et mise à jour via GIT Paris, 16 Mai 2013 V. Bonamy Copyright 2013 Consortium ESUP-Portail
Sommaire 1/3 Déroulement du workshop Recommandations (ou parti pris) Machine virtuelle Debian LDAP CAS PostgreSQL Apache Env. Bash pour ESUP 2
Sommaire 2/3 Installation/Configuration EsupPortail Récupération du package par Git Configuration LDAP+CAS Commit GIT Découverte IHM uportal4 GIT : patch PostgreSQL Ajout administrateur Attributs ldap attributs utilisateur uportal Attributs utilisateur groupes PAGS uportal Groupes PAGS Fragments Modif du look Montée de version Git bare interne 3
Portlets /opt/portlets Ant deployportletapp EsupTwitter EsupFileManager Récapitulatif Sommaire 3/3 4
Sommaire 1/3 Déroulement du workshop Recommandations (ou parti pris) Machine virtuelle Debian LDAP CAS PostgreSQL Apache Env. Bash pour ESUP 5
Recommandations (ou parti pris) Environnement Debian - 32 Bits Partie «Système OS» Par paquets (apt-get) outils :» emacs» git-core» gitg services :» Apache» Ldap» PostgreSQL 6
Recommandations (ou parti pris) Partie Java JDK 1.6 32 - bits install manuelle depuis distribution officielle Oracle (et non par paquet) /usr/local pour java, maven, ant /opt pour sources Esup4, tomcat, env.sh IDE / Editeur / GUI /... Ligne de commandes (pour git notamment) Edition simple (VI, gedit, emacs ) Gitg pour visualisation GIT Interfaces web EsupV4, Github,... 7
Recommandations (ou parti pris) On versionne en GIT Pour versioning interne des configurations Pour faciliter le travail sur N instances de dev, de preprod, de prod... Et pour faciliter les mises à jour... Configs, uportal,... On tente d'être le plus efficace et pragmatique possible : on diverge le moins possible. on utilise les IHMs d'administration d'uportal quand c'est possible (Portal Administration Tools), et quand ils fonctionnent. 8
Sommaire 1/3 Déroulement du workshop Recommandations (ou parti pris) Machine virtuelle Debian LDAP CAS PostgreSQL Apache Env. Bash pour ESUP 9
Machine virtuelle Workshop monté sur une machine virtuelle Object de la machine, install ESUPV4, cad héberger les services suivant : PostgreSQL Tomcat avec ESUP4 (et portlets) Apache en frontal du tomcat ESUP4 On y a installé également l'environnement SI «virtuelle» suivant : LDAP CAS Cela en plus des utilitaires git, emacs, java, etc. password esup 10
Paquets Mise en place de la machine virtuelle apt-get install emacs23-nox apt-get install git-core gitg apt-get install apache2 apt-get install postgresql apt-get install slapd Manuellement Jdk 1.6 (oracle.com) Apache-ant 1.8 (apache.org) Apache-maven-3 (apache.org) 11
Localhost 389 LDAP /home/esup/jxplorer/jxplorer.sh Comptes : cn=admin,dc=esup-portail,dc=org / esup uid=demo,ou=people,dc=esup-portail,dc=org / esup uid=esup,ou=people,dc=esup-portail,dc=org / esup 12
CAS Installation via cas-toolbox de Esup CF /opt/cas : Cas-toolbox-svn config.properties : Tomcat-cas (ln -s) Apache en proxy (ajp) Cas.univ.fr ldap.univ.fr (modification de /etc/hosts) cas.univ.fr (modification de /etc/hosts) Install manuelle (DL de apache.org) Confs par défaut contexts dans webapps (ROOT pour CAS) Conf port (server.xml) : 80xx 90xx /etc/init.d/tomcat-cas Ssl avec certificat wildcard (auto-signé ici) 13
PostgreSQL Host all all 127.0.0.1/8 password Psql Create database esup4 ; Create user esup4 with password 'esup' ; Grant all on database esup4 to esup4 ; 14
Sommaire 1/3 Déroulement du workshop Recommandations (ou parti pris) Machine virtuelle Debian LDAP CAS PostgreSQL Apache Env. Bash pour ESUP 15
Apache ProxyPass AJP Virualhost SSL ent.univ.fr Balancer pour load-balancing/failover ent1.univ.fr, ent2.univ.fr pour ProxyCas sticky session avec cookie positionné par apache simplement 16
Sommaire 1/3 Déroulement du workshop Recommandations (ou parti pris) Machine virtuelle Debian LDAP CAS PostgreSQL Apache Env. Bash pour ESUP 17
/opt/esup-env Env scripts - env.sh pour JAVA_HOME, JAVA_OPTS (mémoire, var env, system property...), M2_HOME, PATH, etc. scripts éventuels pour déploiement, init.d,... trustore java /opt/esup-env sous git Source env.sh dans.bashrc utilisateur esup 18
Sommaire 2/3 Installation/Configuration EsupPortail Récupération du package par Git Configuration LDAP+CAS Commit GIT Découverte IHM uportal4 GIT : patch PostgreSQL Ajout administrateur Attributs ldap attributs utilisateur uportal Attributs utilisateur groupes PAGS uportal Groupes PAGS Fragments Modif du look Montée de version Git bare interne 19
GIT Récupération EsupPortail git clone https://github.com/esupportail/esupuportal.git cd esup-uportal/ git checkout -b esup4-univ uportal-4.0.11-esup-1 20
Voir la doc / README build.properties filters/esup.properties pom.xml Configuration 21
Déploiement Avec initialisation de la base : ant -Dmaven.test.skip=true clean initportal 22
Lancement./startup.sh Ou mieux : /etc/init.d/tomcat-esup restart 23
Gestion configurations On comit dans git : git commit -a -m «EsupPortail de base avec cas+ldap» 24
GIT - Application patch PostgreSQL : pb d'encodage patch spécifique pour une installation sous postgresql CF Doc Esup : http://www.esup-portail.org/pages/viewpage.action?p on réinitialise la base après : ant initdb 25
Java System Properties Utiliser les Java System Property en var env d'exécution But : Même code/projet pour les différents environnements ('dev', 'preprod', 'prod' n 'prod' (load-balancing) A minima on y indique les virtualhosts (pour CAS). Pour le reste (postgresql, ldap, etc.) on peut aussi 'jouer' avec /etc/hosts 26
Ajout administrateur ant -Dmaven.test.skip=true data-export -Dtype=group-membership -Dsysid="Portal Administrators" -Ddir=/tmp emacs /tmp/portal_administrators.groupmembership.xml ant -Dmaven.test.skip=true data-import -Dfile=/tmp/Portal_Administrators.groupmembership.xml 27
Nettoyage Suppression des modules qui ne servent pas : Cas Pluto-testsuite http://www.esup-portail.org/pages/viewpage.action?pag 28
Attributs utilisateurs persondirectorycontext.xml On ajoute par exemple l'attribut departmentnumber department 29
Groupes Groupes «locaux statiques» IHM sur le portail Groupes PAGS doc Jasig / uportal : https://wiki.jasig.org/pages/viewpage.action?pageid=5 (PAGSGroupStoreConfig.xml) exemple groupe DSI depuis departmentnumber = DSI 30
Logs Ex : Ajout de logs pour appartenance aux groupes 31
Les Fragments But : Ajout d'un fragment DSI avec onglets et portlets https://wiki.jasig.org/display/upm40/layout+manageme IHM : Rappel : Audit des fragments Portlet Import-Export Manage DLM Fragments Fragment = layout d'un user «lo» qui s'applique à toute une population par défaut. 32
Etapes : Les Fragments Ajout d'un user dsi-lo : on s'inspire d'admin-lo : Ajout d'un fragment-definition (audience) : on s'inspire d'admin Ajout d'un fragment-layout : on s'inspire d'admin-lo 3 fichiers : dsi-lo.user.xml Dsi.fragment-definition.txt dsi-lo.fragment-layout.xml 33
Cache On vide le cache (IHM) Les Fragments Déconnexion / Reconnexion Edition du fragment IHM : Manage DLM Fragment Groupe dsi-lo Dsi-lo : membre du groupe layout owner! 34
Logo Look On change l'image, on n'oublie pas de commiter dans git. CSS On s'ajoute une css univ-fr.css dans skin.xml On redéploie Ensuite pour tester: penser au «Toggle JS/CSS Aggregation» 35
GIT! Montée de version Git tag, gitg, vue github les différents tags Git fetch : on met à jour les images de nos remotes Git merge xxx : on merge avec le dernier tag de chez esup :) 36
Git bare Un Git référence en interne Pour référence en interne : les instances internes se connectent tous dessus pour du push/pull git init --bare 37
Portlets /opt/portlets Ant deployportletapp EsupTwitter EsupFileManager Récapitulatif Sommaire 3/3 38
Portlets Répertoire /opt/portlets Récupération des portlets avec git ou à défaut avec svn (avec.svn) voire en utilisant git submodule aussi... Installation portlets Compilation / package Mvn clean package Déploiement Ant deployportletapp Publication IHM 39
Portlets : esup-filemanager git clone https://github.com/esupportail/esup-filemanager.git cd esup-filemanager/ git checkout -b esup-filemanager-univ esup-filemanager-2.2.2 emacs -nw src/main/webapp/web-inf/context/drives.xml git add. git commit -m "bob -> /home/esup/" mvn clean package cd /opt/esup-uportal ant deployportletapp -DportletApp=/opt/portlets/esupfilemanager/target/esup-filemanager.war 40
Portlets /opt/portlets Ant deployportletapp EsupTwitter EsupFileManager Récapitulatif Sommaire 3/3 41
Récapitulatif GIT Demande un peu de temps pour être apprivoisé par l'exploitant, mais le jeu en vaut la chandelle ;) Propriétés Mettre au point, tester et déployer en production avec plusieurs instances ESUP le choix des propriétés et de leur évaluation est primordial. Idée : avoir un seul et même «binaire» (webapps) OK pour tous les environnements. java system property /etc/hosts maven properties override... 42