Il y a 389 articles et 19 utilisateurs inscrits (ce bandeau est défini dans MediaWiki:Sitenotice)

« Doc/College de France » : différence entre les versions

De AJLSM
Aller à la navigation Aller à la recherche
m missing heading section
Aucun résumé des modifications
 
(15 versions intermédiaires par 3 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
{{important|Tout ce fait en {{value|root}}}}
{{Maintenance}}
{{important|Des modifications sont effectuées sur les sources Pleade et sur le serveur par les agents du Collège de France}}
{{notice|Tout ce fait en {{value|root}}}}
 
Sur les serveurs, on ne peut pas se connecter en {{value|root}} directement, il faut passer par l'utilisateur {{value|ajlsm}}.
 
== Serveur passerelle : {{value|Bernard}} ==
 
Le serveur {{value|bernard}} est un serveur passerelle d'une DMZ.
 
Derrière la DMZ, l'intranet comprends le serveur {{value|schaeffer}},
sur lequel est installé les applications.
Ce serveur n'est pas directement visible depuis l'extérieur
 
Toute la documentation sur les différentes configurations techniques se trouvent sur le redmine et le svn.
 
<syntaxhighlight lang="bash">
ssh ajlsm@salamandre.college-de-france.fr
</syntaxhighlight>
 
* SSH : port {{value|22}}, utilisateurs : {{value|root}} et {{value|ajlsm}}, accès par clé publique ou mot de passe.
* Nom de domaine : [http://salamandre.college-de-france.fr salamandre.college-de-france.fr]
* Adresse IP : {{path|192.168.2.108}}
 
=== Configuration SSH avec rebond ===
 
Pour accéder directement au serveur {{value|schaeffer}}, on crée la configuration suivante sur le PC local dans .ssh/config
 
<syntaxhighlight lang="bash">
vim .ssh/config
 
Host bernard
        User ajlsm
        HostName salamandre.college-de-france.fr
 
Host schaeffer
        User ajlsm
        HostName 192.168.202.122
        ProxyCommand ssh bernard /usr/bin/nc %h %p
 
</syntaxhighlight>
 
Au préalable, copiez votre clé SSH publique depuis .ssh/id_rsa.pub dans ~/.ssh/authaurized_keys du serveur de rebond.
 
=== Utilisation du rebond SSH avec un outil FTP (Filezilla, Cyberduck) ===
 
On commence par rapatrier la connexion du rebond vers sa machine :
 
<syntaxhighlight lang="bash">
ssh -L 2222:192.168.202.122:22 bernard
</syntaxhighlight>
 
{{important|Attention, l'arrêt de cette commande arrête le rebond.}}
 
Puis, on lance la connexion dans le logiciel SFTP.
 
Par exemple :
* Serveur : localhost
* Port : 2222
* Utilisateur : ajlsm
 
== {{value|Schaeffer}} (serveur publique) ==
 
* Adresse IP : {{path|192.168.202.122}}, réseau local
* Nom de domaine : {{path|schaeffer.college-de-france.fr}}, résolu par un DNS
* tomcat : {{value|?}}
* SSH : port {{value|22}}, utilisateurs : {{value|root}} et {{value|ajlsm}}, accès par clé publique.
 
 
==== Logiciels ====
 
* OS : {{value|Red Hat Enterprise Linux Server release 6.1 (Santiago)}} (amd64)
* Java : {{value|1.6.0_21-b07}}
* Tomcat : {{value|6.0.29}}, binaire provenant du site officiel
* Apache : {{value|2.2.15+15.el6_2.1}}, issu des dépôts
* Imagemagick : {{value|6.5.4.7+5.el6}}, issu des dépôts
* Postgresql : {{value|8.4.7+2.el6}}, issu des dépôts
 
5 instances de Tomcat ont été créées :
 
# {{value|atelier}},
# {{value|home}},
# {{value|preprod}},
# {{value|prod}},
# {{value|slecture}}.


== Serveur ==
=== Utilisateurs ===
=== Logiciels ===
== Sauvegardes ==
== Sauvegardes ==
{{todo|Pas de dossier {{path|/home/backupAgent}}, on suppose que les sauvegardes sont gérées par le collège de France. Cela reste à confirmer}}
=== Crontab ===
=== Crontab ===
L'utilisateur {{value|root}} a les tâches cron suivantes :
<syntaxhighlight lang="bash">
# Redémarrage du tomcat internet
#1 5 * * * root /bin/sh /opt/tomcat-6.0.29-prod/bin/shutdown.sh -force
#2 5 * * * root /bin/rm -rf /opt/tomcat-6.0.29-prod/temp/* /opt/tomcat-6.0.29-prod/temp/*
#3 5 * * * root /bin/sh /opt/tomcat-6.0.29-prod/bin/startup.sh
</syntaxhighlight>
Aucune tâche cron pour l'utilisateur {{value|ajlsm}}.
== Tomcat ==
== Tomcat ==
=== Localisation des serveur ===
 
=== Localisation des serveurs ===
{| class="wikitable sortable"
|-
! Description !! Atelier !! Home !! Recettage !! Production !! Salle de Lecture
|-
| Emplacement
|| {{path|/opt/tomcat-6.0.29-atelier}}
|| {{path|/opt/tomcat-6.0.29-home}}
|| {{path|/opt/tomcat-6.0.29-preprod}}
|| {{path|/opt/tomcat-6.0.29-prod}}
|| {{path|/opt/tomcat-6.0.29-slecture}}
|-
| Commande || -
|| {{notice|semle incomplet}}
|| - || - || -
|-
| Commande || - || - || - || - || -
|}
 
=== Ports d'écoutes ===
=== Ports d'écoutes ===
{| class="wikitable sortable"
|-
! Type de Port !! Atelier !! Home !! Recettage !! Production !! Salle de Lecture
|-
| arrêt
|| {{value|800''8''}}
|| -
|| {{value|800''1''}}
|| {{value|800''2''}}
|| {{value|800''3''}}
|-
| écoute (connecteur HTTP)
|| {{value|81''10''}}
|| -
|| {{value|81''04''}}
|| {{value|81''02''}}
|| {{value|81''06''}}
|-
| redirection (connecteur HTTP)
|| {{value|84''47''}}
|| -
|| {{value|84''43''}}
|| {{value|84''43''}}
|| {{value|84''43''}}
|-
| écoute (connecteur AJP/1.3)
|| {{value|81''11''}}
|| -
|| {{value|81''05''}}
|| {{value|81''03''}}
|| {{value|81''07''}}
|-
|-
| redirection (connecteur AJP/1.3)
|| {{value|84''47''}}
|| -
|| {{value|84''43''}}
|| {{value|84''43''}}
|| {{value|84''43''}}
|-
|}
=== Liens vers l'application ===
=== Liens vers l'application ===
{{remarque|On définit le chemin vers le dossier des applications dans le fichier {{path|{{var|$HOME}}/.bashrc}} de la façon suivante :
<syntaxhighlight lang="bash">
export WEBAPPS="/home/www/webapp"
</syntaxhighlight>
Effectué pour l'utilisateur {{value|ajlsm}} et {{value|root}}}}
{| class="wikitable sortable"
|-
!  Atelier !! Home !! Recettage !! Production !! Salle de Lecture
|-
||
* atelier1 -> {{path|{{var|$WEBAPPS}}/cdf-atelier-pleade-20121102/atelier1}}
* atelier2 -> {{path|{{var|$WEBAPPS}}/cdf-atelier-pleade-20121102/atelier2}}
* atelier3 -> {{path|{{var|$WEBAPPS}}/cdf-atelier-pleade-20121102/atelier3}}
|| -
|| preprod -> {{path|{{var|$WEBAPPS}}/pleade-preprod-current}}
|| prod -> {{path|{{var|$WEBAPPS}}/pleade-prod-current}}
|| slecture -> {{path|{{var|$WEBAPPS}}/pleade-slecture-current}}
|}
=== Configuration du serveur : server.xml ===
=== Configuration du serveur : server.xml ===
{| class="wikitable sortable"
|-
!  Atelier !! Home !! Recettage !! Production !! Salle de Lecture
|-
|}
=== Allocation de mémoire ===
=== Allocation de mémoire ===
Toutes les instances ont les même paramètres :
* {{value|Xms400m}} ;
* {{value|Xmx5000m}}.
{| class="wikitable sortable"
|-
!  Atelier !! Home !! Recettage !! Production !! Salle de Lecture
|-
|| <syntaxhighlight lang="bash">JAVA_OPTS="-Xms400m -Xmx5000m -Djava.awt.headless=true -server"</syntaxhighlight>
|| -
|| <syntaxhighlight lang="bash">JAVA_OPTS="-Xms400m -Xmx5000m -Djava.awt.headless=true -server"</syntaxhighlight>
|| <syntaxhighlight lang="bash">JAVA_OPTS="-Xms400m -Xmx5000m -Djava.awt.headless=true -server"</syntaxhighlight>
|| <syntaxhighlight lang="bash">JAVA_OPTS="-Xms400m -Xmx5000m -Djava.awt.headless=true -server"</syntaxhighlight>
|}
=== Scripts et redémarrage automatique ===
=== Scripts et redémarrage automatique ===
Bonjour,
J'ai modifié le script bash que vous avez fourni pour qu'il soit générique et permette de gérer les différentes instances. Vous le trouverez en pièce jointe et sur schaeffer dans {{path|/etc/init.d/tomcat-custom}}.
Son utilisation est proche de celle de vos scripts, à la différence qu'il faut indiquer l'instance tomcat à démarrer :
<syntaxhighlight lang="bash">
/etc/init.d/tomcat-custom stop atelier
</syntaxhighlight>
Vous constaterez que tous les paramètres nécessaires au script sont inclus dans celui-ci. J'ai donc commenté l'inclusion du fichier {{path|/etc/sysconfig/tomcat-*}}.
Une fois son fonctionnement validez, vous pourrez supprimer les scripts :
* {{path|/etc/init.d/tomcat-preprod}} ;
* {{path|/etc/init.d/tomcat-prod}} ;
* {{path|/etc/init.d/tomcat-slecture}}.
Et rajouter les entrées correspondante dans {{cmd|crontab}}.
<syntaxhighlight lang="bash">
#!/bin/bash
# DESCRIPTION
# Modification du script de redémarrage tomcat pour le rendre générique
#
# USAGE
# /etc/init.d/tomcat-custom restart atelier|preprod|prod|slecture
#
# EXAMPLE
# /etc/init.d/tomcat-custom restart atelier
#
#Tomcat
#
#chkconfig: 345 84 15
#Description: Start up the Tomcat servlet engine
#Config: /etc/sysconfig/tomcat-preprod
#processname: tomcat-preprod
#pidfile: /var/run/catalina-preprod.pid
#Source function library
. /etc/init.d/functions
#Loading the configuration parameters
#if [ -f /etc/sysconfig/tomcat-preprod ]; then
#  . /etc/sysconfig/tomcat-preprod
#fi
RETVAL=0
catalina_homes="/opt/tomcat-6.0.29" # racine commune de TOUTES les instances Tomcat
instance="$2" # instance à démarrer/arrêter (doit être fourni en paramètre)
instanceList=("atelier" "preprod" "prod" "slecture") # liste des applications gérées
# Si l'instance est indéfinie on quitte !
if [[ -z "$instance" ]]
then
IFS="," # séparator pour les éléments de la liste
printf "[!] Vous devez indiquer une instance parmi: %s\n" "${instanceList[*]}"
exit 1
else
JAVA_HOME="/opt/java/jdk1.6.0_21"
PATH=$PATH:"$JAVA_HOME/bin"
CATALINA_HOME="$catalina_homes-$instance/" # dossier de l'instance
CATALINA_BASE="$CATALINA_HOME"
fi
case "$1" in
start)
if [ -f $CATALINA_HOME/bin/startup.sh ];
  then
  logger -s "Starting Tomcat"
  /bin/su -l root -c $CATALINA_HOME/bin/startup.sh
  RETVAL=$?
  [ $RETVAL = 0 ] && touch /var/lock/subsys/tomcat-"$instance"
fi
;;
stop)
if [ -f $CATALINA_HOME/bin/shutdown.sh ];
  then
  logger -s "Stopping Tomcat"
  /bin/su -l root -c $CATALINA_HOME/bin/shutdown.sh
  RETVAL=$?
  [ $RETVAL = 0 ] && rm -f /var/lock/subsys/tomcat-"$instance"
fi
;;
restart)
$0 stop
$0 start
;;
version)
if [ -f $CATALINA_HOME/bin/version.sh ];
  then
  logger -s "Display Tomcat Version"
  /bin/su -l root -c $CATALINA_HOME/bin/version.sh
  RETVAL=$?
fi
;;
*)
echo "Usage: $0 {start|stop|restart|version}"
exit 1
;;
esac
exit $RETVAL
</syntaxhighlight>
== PostreSQL ==
== PostreSQL ==
== Apache ==
== Apache ==
=== Port d'écoute ===
=== Port d'écoute ===
=== Atelier ===
=== Home ===
=== Recette ===
=== Production ===
=== Production ===
=== Recette ===
=== Salle de Lecture ===
== Application(s) Pleade ==
== Application(s) Pleade ==
=== Emplacements des fichiers ===
=== Emplacements des fichiers ===
Ligne 28 : Ligne 331 :
==== ./WEB-INF/cocoon.xconf ====
==== ./WEB-INF/cocoon.xconf ====
=== Paramètres de publication ===
=== Paramètres de publication ===
= Import données Armadillo =
Il y a un cron dans cocoon.xconf pour college-de-france pour faire le import des données armadillo :
<syntaxhighlight lang="bash">
<trigger name="importArmadillo" target="org.apache.cocoon.components.cron.CronJob/importArmadillo" concurrent-runs="false">
      <cron>1 * * ? * * *</cron>
</trigger>
</syntaxhighlight>
Voir le importToXml methode de ArmadilloGenerator.java


[[category:College de France]]
[[category:College de France]]
[[category:Doc]]
[[category:Doc]]
[[category:Serveur]]
[[category:Serveur]]
[[category:Tomcat]]

Dernière version du 18 mai 2015 à 10:16

Notice :
Application sous contrat de Maintenance.
Important :
Des modifications sont effectuées sur les sources Pleade et sur le serveur par les agents du Collège de France.
Notice :
Tout ce fait en root.

Sur les serveurs, on ne peut pas se connecter en root directement, il faut passer par l'utilisateur ajlsm.

Serveur passerelle : Bernard

[modifier | modifier le wikicode]

Le serveur bernard est un serveur passerelle d'une DMZ.

Derrière la DMZ, l'intranet comprends le serveur schaeffer, sur lequel est installé les applications. Ce serveur n'est pas directement visible depuis l'extérieur

Toute la documentation sur les différentes configurations techniques se trouvent sur le redmine et le svn.

ssh ajlsm@salamandre.college-de-france.fr
  • SSH : port 22, utilisateurs : root et ajlsm, accès par clé publique ou mot de passe.
  • Nom de domaine : salamandre.college-de-france.fr
  • Adresse IP : 192.168.2.108

Configuration SSH avec rebond

[modifier | modifier le wikicode]

Pour accéder directement au serveur schaeffer, on crée la configuration suivante sur le PC local dans .ssh/config

vim .ssh/config

Host bernard
        User ajlsm
        HostName salamandre.college-de-france.fr

Host schaeffer
        User ajlsm
        HostName 192.168.202.122
        ProxyCommand ssh bernard /usr/bin/nc %h %p

Au préalable, copiez votre clé SSH publique depuis .ssh/id_rsa.pub dans ~/.ssh/authaurized_keys du serveur de rebond.

Utilisation du rebond SSH avec un outil FTP (Filezilla, Cyberduck)

[modifier | modifier le wikicode]

On commence par rapatrier la connexion du rebond vers sa machine :

ssh -L 2222:192.168.202.122:22 bernard


Important :
Attention, l'arrêt de cette commande arrête le rebond..

Puis, on lance la connexion dans le logiciel SFTP.

Par exemple :

  • Serveur : localhost
  • Port : 2222
  • Utilisateur : ajlsm

Schaeffer (serveur publique)

[modifier | modifier le wikicode]
  • Adresse IP : 192.168.202.122, réseau local
  • Nom de domaine : schaeffer.college-de-france.fr, résolu par un DNS
  • tomcat : ?
  • SSH : port 22, utilisateurs : root et ajlsm, accès par clé publique.


  • OS : Red Hat Enterprise Linux Server release 6.1 (Santiago) (amd64)
  • Java : 1.6.0_21-b07
  • Tomcat : 6.0.29, binaire provenant du site officiel
  • Apache : 2.2.15+15.el6_2.1, issu des dépôts
  • Imagemagick : 6.5.4.7+5.el6, issu des dépôts
  • Postgresql : 8.4.7+2.el6, issu des dépôts

5 instances de Tomcat ont été créées :

  1. atelier,
  2. home,
  3. preprod,
  4. prod,
  5. slecture.
To do :
Pas de dossier /home/backupAgent, on suppose que les sauvegardes sont gérées par le collège de France. Cela reste à confirmer.

L'utilisateur root a les tâches cron suivantes :

# Redémarrage du tomcat internet
#1 5 * * * root /bin/sh /opt/tomcat-6.0.29-prod/bin/shutdown.sh -force
#2 5 * * * root /bin/rm -rf /opt/tomcat-6.0.29-prod/temp/* /opt/tomcat-6.0.29-prod/temp/*
#3 5 * * * root /bin/sh /opt/tomcat-6.0.29-prod/bin/startup.sh

Aucune tâche cron pour l'utilisateur ajlsm.

Localisation des serveurs

[modifier | modifier le wikicode]
Description Atelier Home Recettage Production Salle de Lecture
Emplacement /opt/tomcat-6.0.29-atelier /opt/tomcat-6.0.29-home /opt/tomcat-6.0.29-preprod /opt/tomcat-6.0.29-prod /opt/tomcat-6.0.29-slecture
Commande -
Notice :
semle incomplet.
- - -
Commande - - - - -

Ports d'écoutes

[modifier | modifier le wikicode]
Type de Port Atelier Home Recettage Production Salle de Lecture
arrêt 8008 - 8001 8002 8003
écoute (connecteur HTTP) 8110 - 8104 8102 8106
redirection (connecteur HTTP) 8447 - 8443 8443 8443
écoute (connecteur AJP/1.3) 8111 - 8105 8103 8107
redirection (connecteur AJP/1.3) 8447 - 8443 8443 8443

Liens vers l'application

[modifier | modifier le wikicode]

Remarques : On définit le chemin vers le dossier des applications dans le fichier $HOME/.bashrc de la façon suivante :

export WEBAPPS="/home/www/webapp"

Effectué pour l'utilisateur ajlsm et root.

Atelier Home Recettage Production Salle de Lecture
  • atelier1 -> $WEBAPPS/cdf-atelier-pleade-20121102/atelier1
  • atelier2 -> $WEBAPPS/cdf-atelier-pleade-20121102/atelier2
  • atelier3 -> $WEBAPPS/cdf-atelier-pleade-20121102/atelier3
- preprod -> $WEBAPPS/pleade-preprod-current prod -> $WEBAPPS/pleade-prod-current slecture -> $WEBAPPS/pleade-slecture-current


Configuration du serveur : server.xml

[modifier | modifier le wikicode]
Atelier Home Recettage Production Salle de Lecture

Allocation de mémoire

[modifier | modifier le wikicode]

Toutes les instances ont les même paramètres :

  • Xms400m ;
  • Xmx5000m.
Atelier Home Recettage Production Salle de Lecture
JAVA_OPTS="-Xms400m -Xmx5000m -Djava.awt.headless=true -server"
-
JAVA_OPTS="-Xms400m -Xmx5000m -Djava.awt.headless=true -server"
JAVA_OPTS="-Xms400m -Xmx5000m -Djava.awt.headless=true -server"
JAVA_OPTS="-Xms400m -Xmx5000m -Djava.awt.headless=true -server"

Scripts et redémarrage automatique

[modifier | modifier le wikicode]

Bonjour, J'ai modifié le script bash que vous avez fourni pour qu'il soit générique et permette de gérer les différentes instances. Vous le trouverez en pièce jointe et sur schaeffer dans /etc/init.d/tomcat-custom. Son utilisation est proche de celle de vos scripts, à la différence qu'il faut indiquer l'instance tomcat à démarrer :

/etc/init.d/tomcat-custom stop atelier

Vous constaterez que tous les paramètres nécessaires au script sont inclus dans celui-ci. J'ai donc commenté l'inclusion du fichier /etc/sysconfig/tomcat-*. Une fois son fonctionnement validez, vous pourrez supprimer les scripts :

  • /etc/init.d/tomcat-preprod ;
  • /etc/init.d/tomcat-prod ;
  • /etc/init.d/tomcat-slecture.

Et rajouter les entrées correspondante dans crontab.

#!/bin/bash
# DESCRIPTION
# 	Modification du script de redémarrage tomcat pour le rendre générique
#
# USAGE
#		/etc/init.d/tomcat-custom restart atelier|preprod|prod|slecture
#
# EXAMPLE
#		/etc/init.d/tomcat-custom restart atelier
#
#Tomcat
#
#chkconfig: 345 84 15
#Description: Start up the Tomcat servlet engine
#Config: /etc/sysconfig/tomcat-preprod
#processname: tomcat-preprod
#pidfile: /var/run/catalina-preprod.pid

#Source function library
. /etc/init.d/functions

#Loading the configuration parameters
#if [ -f /etc/sysconfig/tomcat-preprod ]; then
#  . /etc/sysconfig/tomcat-preprod
#fi

RETVAL=0

catalina_homes="/opt/tomcat-6.0.29" # racine commune de TOUTES les instances Tomcat
instance="$2" # instance à démarrer/arrêter (doit être fourni en paramètre)
instanceList=("atelier" "preprod" "prod" "slecture") # liste des applications gérées

# Si l'instance est indéfinie on quitte !
if [[ -z "$instance" ]]
then
	IFS="," # séparator pour les éléments de la liste
	printf "[!] Vous devez indiquer une instance parmi: %s\n" "${instanceList[*]}"
	exit 1
else
	JAVA_HOME="/opt/java/jdk1.6.0_21"
	PATH=$PATH:"$JAVA_HOME/bin"
	CATALINA_HOME="$catalina_homes-$instance/" # dossier de l'instance
	CATALINA_BASE="$CATALINA_HOME"
fi

case "$1" in
start)
	if [ -f $CATALINA_HOME/bin/startup.sh ];
	  then
	   logger -s "Starting Tomcat"
	   /bin/su -l root -c $CATALINA_HOME/bin/startup.sh
	   RETVAL=$?
	   [ $RETVAL = 0 ] && touch /var/lock/subsys/tomcat-"$instance"
 	fi
	;;
