Il y a 389 articles et 19 utilisateurs inscrits (ce bandeau est défini dans MediaWiki:Sitenotice)
Arborescence de production
Dans le but de faciliter la maintenance des applications et l'utilisation de scripts pour les diverses tâches (Sauvegarde, Publication Automatique). L'approche adopté permet de faire un découpage entre :
- application (fichiers de propriétés, XSL, etc.), dans ./apps/ ;
- données client (images, vidéos, sons, etc.) dans ./data/ ;
- données générées par SDX, dans ./sdx-data/ ;
- journaux d'activités dans ./logs/.
Définition de l'environnement du projet
Pour se faciliter la tâche nous mettons en places des scripts, alias et fonction sur les serveurs. Ils sont gérer dans une dépôt git qui se trouve sur Moorea.
Dépôt git
Pour récupérer le dépôt sur votre machine :
git clone ssh://git@moorea/home/git/shell-scripts.git
Pour mettre le dépôt à jour sur votre machine :
git pull ssh://git@moorea/home/git/shell-scripts.git
On créé une branche pour chaque projet de façon à séparé les différentes configuration. De façon général, seul le fichier .bashrc du dépôt doit changer d'un projet à l'autre.
Mise en place sur le serveur
Moorea étant inaccessible depuis l'extérieur, on fait la copie des fichiers à la main, cela correspond au dossier shell-scripts/ entier, que l'on place dans le $HOME de l'utilisateur gérant l'application Pleade (généralement ajlsm).
tar xvzf ./shell-scripts.tar.gz # si vous avez envoyer un tar.gz sinon inutile
Les scripts et configuration sont sur le serveur, il faut maintenant les rendre accessible aux utilisateurs qui en ont besoin, et mettre en place l'arborescence de production. Nous détaillons l'arborescence ci-dessous.
Modification de /etc/fstab
Pour gérer les sauvegardes, l'utilisateur backupAgent a besoin d'accéder aux divers scripts d'ajlsm. On lui met donc des accès sur les dossier dont il a besoin. La procédure est décrite dans la section Accès aux scripts AJLSM.
Arborescence
Utilisateurs ajlsm
.
├── apps
│ ├── <project>-front -> <project>-latest
│ ├── <project>-back -> <project>-latest-back
│ ├── <project>-latest
│ └── <project>-latest-back
├── (backup) # on utilise souvent un compte UNIX
├── data
│ └── <project>
├── logs
│ ├── <project>-front
│ └── <project>-back
├── sdx-data
│ ├── <project>-front
│ └── <project>-back
├── (shell-scripts)
├── (tmp)
├── .ajlsmrc -> ./shell-scripts/.ajlsmrc
├── .bashrc -> ./shell-scripts/.bashrc
└── .projectrc -> ./shell-scripts/.projectrc
Script de mise en place
Ensuite on peut executer les commandes de créations de l'arborescence :
# lien vers les fichiers de configurations
cd "$AJLSM_HOME"
ln -s ./shell-scripts/.bashrc ./
ln -s ./shell-scripts/.ajlsmrc ./
ln -s ./shell-scripts/.projectrc ./
. ./.bashrc # recharge les configurations d'environnement
if [[ -n "${PROJECT}" && -d "$AJLSM_HOME" ]]
then
mkdir -p "$AJLSM_HOME/apps/${PROJECT}-front"
mkdir -p "$AJLSM_HOME/apps/${PROJECT}-back"
mkdir -p "$AJLSM_HOME/backup"
mkdir -p "$AJLSM_HOME/data/${PROJECT}/images"
mkdir -p "$AJLSM_HOME/logs/${PROJECT}-front"
mkdir -p "$AJLSM_HOME/logs/${PROJECT}-back"
mkdir -p "$AJLSM_HOME/sdx-data/${PROJECT}-front"
mkdir -p "$AJLSM_HOME/sdx-data/${PROJECT}-back"
mkdir -p "$AJLSM_HOME/tmp"
# montage du répertoire des scripts pour l'utilisateur backupAgent
printf "Ligne à ajouter dans /etc/fstab:\n# BackupAgent\n%s" \
"/home/${PROJECT}/shell-scripts/ /home/backupAgent/shell-scripts/ none bind 0 0"
fi
Utilisateurs backupAgent
├── backups
├── logs
├── shell-scripts
│ ├── backup
│ ├── httpd-maintenance
│ └── logs
├── tmp
├── .ajlsmrc -> ./shell-scripts/.ajlsmrc
├── .bashrc -> ./shell-scripts/.bashrc
└── .projectrc -> ./shell-scripts/.projectrc
Script de mise en place
su backupAgent
ln -s ./shell-scripts/.bashrc ./
ln -s ./shell-scripts/.ajlsmrc ./
ln -s ./shell-scripts/.projectrc ./