Il y a 389 articles et 19 utilisateurs inscrits (ce bandeau est défini dans MediaWiki:Sitenotice)
« Projet dev » : différence entre les versions
| (13 versions intermédiaires par 2 utilisateurs non affichées) | |||
| Ligne 43 : | Ligne 43 : | ||
! 312 !! testerpleade | ! 312 !! testerpleade | ||
|- | |- | ||
! | ! 313 !! formation | ||
|- | |- | ||
! | ! 314 !! kandinsky | ||
|- | |- | ||
! | ! 315 !! ad21-rd | ||
|- | |||
! 316 !! ad21-og | |||
|- | |||
! 105 !! bm-orleans | |||
|} | |} | ||
| Ligne 58 : | Ligne 62 : | ||
cd trunk | cd trunk | ||
cp -rp ~/Workspace/obspm/{dev,shell-scripts,specifications} . | cp -rp ~/Workspace/obspm/{dev,shell-scripts,specifications} . | ||
sed -i -e s/obspm/MonNouveauClient/g dev/build.xml | sed -i -e s/obspm/MonNouveauClient/g dev/build.xml | ||
svn import svn+ssh://192.168.123.16/home/svn/MonNouveauClient | svn import svn+ssh://192.168.123.16/home/svn/MonNouveauClient | ||
</syntaxhighlight> | </syntaxhighlight> | ||
{{important|Pensez à créer / modifier le build.xml }} | |||
Côté projet dev | Côté projet dev | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
| Ligne 81 : | Ligne 85 : | ||
mkdir -p data/{cdc,datadir,ead,files,images,images-preparees,pdf} | mkdir -p data/{cdc,datadir,ead,files,images,images-preparees,pdf} | ||
mv MonNouveauClient/dev/obspm.properties MonNouveauClient/dev/MonNouveauClient.properties | mv MonNouveauClient/dev/obspm.properties MonNouveauClient/dev/MonNouveauClient.properties | ||
ant -f | ant -f build_workspace.xml | ||
# Il faut répondre avec le nom exact tel qu'il apparait dans la liste | # Il faut répondre avec le nom exact tel qu'il apparait dans la liste | ||
ant build.pleade-libre | ant build.pleade-libre | ||
| Ligne 119 : | Ligne 123 : | ||
mkdir MonNouveauClient | mkdir MonNouveauClient | ||
cp ../obspm/build_workspace.xml . | cp ../obspm/build_workspace.xml . | ||
ln -s .. | ln -s ../dev | ||
ln -s .. | ln -s ../pleade-libre | ||
ln -s .. | ln -s ../pleade-entreprise | ||
ant -f build_workspace.xml | ant -f build_workspace.xml | ||
# Il faut répondre à la question en indiquant le nom du client tel qu'il apparait dans la liste | # Il faut répondre à la question en indiquant le nom du client tel qu'il apparait dans la liste | ||
| Ligne 127 : | Ligne 131 : | ||
sudo cp obsm.ajlsm.com.conf MonNouveauClient.ajlsm.com.conf | sudo cp obsm.ajlsm.com.conf MonNouveauClient.ajlsm.com.conf | ||
sed -i -e s/obspm/MonNouveauClient/g MonNouveauClient.ajlsm.com.conf | sed -i -e s/obspm/MonNouveauClient/g MonNouveauClient.ajlsm.com.conf | ||
vim MonNouveauClient.ajlsm.com.conf # modifier le port des ProxyPass et ProxyPassReverse avec celui du projet | |||
sudo a2ensite MonNouveauClient.ajlsm.com.conf | sudo a2ensite MonNouveauClient.ajlsm.com.conf | ||
cd ../sites-enabled | |||
ln -s ../sites-available/MonNouveauClient.ajlsm.com.conf | |||
sudo service apache2 reload | sudo service apache2 reload | ||
cd ~/recette/MonNouveauClient | cd ~/recette/MonNouveauClient | ||
ant create.db.and.grant.user | ant create.db.and.grant.user # [mot de passe compte mysql ajlsm sur mercure] | ||
ant build.pleade-libre | ant build.pleade-libre | ||
ant build.pleade-entreprise | ant build.pleade-entreprise | ||
Dernière version du 28 juillet 2016 à 08:53
Quickstart
[modifier | modifier le wikicode]Voici les étapes à suivre, détaillées plus bas:
- Vérifier les pré-requis
- Création du domaine OVH
- Sélection du préfix du port Tomcat dédié pour le client
- Installation sur sa machine
- Installation sur la recette (vm mercure)
Liste des ports utilisées
[modifier | modifier le wikicode]| 110 | ad33 |
|---|---|
| 164 | ad64 |
| 230 | ad971 |
| 240 | ad971-facet |
| 301 | acf |
| 302 | ad21 |
| 303 | ad27 |
| 304 | ad33 |
| 305 | ad44 |
| 306 | ad52 |
| 307 | ad64 |
| 308 | ad84 |
| 309 | bm-dijon |
| 310 | obspm |
| 311 | demo |
| 312 | testerpleade |
| 313 | formation |
| 314 | kandinsky |
| 315 | ad21-rd |
| 316 | ad21-og |
| 105 | bm-orleans |
En local
[modifier | modifier le wikicode]Côté dépôt
cd /tmp
mkdir MonNouveauClient
mkdir mkdir branches tags trunk
cd trunk
cp -rp ~/Workspace/obspm/{dev,shell-scripts,specifications} .
sed -i -e s/obspm/MonNouveauClient/g dev/build.xml
svn import svn+ssh://192.168.123.16/home/svn/MonNouveauClient
Côté projet dev
svn co svn+ssh://192.168.123.16/home/svn/dev
cd dev/clients
mkdir MonNouveauClient
cd MonNouveauClient
cp ../clients/obspm/client.xml .
sed -i -e s/obspm/MonNouveauClient/g client.xml
vim client.xml # mettre le nouvel port du projet (qui s'appelle un port >_<)
svn commit # fini coté projet dev
Création du projet
cd ~/Workspace
mkdir MonNouveauClient
cp ../dev/workspace/build-workspace.xml .
mkdir -p data/{cdc,datadir,ead,files,images,images-preparees,pdf}
mv MonNouveauClient/dev/obspm.properties MonNouveauClient/dev/MonNouveauClient.properties
ant -f build_workspace.xml
# Il faut répondre avec le nom exact tel qu'il apparait dans la liste
ant build.pleade-libre
ant build.pleade-entreprise
ant build.MonNouveauClient
Configuration du projet
cp app/build/pleade-libre/pleade-image/src/webapp/module-img-server/image-transformation-rules.xml data/images/
vim data/images/image-transformation-rules.xml
<regles>
<regle largeur=">500" hauteur=">500">
<hidef role="hidef" />
</regle>
</regles>
svn commit -m "initial config"
Ensuite, on peut configurer sa machine
ant create.db.and.grant.user
ant create.db.user
Sur la recette (vm: mercure)
[modifier | modifier le wikicode] ssh mercure
cd recette
mkdir MonNouveauClient
cp ../obspm/build_workspace.xml .
ln -s ../dev
ln -s ../pleade-libre
ln -s ../pleade-entreprise
ant -f build_workspace.xml
# Il faut répondre à la question en indiquant le nom du client tel qu'il apparait dans la liste
cd /etc/apache2/sites-available
sudo cp obsm.ajlsm.com.conf MonNouveauClient.ajlsm.com.conf
sed -i -e s/obspm/MonNouveauClient/g MonNouveauClient.ajlsm.com.conf
vim MonNouveauClient.ajlsm.com.conf # modifier le port des ProxyPass et ProxyPassReverse avec celui du projet
sudo a2ensite MonNouveauClient.ajlsm.com.conf
cd ../sites-enabled
ln -s ../sites-available/MonNouveauClient.ajlsm.com.conf
sudo service apache2 reload
cd ~/recette/MonNouveauClient
ant create.db.and.grant.user # [mot de passe compte mysql ajlsm sur mercure]
ant build.pleade-libre
ant build.pleade-entreprise
ant build.MonNouveauClient
ant start.tomcat
./tail_allSur une prod Windows
[modifier | modifier le wikicode]Télécharger et installer
[modifier | modifier le wikicode]- http://sourceforge.net/projects/winqconsole/
- http://www.imagemagick.org/script/binary-releases.php#windows
Télécharger et mettre dans C:\Windows\System32
[modifier | modifier le wikicode]- http://www.sliksvn.com/en/download
- http://the.earth.li/~sgtatham/putty/latest/x86/plink.exe
- http://the.earth.li/~sgtatham/putty/latest/x86/puttygen.exe
- http://the.earth.li/~sgtatham/putty/0.62/x86/pageant.exe
- http://gnuwin32.sourceforge.net/packages/sed.htm
- http://sourceforge.net/projects/tailforwin32/
- Dans C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup, mettre un nouveau raccourci avec le cible:
- C:\Windows\System32\pageant.exe C:\Users\ctate\.ssh\id_rsa.ppk
mkdir .ssh
puttygen
- [ Generate ]
- Mettre un mot de passe dans "Key passphrase:" et "Confirm passphrase:"
- [ Save public key ] ( Sauvegarder comme .ssh/id_rsa.pub )
- [ Save private key ] ( Sauvegarder comme .ssh/id_rsa.ppk )
Les tâches ANT importantes
[modifier | modifier le wikicode]- restart: Redémarre Tomcat.
- clean.restart: Nettoyer tomcat pendant un restart.
- super.clean.restart : Supprimer le datadir et nettoyer tomcat pendant un restart.
- rebuild : Arrêter tomcat et faire un rebuild et redémarrer tomcat.
- clean.rebuild : Arrêter tomcat et nettoyer tomcat et faire un rebuild et redémarrer tomcat.
- super.clean.rebuild : Arrêter tomcat et nettoyer tomcat et supprimer le datadir et faire un rebuild et redémarrer tomcat.
- drop.and.create.db: Pour supprimer la base de données et recommencer
- build.dev: Il faut faire ça chaque fois que le projet dev ou un fichier client.properties est modifié.
- luke : Voir les données dans lucene dans le datadir.
- svn.update : Mettre à jour tous les projets de SVN.
- svn.update.ajlsm, svn.update.pleade-libre, svn.update.pleade-entreprise, ... Mettre à jour un projet de SVN.
svn revert . -R && svn status # Pour voir l'état du svn
svn status | rm -rf $(awk '/^?/{$1 = ""; print $0}') # Pour supprimer tous les "unversioned files"
Les tâches annexes
[modifier | modifier le wikicode]- create.db : pour créer la base de données seulement.
- create.db.and.grant.user : pour créer la base de données et grant permissions à un utilisateur qui éxiste déjà.
- create.db.and.user : pour créer la base de données et l'utilisateur et grant permissions à un utilisateur qui n'éxiste pas encore.
- create.db.user : pour créer l'utilisateur dans la base de données seulement.
- grant.db.user : Pour grant permissions vers la base de données qui éxiste déjà.
- create.log.apps : Créer des shell scripts pour voir les logs et tail les logs (./tail_tomcat, ./less_cocoon, ...)
- drop.db : Supprimer la base de données.
- install : Installer tous les projets de SVN si les repertoire n'éxistent pas encore.
- install.ajlsm, install.pleade-libre, install.pleade-entreprise, ... : Installer un projet de SVN si le repertoire n'éxiste pas encore.
- configure.tomcat : pour configurer le context.xml et server.xml avec le port.prefix et les connexions base de données.
- eclipse.project.ajlsm, eclipse.project.pleade-libre, eclipse.project.pleade-entreprise, ... : Configurer un projet pour eclipse.
Détail de la syntaxe du fichier client.xml
[modifier | modifier le wikicode]- Les clients sont configuré dans dev/clients/{nom du client}/client.xml.
- Pour ajouter un nouveau client, créer un repertoire avec le nom d'un nouveau client, ou plus facile un projet dans svn, dans dev/clients. Copier le client.xml d'un autre client le plus proche dans le repertoire.
Voici un exemple court d'un fichier client.xml :
<client id="ad84">
<dev>
</dev>
<applications>
</applications>
<machine>
</machine>
</client>
<dev>...</dev>
[modifier | modifier le wikicode]Le section <dev> est pour configurer le client pour un développeur à AJLSM. Voici un explication pour plusiers properties importants :
- "port.prefix" qui est différent pour chaque client dans le projet dev pour démarrer plusiers tomcats pour plusiers clients au même temps.
- "database" peut-être "mysql", "postgresql", "oracle", "mssql" ou "hsql" si on utilisent les sources dans la branche Pleade_3.5 ou avant.
- "pleade.install.dir" est lié à "install.dir" mais c'est important pour bm-grenoble par exemple qui utilisent 2 applications AJLSM : pleade et notix, est c'est le chemin vers le webapp dans tomcat où vont les sources quand on fait un build.
- "install.dir" utilise "pleade.install.dir" est c'est envoyé au build.xml de pleade.
- "pleade.url-interne" l'url vers le webapp de tomcat pour faire des requêtes qui doivent éviter de contacter le réseau depuis le public URL, comme avec la publication.
- "pleade.public-url" L'url pour accèder l'application normalement, soit vers tomcat, soit vers apache.
- "pleade.data-dir" le chemin vers le datadir pour pleade, sans le préfixe "file://".
- "pleade.sdx-data-dir" le chemin vers le datadir pour pleade, avec le préfixe "file://".
- "pleade.img-server.racines" les chemins vers les images.
- "pleade.images.preparees" les chemins vers les images préparées.
- "pleade.ead-docs-dir" les chemins vers les documents ead.
<dev>
<property name="port.prefix" value="209" />
<property name="database" value="mysql"/>
<property name="pleade.install.dir" location="${basedir}/tomcat/webapps/ad84" />
<property name="install.dir" value="${pleade.install.dir}"/>
<property name="pleade.url-interne" value="http://${computer.hostname}:${port.prefix}80/ad84" />
<property name="pleade.public-url" value="http://${computer.hostname}:${port.prefix}80/ad84" />
<property name="pleade.data-dir" value="${basedir}/data/datadir/ad84"/>
<property name="pleade.sdx-data-dir" value="file://${pleade.data-dir}"/>
<property name="pleade.img-server.racines" value="/mnt/disk500g/ad84/images"/>
<property name="pleade.images.preparees" value="/mnt/disk500g/ad84/images-preparees"/>
<property name="pleade.images.preparees.copier" value="true"/>
<property name="pleade.ead-docs-dir" value="${basedir}/data/ead"/>
</dev>
<applications>...</applications>
[modifier | modifier le wikicode]Le section <applications> est pour specifier tous les applications AJLSM qui sont utilisés et configurés déja dans dev/applications/applications.xml (pleade-libre, pleade-entreprise, pleade-mets, sdx-ajlsm, ajlsm, ...). On peut aussi configurer d'autres applications dans svn pour le client. LCertains attributs peut-être utiliser comme :
- svn="..." l'URL vers le projet dans SVN.
- installDirProperty="pleade.install.dir" important pour bien faire le build pour pleade.
- childApplication="..." pleade-libre, pleade-entreprise ou pleade-mets selon le client.
- webappDir="..." le chemin relatif dans le projet dans SVN pour le client qui contient les fichiers webapp surchargés dans pleade, pour qu'Eclipse puisse copier directement des fichiers xsl, css, js, etc quand ils sont modifiés pour faire un refresh et voir les changements dans le browser pour éviter faire un build chaque fois.
Voici un exemple :
<applications>
<ad84 svn="svn+ssh://svn.ajlsm.com/home/svn/ad84/branches/new-design_20141010" installDirProperty="pleade.install.dir" childApplication="pleade-entreprise" webappDir="src/pleade3">
</ad84>
<ajlsm/>
<pleade-entreprise/>
<pleade-libre/>
<sdx-ajlsm/>
<tomcat />
<thesx />
</applications>
Il y a des targets ANT important pour faire des builds depuis le projet dev (prepare, build, build.only, client) pour un application. Quand on fait un build, les applications sont copiés dans le repertoire "app/build" dans le workspace pour être modifiés avant de faire un build. J'explique les 4 targets ANT ici pour l'application ad84 :
<target name="prepare.client">
[modifier | modifier le wikicode]- Il y a regex pour changer ces properties (install.dir, pleade.src.dir, src.module.thesaurus) dans le fichier ad84/ad84.properties
- Il y a regex pour éviter d'utiliser ces fichiers (~/ant.properties, ~/ad84.properties, ant.properties) qui peut-être sont utilisés par développeurs avant le projet dev, sinon, il y a un conflit avec un mélange de properties dans le build.
- Il y a regex pour éviter de mettre le webapp dans ${ant.home}/${build.webapp[^}]*.dir, parce que le projet dev va mettre le build dans tomcat/webapps directement.
- Après on va changer plusiers fichiers dans le projet du client ou peut-être les sources de pleade aussi selon le client, comme WEB-INF/properties/pleade-admin.properties par exemple.
<target name="prepare.ad84" unless="quick" depends="properties">
<antcall target="prepare.pleade-entreprise"/>
<regex file="app/build/ad84/ad84.properties" property="install.dir" value="${pleade.install.dir}" />
<regex file="app/build/ad84/ad84.properties" property="pleade.src.dir" value="${basedir}/app/build/pleade-entreprise" />
<regex file="app/build/ad84/ad84.properties" property="src.module.thesaurus" value="${basedir}/thesx/src/web/pleade" />
<regex file="app/build/ad84/build.xml" find='<property file="\$\{user\.home\}/\$\{project\.code\}.properties"\s*>' replace="" />
<regex file="app/build/ad84/build.xml" find='<property file="\$\{user\.home\}/\.ant\.properties"\s*/>' replace="" />
<regex file="app/build/ad84/build.xml" find='<property file="\./\.ant\.properties"\s*/>' replace="" />
<regex file="app/build/ad84/build.xml" find='\$\{ant\.home\}/\$\{build\.webapp[^}]*\.dir\}' replace="${basedir.regex.escaped}/app/build/ad84/build/webapp/pleade" />
<regex file="app/build/ad84/src/pleade3/WEB-INF/properties/pleade-admin.properties" property="pleade.url-interne" value="${pleade.url-interne}" />
</target>
<target name="build.client">
[modifier | modifier le wikicode]- Ça va ajouter les sources pour faire le build dans le repertoire app/build avant de modifier avec regex les fichiers.
- Après ça va appeler le target prepare qui est expliqué déjà.
- Après ça va appeler le build.xml du projet.
<target name="build.ad84" depends="properties">
<copy todir="app/build" verbose="true">
<fileset dir="." excludes="**/.project" includes="ad84/**"/>
<fileset dir="." excludes="**/.project" includes="pleade-libre/**"/>
<fileset dir="." excludes="**/.project" includes="pleade-entreprise/**"/>
<fileset dir="." excludes="**/.project" includes="sdx-ajlsm/**"/>
<fileset dir="." excludes="**/.project" includes="ajlsm/**"/>
</copy>
<antcall target="prepare.ad84"/>
<exec dir="app/build/ad84" executable="sh">
<arg value="ant.sh" />
<arg value="install" />
</exec>
</target>
<target name="build.only.client">
[modifier | modifier le wikicode]- C'est pour appeler tout les targets "copy.*" pour les applications utilisés, après les targets "compile.*" pour tout les applications avec des sources java, après copier les surcharges dans le repertoire surcharge dans le workspace.
<target name="build.only.ad84" depends="properties">
<antcall target="copy.pleade-libre"/>
<antcall target="copy.pleade-entreprise"/>
<antcall target="copy.ad84"/>
<antcall target="compile.sdx-ajlsm"/>
<antcall target="compile.pleade-libre"/>
<antcall target="compile.pleade-entreprise"/>
<copy todir="${install.dir}" overwrite="true">
<fileset dir="surcharge" />
</copy>
</target>
<target name="copy.client">
[modifier | modifier le wikicode]- Ici il faut spécifier les repertoires avec des fichiers pour le webapp pour être copiés dans le ${install.dir}
<target name="copy.ad84" depends="properties">
<copy todir="${install.dir}" overwrite="true">
<fileset dir="app/build/ad84/src/pleade3" includes="**">
</fileset>
</copy>
</target>
<machines>...</machines>
[modifier | modifier le wikicode]Ici on peut configurer plusiers machines qui contiennent des environments pour les clients (prod, preprod, demo, ...). Une machine peut contenir des attributs comme :
- host="..." l'address IP vers le serveur qui contient l'application.
- hostName="..." le nom plus lisible du serveur qui contient l'application.
- user="..." l'utilisateur UNIX pour accèder le serveur.
- devDir="..." le chemin vers le repertoire ou on peut stoquer des fichiers avec le projet dev.
- updateDir="..." le chemin vers le repertoire qui contient les version de l'application pour installer.
- internalsAcces="..." pour savoir quel fichier dans le projet internals contient les mot de passe pour se connecter au serveur.
Un élément <machine> peut contenir plusiers éléments <environment> si il y a plusiers applications installés ici (comme prod, preprod, ...). Voici un exemple :
<environment name="recet"
devDir="/apps/webserver/tomcat_preprod/output/build"
updateDir="/opt/data/webapps"
backupDir="/opt/data/webapps/backup"
symbolicLink="/opt/data/webapps/pleade-preprod"
webappDir="/apps/webserver/tomcat_preprod/output/build/webapps"
surchargeDir="/opt/data/webapps/surcharge"
dataDir="/opt/data/sdx-data-recet"
updateName="pleade-bmo-v${version}-${today}.tar.gz"
startupCmd="sudo /etc/init.d/tomcat_preprod start"
shutdownCmd="sudo /etc/init.d/tomcat_preprod stop"
tomcatTempDir="/apps/webserver/tomcat_preprod/output/build/temp"
tomcatWorkDir="/apps/webserver/tomcat_preprod/output/build/work"
tomcatLogsDir="/apps/webserver/tomcat_preprod/output/build/logs"
httpRestartCmd="sudo /etc/init.d/httpd restart"
version="1.3"
>
<property name="pleade.url-interne" value="http://localhost:8082/pleade_preprod"/>
Il y a plusiers attributs pour un environment, comme :
- devDir="..." le chemin vers le repertoire ou on peut stoquer des fichiers avec le projet dev.
- updateDir="..." le chemin vers le repertoire qui contient les version de l'application pour installer.
- backupDir="..." où on peut mettre des backups de la base de données, datadir et webapp.
- symbolicLink="..." le chemin vers le lien symbolique qui spécifie quel webapp est utilisé.
- webappDir="..." où se trouve les webapps envoyé au serveur.
- surchargeDir="..." où le client peut mettre des surcharges pour faire un build avec des surcharges et un webapp, comme pour msh-dijon par exemple.
- updateName="..." Comment écrire un .tar.gz pour envoyer le webapp au serveur.
- startupCmd="..." Pour se rappeler comment démarrer tomcat.
- shutdownCmd="..." Pour se rappeler comment arrêter tomcat.
- tomcatTempDir="..." le repertoire temporaire à supprimer pour nettoyer tomcat.
- tomcatWorkDir="..." le repertoire de travail à supprimer pour nettoyer tomcat.
- tomcatLogsDir="..." le repertoire où se trouve le log catalina.out de tomcat.
- httpdRestartCmd="..." Pour se rappeler comment redémarrer httpd
- apacheRestartCmd="..." Pour se rappeler comment redémarrer apache2
Les tâches ANT pour un environnement
[modifier | modifier le wikicode]Si on a configuré un environment comme preprod par exemple, on peut faire des choses utile après, comme :
- recet.build.msh-dijon : construire un build de l'application pour envoyer au serveur selon les properties pour l'environment.
- send.ant.to.recet.msh-dijon : Pour envoyer l'application ANT si il n'éxiste pas sur un serveur.
- send.build.xml.to.recet.msh-dijon : Pour envoyer un build.xml avec des commandes utiles pour redémarrer ou faire un build avec des surcharges comme msh-dijon par exemple.
- send.recet.webapp.to.pandor.u-bourgogne.fr : Pour envoyer le webapp avec rsync vers un serveur
- ssh.recet : Pour voir la commande pour connecter avec SSH vers un serveur.
- recet.steps.msh-dijon : voir les étapes pour installer un build pour mettre à jour un application à distance. Par exemple :
ant recet.steps.msh-dijon
[modifier | modifier le wikicode]ctate@ctate:~/projet/msh-dijon-113 $ ant recet.steps.msh-dijon
copy this file: dev/temp/environment/recet/send/update/update-RECET-msh-dijon-2015-01-27.tar.gz
to: ajlsmsh@pandor.u-bourgogne.fr:/opt/data/webapps
rsync -P dev/temp/environment/recet/send/update/update-RECET-msh-dijon-2015-01-27.tar.gz ajlsmsh@pandor.u-bourgogne.fr:/opt/data/webapps
then ssh to: ssh ajlsmsh@193.52.245.146
cd /opt/data/webapps
tar xzfv update-RECET-msh-dijon-2015-01-27.tar.gz
Backup database
mysqldump --max_allowed_packet=100M -u ajlsm -p pleade_20141126 > /opt/data/webapps/backup/update-RECET-msh-dijon-2015-01-27-backup.sql # password : w5s!pl#Tei
mysql -u ajlsm -p pleade_20141126 # password : w5s!pl#Tei
drop table module_eadeac_default; drop table module_eadeac_eac; drop table module_eadeac_eac_docs; drop table module_eadeac_ead; drop table module_eadeac_ead_docs; drop table module_eadeac_oai_dc; drop table module_eadeac_oai_dc_docs; drop table module_eadeac_qdc; drop table module_eadeac_qdc_docs;
Backup datadir
mv /opt/data/sdx-data-recet /opt/data/webapps/backup/update-RECET-msh-dijon-2015-01-27-datadir-backup
mkdir /opt/data/sdx-data-recet
Switch to new webapp
rm /opt/data/webapps/pleade-preprod
ln -s /opt/data/webapps/update-RECET-msh-dijon-2015-01-27 /opt/data/webapps/pleade-preprod
Shutdown tomcat
sudo /etc/init.d/tomcat_preprod stop
cleanup tomcat
rm -rf /apps/webserver/tomcat_preprod/output/build/temp/* /apps/webserver/tomcat_preprod/output/build/work/*
Startup tomcat
sudo /etc/init.d/tomcat_preprod start
Logs
tail -f /apps/webserver/tomcat_preprod/output/build/logs/catalina.out
tail -f /opt/data/webapps/pleade-preprod/WEB-INF/logs/cocoon-$(date +"%Y%m%d").log
tail -f /opt/data/webapps/pleade-preprod/WEB-INF/logs/sdx-$(date +"%Y%m%d").log
tail -f /opt/data/webapps/pleade-preprod/WEB-INF/logs/publication-$(date +"%Y%m%d").log
tail -f /opt/data/webapps/pleade-preprod/WEB-INF/logs/auto-publication-$(date +"%Y%m%d").log
Visit the site: https://pandor.u-bourgogne.fr/pleade_prod
or update files directly
from: /home/ctate/projet/msh-dijon-113/dev/temp/environment/recet/new/update-RECET-msh-dijon-2015-01-27
to: ajlsmsh@pandor.u-bourgogne.fr:
Commandes utiles pour travailler sur mercure
[modifier | modifier le wikicode]cd /home/ajlsm/recette/ad971
ant svn.update # update all projects
svn status pleade-libre # voir si il y a des modifications pour SVN. Vous pouvez ignorer les fichiers avec "X *pleade-image*" parce qu'ils sont des fichiers SVN external
cd pleade-libre
cd ..
svn commit -m "blah blah" pleade-libre # committer des sources dans pleade-libre
ant rebuild # Arrêter tomcat et faire un rebuild et redémarrer tomcat.
ant clean.rebuild # Si il y a des fichiers qui étaient supprimés dans les sources
ant super.clean.rebuild # Si vous voulez supprimer le datadir
ant drop.and.create.db # pour supprimer la base de données et recommencer
ant build.dev # il faut faire ça chaque fois que le projet dev ou un fichier client.properties est modifié.
Se mettre à la racine des sources pour voir les modifications et :
ajlsm@mercure:~/recette/ad971/ad971$ svn st -u
Pour commiter :
ajlsm@mercure:~/recette/ad971/ad971$ svn commit -m "Modification des formulaires de recherche pour gmaps"
Prérequis
[modifier | modifier le wikicode]Installer des paquets
[modifier | modifier le wikicode]sudo apt-get install subversion ant openjdk-7-jdk
Configurer l'accès au SVN en SSH
[modifier | modifier le wikicode]Le projet dev est dans SVN sur le serveur moorea. SVN est accessible depuis l'exterieur depuis le host svn.ajlsm.com, mais à l'interne à 192.168.123.16. Parce que j'utilisent le projet dev sur des serveurs à distant comme mercure mais aussi au bureau, je configure le fichier /etc/hosts pour le host svn.ajlsm.com :
192.168.123.16 moorea svn.ajlsm.com redmine.ajlsm.com mw.ajlsm.com
Sur le serveur moorea, configuration de l'utilisateur (remplacer ctate par votre utilisateur).
groupadd ctate
useradd -m -k -d -g ajlsm ctate
usermod -G ajlsm,ctate ctate
passwd ctate
vi /etc/ssh/sshd_config
/etc/init.d/sshd restart
Sur la nouvelle machine du développeur :
ssh-keygen -t dsa
ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_dsa.pub ctate@192.168.123.16
ssh-copy-id -i ~/.ssh/id_rsa.pub ctate@192.168.123.16
Environnement Linux
[modifier | modifier le wikicode]On commence par éditer le fichier /home/$USER/.profile et ajouter cette ligne :
export JAVA_HOME=/usr/lib/jvm/default-java