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

Arborescence de production

De AJLSM
Version datée du 10 juillet 2012 à 13:29 par Groche (discussion | contributions) (ré-organisation logique)
Aller à la navigation Aller à la recherche

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.


Important :
Pour les sauvegardes on a également besoin des fichiers scripts et des fichiers de configuration. Il seront rendu accessible par un point de montage défini dans le /etc/fstab du serveur.

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 ./