Ce manuel contient des informations concernant des opérations d'installation et de maintenance (sauvegardes, mises à jour, ...) du CMS Ametys V4. Il contient aussi diverses astuces qui pourront vous être utiles.
Il est conseillé de lire auparavant les pages précédentes de ce manuel, ou d'avoir lu le manuel d'administration de votre application, afin d'en connaître tous les concepts énoncés ici. Merci de lire également, s'il existe, le manuel d'installation complémentaire lié à votre projet, afin d'en connaître les spécificités : dans certains cas, des informations présentes ici peuvent ne pas être applicables.
Cette section possède des annexes documentant la Duplication d'environnement et de données et les Modifications d'URL
Ce manuel a été écrit pour les personnes souhaitant administrer le CMS, c'est-à-dire effectuer les opérations de maintenance telles que la sauvegarde, les mises à jour, etc...
Si vous avez besoin d'aide, ou si vous souhaitez nous faire part de vos suggestions, critiques, éloges, n'hésitez pas à demander de l'aide sur les forums. Vous pouvez aussi contribuer à l'amélioration de cette documentation en ajoutant vos propres commentaires.
Le CMS gère deux types de données.
Les données principales concernent les contenus, leurs méta-données, leurs pièces jointes, l'organisation des pages, le workflow... Elles sont gérées par l'API JCR 2.0 (JSR 238).
L'implémentation Apache JackRabbit (http://jackrabbit.apache.org) est utilisée car le stockage physique peut être réalisé de différentes manières : système de fichiers, base de données embarquée (DERBY), base de données classique (MySQL), ...
Afin de connaître toutes les implémentations et la manière de les configurer, vous pouvez consulter le site de JackRabbit.
Le fichier de configuration du Repository JackRabbit est WEB-INF/param/repository.xml.
Par défaut, Ametys utilise Derby et le système de fichiers, tout étant stockée dans le répertoire configuré dans le dossier data de la variable d'environnement AMETYS_CMS_HOME. Ametys offre aussi la possibilité d'utiliser une base de données pour stocker ses données principales.
Les données secondaires peuvent être (selon la configuration de votre CMS) :
Elles sont stockées dans une base de données SQL (MySQL par exmple). La base de données choisie est visible dans les paramètres de configuration (voir le manuel d'administration du CMS, rubrique configuration).
Pour sauvegarder les données, il est nécessaire de sauvegarder tous les types de données simultanément. Il faut effectuer les opérations suivantes :
Il est très important que tout soit sauvé simultanément, sinon des incohérences applicatives risquent de survenir : il est donc conseillé d’effectuer ces opérations lorsqu’aucun utilisateur n’est connecté et qu’aucun travail automatique n’est en cours (en coupant le serveur Tomcat par exemple).
Vous avez la possibilité d'effectuer une sauvegarde toutes les nuits en utilisant une tâche CRON et un script pour automatiser la tâche.
Pour restaurer les données, il faut effectuer les opérations suivantes :
Il est très important que tout soit restauré simultanément, sinon des incohérences applicatives risquent de survenir : il est donc conseillé d’effectuer ces opérations lorsqu’aucun utilisateur n’est connecté et qu’aucun travail automatique n’est en cours (en coupant le serveur Tomcat par exemple).
Il est également conseillé de faire une sauvegarde juste avant la restauration, dans le cas où cette restauration se déroulerait mal.
Pour mettre à jour le CMS Ametys, il faut suivre les étapes suivantes :
Il peut également être nécessaire d'effectuer d'autres opérations, selon les indications du fournisseur de la mise à jour (se référer au Manuel de Mise à jour).
L'installation d'une nouvelle instance du CMS (sans données) est immédiatement réalisée avec la version la plus récente, et ne nécessite aucune mise à jour.
Avant d’exécuter une mise à jour il est important de vérifier l’espace disque disponible. Pour une application de 70 MO par exemple, il faut avoir 150 MO d’espace disponible, car une fois le fichier de 70 MO téléchargé il sera dé-zippé pour former l’application.
Les zips téléchargés et les anciennes versions sont conservés sur le disque : si après installation de la nouvelle version il est nécessaire de revenir à la version précédente, il faut couper les services et refaire basculer les liens symboliques sur l’ancien répertoire.
Il est rarement nécessaire de conserver plus de 2 anciennes versions : vous pouvez donc effacer les anciens répertoires (et fichiers zip) pour gagner de l’espace disque.
Si vous avez suivi notre procédure d'installation, il faut utiliser les services correspondants (Apache Tomcat, Apache HTTPD…) par exemple en lançant la commande « service tomcat start ».
Sinon, les processus de démarrage, arrêt et redémarrage dépendent de votre installation et de votre moteur de servlets. Par exemple sur Tomcat, il vous faudra surement exécuter les scripts de démarrage et d'arrêt (startup / shutdown) dans le répertoire bin.
Il arrive que l'appel au shutdown ne se termine pas correctement. Il faut donc vérifier après quelques secondes que le serveur est réellement arrêté, en regardant les processus qui tournent encore.
On y trouve le fichiers JavaScript et CSS déjà servis.
Vider le cache du tomcat
# Effacer le répertoire work (tomcat doit être arrêté) rm -rf /opt/tomcat/current/tomcat/work # Effacer le contenu du répertoire temp (et non le répertoire en lui-même) rm -rf /opt/tomcat/current/temp/*
On y trouve principalement les pages générées par l'application CMS pour être servies statiquement depuis l'application SITE.
Vider le cache du site (en ligne de commande)
cd $AMETYS_CMS_HOME rm -rf cache
Cette opération peut être réalisée depuis l'espace d'administration du back-office (<url backoffice>/_admin)
ps waux | grep tomcat
Il se peut que plusieurs tomcat tournent sur la même machine. Le retour de la commande permet de savoir le nombre de tomcat qui tournent, ainsi que leur « identité ».
Cette commande permet de s’assurer qu’un tomcat stoppé s’est bien arrêté.
ping <mon_dns>
Si un serveur http est configuré : wget <mon_url> et vérifier que la page a bien été écrite.
Il arrive parfois qu’un serveur ait des problèmes d’accès aux autres machines réseaux, cela permet de vérifier que les serveurs ont bien accès entre eux.
Les erreurs fonctionnelles sont généralement contenues dans les logs applicatifs. Ces logs sont configurés via le fichier WEB-INF/log4j.xml et stockés dans le répertoire $AMETYS_CMS_HOME/logs (voir le site de log4j pour plus de détails).
Ils peuvent être téléchargés directement depuis dans l'espace d'administration (voir la page dédie du manuel d'administration pour plus de détails : Journaux de l'application).
Les erreurs d'Apache Tomcat sont stockées dans le répertoire Tomcat/logs. Le fichier catalina.out contient les informations de la console (notamment les informations de démarrage). Tomcat utilise aussi log4j.
Ces logs doivent être suivis et supprimés régulièrement, afin de ne pas supprimer l'espace disque.
Afin de prévenir un disque plein qui pourrait provenir de l’accroissement régulier des fichiers de logs (tomcat, CMS…) il est recommandé de supprimer les fichiers logs inutiles. Cette opération est disponible de l'espace administrateur du cms.
Nous vous conseillons de consulter la page 2. Pré-requis et recommandations
Le CMS, SITE et Solr sont des applications web JAVA.
Mis à part des projets particuliers, le CMS n'a pas besoin de beaucoup de CPU mais il peut être intéressant d'utiliser un multiple processors and multi-heart.
Le CMS peut devenir gourmand en mémoire en fonction du nombre d'utilisateurs (devrait être entre 4G et 12G pour plusieurs utilisateurs).
Le SITE n'est pas gourmand en mémoire (1G à 2G).
Solr peut également être gourmand en mémoire en fonction du nombre d'utilisateurs, notamment au moment du lancement où un cache est calculé pour être optimal par la suite, la configuration par défaut est souvent suffisantes (1G, mais il peut être nécessaire de l'augmenter jusqu'à 6G via la variable d'environnement SOLR_HEAP).
Au lancement, les options -Xms et -Xmx spécifient le minimum et le maximum de mémoire allouée. La JVM de Sun prend l'espace minimum et, chaque fois que c'est nécessaire, augmente l'espace sans dépasser la taille maximum; cependant il ne rend jamais la mémoire au système : il est donc important de considérer que cette mémoire n'est pas partageable. Si vous souhaitez savoir comment la mémoire est réellement utilisée par la JVM, vous pouvez regarder dans l'espace d'administration (page Etat du système).
Dans le cas d'une OutOfMemoryException retournée par Java:
Exemple de configuration des options relatives à la mémoire
-Xms2G -Xmx6G
L'espace disque utilisé par tout le système est difficile à prévoir. Il est constitué :