stop)
	if [ -f $CATALINA_HOME/bin/shutdown.sh ];
	  then
	  logger -s "Stopping Tomcat"
	  /bin/su -l root -c $CATALINA_HOME/bin/shutdown.sh
	  RETVAL=$?
	  [ $RETVAL = 0 ] && rm -f /var/lock/subsys/tomcat-"$instance"
	fi
	;;
restart)
	$0 stop
	$0 start
	;;
version)
	if [ -f $CATALINA_HOME/bin/version.sh ];
	  then
	  logger -s "Display Tomcat Version"
	  /bin/su -l root -c $CATALINA_HOME/bin/version.sh
	  RETVAL=$?
	fi
	;;
*)
	echo "Usage: $0 {start|stop|restart|version}"
	exit 1
	;;
esac
exit $RETVAL

Port d'écoute

[modifier | modifier le wikicode]

Salle de Lecture

[modifier | modifier le wikicode]

Application(s) Pleade

[modifier | modifier le wikicode]

Emplacements des fichiers

[modifier | modifier le wikicode]

Paramètres spéciaux

[modifier | modifier le wikicode]

Production : $HOME/apps/ad33-prod/

[modifier | modifier le wikicode]

./WEB-INF/properties/pleade-admin.properties

[modifier | modifier le wikicode]

./WEB-INF/cocoon.xconf

[modifier | modifier le wikicode]

Recette : $HOME/apps/ad33-recette

[modifier | modifier le wikicode]

./WEB-INF/properties/pleade-admin.properties

[modifier | modifier le wikicode]

./WEB-INF/cocoon.xconf

[modifier | modifier le wikicode]

Paramètres de publication

[modifier | modifier le wikicode]

Import données Armadillo

[modifier | modifier le wikicode]

Il y a un cron dans cocoon.xconf pour college-de-france pour faire le import des données armadillo :

<trigger name="importArmadillo" target="org.apache.cocoon.components.cron.CronJob/importArmadillo" concurrent-runs="false">
       <cron>1 * * ? * * *</cron>
</trigger>

Voir le importToXml methode de ArmadilloGenerator.java