Serveur
| Description |
Valeur |
Commentaire
|
| Adresse IP |
176.31.229.74 |
-
|
| Nom de domaine |
ns226259.ovh.net |
-
|
| Tomcat production |
8080 |
-
|
| Tomcat recette |
9090 |
-
|
| SSH |
22 |
-
|
Utilisateurs Unix
| Utilisateur |
Description
|
| root |
gestion du serveur (AJLSM)
|
| ajlsm |
gestion de l'application (AJLSM)
|
| backupAgent |
gestion des sauvegardes (AJLSM)
|
Serveur de Sauvegarde
Un second serveur existe, pour les sauvegardes :
Logiciels
| Description |
Valeur |
Commentaire
|
| OS |
Debian 6.0.6 (squeeze) (amd64) |
- tous les logiciels proviennent du dépot debian.
- sauvegarde ?
|
| Java |
1.6.0_30 |
-
|
| Tomcat |
6.0.35-1+squeeze2 |
- issu des dépôts
- 2 instances ont été créée
|
| Apache |
2.2.16-6+squeeze4 |
issu des dépôts
|
| Imagemagick |
6.6.0.4-3 |
issu des dépôts
|
| Postgresql |
8.4.9-0squeeze1 |
issu des dépôts
|
Résolutions de problèmes courants
Le serveur Apache Tomcat à parfois du mal à redémarrer, il suffit de le relancer :
# Production
0 6 * * * /bin/bash /home/ajlsm/restartProd.sh
# Recette
0 6 * * * /bin/bash /home/ajlsm/restartPreProd.sh
Points de montage
Aucun.
Liens symboliques
Sauvegardes
Crontab
Expiration des sauvegardes
Tomcat
Suite à des problèmes avec le tomcat (et le serveur étends du Debian), nous décidons de mettre en place plusieurs instance de tomcat pour servir les deux applications (prod et pre-prod).
Localisation des serveur
| Description |
Production |
Recettage
|
| Emplacement |
"$AJLSM_HOME"/server/tomcat6-prod |
"$AJLSM_HOME"/server/tomcat6-pre-prod
|
| Commande |
tomcat6-instance-create /home/ajlsm/server/tomcat6-prod
|
tomcat6-instance-create -p 9090 -c 9005 /home/ajlsm/server/tomcat6-pre-prod
|
Ports d'écoutes
| Type de Port |
Production |
Recettage
|
| arrêt |
8005 |
9005
|
| écoute (connecteur HTTP) |
8080 |
9090
|
| redirection (connecteur HTTP) |
8443 |
9443
|
| écoute (connecteur AJP/1.3) |
8009 |
9009
|
| redirection (connecteur AJP/1.3) |
8443 |
9443
|
Liens vers l'application
| Production |
Recettage
|
ln -s webapps/current-pleade server/tomcat6-prod/webapps/odysseo
|
ln -s webapps/current-pleade-pprod server/tomcat6-pre-prod/webapps/odysseo_pprod
|
Configuration du serveur : server.xml
| Production |
Recettage
|
<Connector port="8009" protocol="AJP/1.3"
redirectPort="8443"
emptySessionPath="true"
/>
|
<Connector port="9009" protocol="AJP/1.3"
redirectPort="9443"
emptySessionPath="true"
/>
|
Allocation de mémoire
Scripts et redémarrage automatique
| Description |
Production |
Recettage
|
| Script
|
#!/bin/bash
"$AJLSM_HOME"/server/tomcat6-prod/bin/shutdown.sh
rm -rf "$AJLSM_HOME"/server/tomcat6-prod/temp/*
rm -rf "$AJLSM_HOME"/server/tomcat6-prod/work/*
"$AJLSM_HOME"/server/tomcat6-prod/bin/startup.sh
|
#!/bin/bash
"$AJLSM_HOME"/server/tomcat6-pre-prod/bin/shutdown.sh
rm -rf "$AJLSM_HOME"/server/tomcat6-pre-prod/temp/*
rm -rf "$AJLSM_HOME"/server/tomcat6-pre-prod/work/*
"$AJLSM_HOME"/server/tomcat6-pre-prod/bin/startup.sh
|
| Redémarrage |
"$AJLSM_HOME"/restartProd.sh
|
"$AJLSM_HOME"/restartPreProd.sh
|
cp restartProd.sh restartPreProd.sh
perl -i -p -e 's/-prod/-pre-prod/g' restartPreProd.sh
chmod u+x ./restartPr*
Apache
De façon à séparer autant que possible les deux applications, on va configurer les deux applications sur des ports différents.
| Description |
Production |
Recettage
|
| Port d'écoute |
80 |
90
|
Port d'écoute
L'application de pré-prod étant configurer pour travailler avec le port 90, il faut préciser à httpd d'écouter celui-ci. Pour cela, on va éditer le fichier /etc/apache2/ports.conf :
NameVirtualHost *:90
Listen 90
Production
<VirtualHost *:80>
Servername odysseo.generiques.org
ServerAlias odysseo.ajlsm.com odysseo.org odysseo.net odysseo.com
Alias /robots.txt /home/odysseo/pleade/robots.txt
Alias /aj_ap/ /home/odysseo/php/
Alias /aj_ap_pprod/ /home/odysseo/php_pprod/
Proxypass /pprod/ !
ProxyPass /awstats/ !
ProxyPass /awstatsclasses !
ProxyPass /awstatsicons !
ProxyPass /awstatscss !
ProxyPass /robots.txt !
ProxyPass /munin !
ProxyPass /cacti !
ProxyPass /aj_ap/ !
ProxyPass /aj_ap_pprod/ !
#ProxyPass /tzav/ ajp://localhost:8009/odysseo_tzav/
#ProxyPassReverse /tzav/ ajp://localhost:8009/odysseo_tzav/
# Redirection vers l'application de recette/pré-prod
RedirectPermanent /pprod/ http://odysseo.org:90/pprod/
ProxyPass / ajp://localhost:8009/odysseo/
ProxyPassReverse / ajp://localhost:8009/odysseo/
ErrorLog ${APACHE_LOG_DIR}/error-prod.log
# Possible values include: debug, info, notice, warn, error, crit, alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access-prod.log combined
</VirtualHost>
Pré-production
<VirtualHost *:90>
Servername odysseo.generiques.org
ServerAlias odysseo.ajlsm.com odysseo.org odysseo.net odysseo.com
Alias /robots.txt /home/odysseo/pleade/robots.txt
Alias /aj_ap/ /home/odysseo/php/
Alias /aj_ap_pprod/ /home/odysseo/php_pprod/
ProxyPass /awstats/ !
ProxyPass /awstatsclasses !
ProxyPass /awstatsicons !
ProxyPass /awstatscss !
ProxyPass /robots.txt !
ProxyPass /munin !
ProxyPass /cacti !
ProxyPass /aj_ap/ !
ProxyPass /aj_ap_pprod/ !
#ProxyPass /tzav/ ajp://localhost:9009/odysseo_tzav/
#ProxyPassReverse /tzav/ ajp://localhost:9009/odysseo_tzav/
<Location /pprod>
AuthType Basic
AuthName "Entrez vos identifiants"
AuthUserFile /home/odysseo/.htpasswd_pprod
AuthGroupFile /dev/null
Require valid-user
</Location>
ProxyPass /pprod/ ajp://localhost:9009/odysseo_pprod/
ProxyPassReverse /pprod/ ajp://localhost:9009/odysseo_pprod/
ErrorLog ${APACHE_LOG_DIR}/error-pre-prod.log
# Possible values include: debug, info, notice, warn, error, crit, alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access-pre-prod.log combined
</VirtualHost>
Application Pleade
Emplacement
L'utilisateur responsable des applications est ajlsm, le dossier de travail est donc /home/ajlsm :
├── datadir
├── datadir_postgres
│ └── main
├── datadir_pprod
├── Downloads
├── server
│ ├── tomcat6-pre-prod
│ └── tomcat6-prod
├── shell-scripts
│ ├── backup
│ ├── httpd-maintenance
│ └── logs
└── webapps
├── current-pleade -> pleade-20101006
├── current-pleade-pprod -> pleade_pprod-20101006
├── pleade-20101006
├── pleade_pprod-20101006
└── test_pages
Utilisateurs
Paramètres spéciaux
Production : $HOME/webapps/current-pleade/WEB-INF/properties/pleade-admin.properties
pleade.url-interne=http://localhost:8080/odysseo
pleade.public-url=http://odysseo.org
pleade.static-content=/home/odysseo/pages
pleade.theme-dir=context://theme
pleade.sdx-data-dir=file:///home/ajlsm/datadir
pleade.sdx-database=POSTGRESQL:pleade3
pleade.sdx-ead-repository=POSTGRESQL:pleade3
pleade.sdx-eac-repository=POSTGRESQL:pleade3
pleade.log-file-directory=context://WEB-INF/logs
pleade.zones=zone-ip-local:127\.0\.0\.1
pleade.eadeac.fs-pdf=/home/odysseo/images/pdf/
pleade.ead-docs-dir=file:/home/odysseo/ead/
pleade.cdc-src=context://module-eadeac/conf/cdc/cdc.xml
pleade.img-server.imagemagick-exe=/usr/bin/convert
pleade.img-server.racines=/home/odysseo/images/jpeg/:/home/odysseo/images/jpeg/partitions/:/home/odysseo/images/jpeg/periodiques/:/home/odysseo/images/jpeg/photos/:/home/odysseo/images/jpeg/archives/
pleade.images.preparees=/home/odysseo/images-preparees/
pleade.images.preparees.copier=true
pleade.images.filigrane=
pleade.filigrane-gravity=
pleade.nom-fichier-pas-filigrane=nowatermark
pleade.zones-pas-filigrane=
pleade.taille-mini-filigrane=150x150
Recette : HOME/webapps/current-pleade-pprod/WEB-INF/properties/pleade-admin.properties
pleade.url-interne=http://localhost:9090/odysseo_pprod
pleade.public-url=http://odysseo.org/pprod/
pleade.static-content=/home/odysseo/pages_pprod
pleade.theme-dir=context://theme
pleade.sdx-data-dir=file:/home/ajlsm/datadir_pprod
pleade.sdx-database=POSTGRESQL:pleade3
pleade.sdx-ead-repository=POSTGRESQL:pleade3
pleade.sdx-eac-repository=POSTGRESQL:pleade3
pleade.log-file-directory=context://WEB-INF/logs
pleade.zones=zone-ip-local:127\.0\.0\.1
pleade.eadeac.fs-pdf=/home/odysseo/images/pdf/
pleade.ead-docs-dir=file:/home/odysseo/ead_pprod/
pleade.cdc-src=context://module-eadeac/conf/cdc/cdc.xml
pleade.img-server.imagemagick-exe=/usr/bin/convert
pleade.img-server.racines=/home/odysseo/images/jpeg/:/home/odysseo/images/jpeg/partitions/:/home/odysseo/images/jpeg/periodiques/:/home/odysseo/images/jpeg/photos/:/home/odysseo/images/jpeg/archives/
pleade.images.preparees=/home/odysseo/images-preparees/
pleade.images.preparees.copier=true
pleade.images.filigrane=
pleade.filigrane-gravity=
pleade.nom-fichier-pas-filigrane=nowatermark
pleade.zones-pas-filigrane=
pleade.taille-mini-filigrane=150x150