|
|
# Admin guide
|
|
|
|
|
|
## architecture générale
|
|
|
|
|
|
### overview
|
|
|
|
|
|
* Le projet txssdb est hebergé sur couchdb.web.pasteur.fr (machine virtuelle CentOS release 6.6 (Final))
|
|
|
* Le home du projet est /opt/macsydb/txssdb
|
|
|
* Le projet a été réalisé via une couchapp.
|
|
|
* Le projet utilise donc couchdb comme serveur de base de données et comme serveur d'application web.
|
|
|
couchdbKit (module python) est necessaire au parser pour remplir/mettre à jour les données
|
|
|
et couchapp pour gérer l'application web
|
|
|
* tous ces modules python ont été installés dans un virtualenv (pyhton2.6)
|
|
|
|
|
|
<pre>couchdb:/opt/macsydb/txssdb$virtualenv virtualenv
|
|
|
source virtualenv/bin/activate
|
|
|
pip install couchapp
|
|
|
</pre>
|
|
|
|
|
|
les sources txssdb sont dans un repos git a l'adresse suivante:
|
|
|
https://gitlab.pasteur.fr/gem/txssdb/
|
|
|
|
|
|
un apache est en frontal et sert de reverse proxy a couchDB
|
|
|
|
|
|
### arboresence du projet
|
|
|
|
|
|
<pre>
|
|
|
/opt/macsydb (home des bases macsydb)
|
|
|
|-> txssdb (home du projet txssdb)
|
|
|
|-> virtualenv
|
|
|
|-> txssdb lien vers la version courante de txssdb-xx
|
|
|
|-> txssdb-xx
|
|
|
|-> data ( data contient les données fournies par sophie abby un fichier d'info sur les replicons, un fichier d'info sur les systemes de secretion )
|
|
|
|-> src (l'application)
|
|
|
|-> parser (contient le script de peuplement/update des données dans la base couchdb)
|
|
|
|-> couchapp (contient la couchapp txssdb )
|
|
|
|
|
|
</pre>
|
|
|
|
|
|
### config
|
|
|
|
|
|
TODO
|
|
|
|
|
|
#### couchdb
|
|
|
|
|
|
/opt/couchdb/etc/couchdb/local.ini
|
|
|
l'authentification basic authent a été désactivée car une basic authent a été mise en place dans apache
|
|
|
authentication_handlers = {couch_httpd_auth, null_authentication_handler}
|
|
|
|
|
|
#### apache
|
|
|
|
|
|
un virtualhost a été configuré dans l'apache central de couchdb.web.pasteur.fr (user group couchdb.couchdb)
|
|
|
/etc/httpd/conf.d/txssdb.conf
|
|
|
|
|
|
ce virtualhost est en frontal et sert de reverse proxy a couchdb qui est bindé sur localhost:5984
|
|
|
seul les requettes http HEAD et GET sont autorisées pour prévenir toute modification de la base couchdb depuis l'exterieur
|
|
|
une réécriture d'url permet de rediriger
|
|
|
|
|
|
http://macsydb.web.pasteur.fr -> /opt/front/index.html
|
|
|
qui est une page statique de présentation des différentes bases
|
|
|
|
|
|
### logs
|
|
|
|
|
|
TODO
|
|
|
|
|
|
#### apache
|
|
|
|
|
|
pour le moment avec tous les logs apache des différentes base sont mélangés
|
|
|
|
|
|
<pre>
|
|
|
/var/log/httpd/macsydb_error_log
|
|
|
/var/log/httpd/macsydb_access_log
|
|
|
</pre>
|
|
|
|
|
|
#### couchdb
|
|
|
|
|
|
<pre>/opt/couchdb/var/log/couchdb/couch.log</pre>
|
|
|
|
|
|
malheureusement seul 5 semaines de logs sont gardés
|
|
|
|
|
|
## démarrage de capsuledb
|
|
|
|
|
|
<pre>sudo /etc/init.d/httpd start|stop|reload
|
|
|
sudo /etc/init.d/couchdb start|stop</pre>
|
|
|
|
|
|
## init du projet
|
|
|
|
|
|
### création de la base couchdb
|
|
|
|
|
|
établir un tunnel ssh avec couchdb.web.pasteur.fr
|
|
|
<pre>
|
|
|
ssh couchdb.web.pasteur.fr -L 12345:localhost:5984
|
|
|
</pre>
|
|
|
dans un navigateur: http://localhost:12345/_utils/
|
|
|
se logger en tant qu'admin créer la base capsuledb
|
|
|
|
|
|
### création du repertoire du projet
|
|
|
|
|
|
à l'avenir il risque d'y avoir plusieurs base semblables
|
|
|
elles serons regroupes dans le repertoire macsydb
|
|
|
chaque base aura son sous repertoire avec son virtualenv
|
|
|
|
|
|
<pre>cd /opt
|
|
|
mkdir macsydb
|
|
|
cd macsydb
|
|
|
mkdir txssdb
|
|
|
cd capsuledb
|
|
|
virtualenv virtualenv
|
|
|
source /opt/macsydb/capsuledb/capsule-env/bin/acitvate
|
|
|
</pre>
|
|
|
|
|
|
capsuledb est versionné sous git
|
|
|
création d'une archive et copie de cette archive sur le serveur couchdb.web.pasteur.fr
|
|
|
*Attention* l'archive ne contient pas le repertoire racine, il faut donc le creer
|
|
|
sur couchdb.web.pasteur.fr avant d'extraire l'archive
|
|
|
|
|
|
sur une machine perso
|
|
|
<pre>
|
|
|
git clone https://projets.pasteur.fr/git/txssdb
|
|
|
git archive --format=tar.gz --output=txssdb-1.0.tar.gz 1.0
|
|
|
scp txssdb-1.0.tar.gz couchdb.web.pasteur.fr:/opt/macsysdb/txssdb/txssdb/
|
|
|
</pre>
|
|
|
|
|
|
### initialisation de la couchapp
|
|
|
sur couchdb.web.pasteur.fr
|
|
|
<pre>
|
|
|
cd /opt/macsydb/capsuledb/capsuledb
|
|
|
tar -xzf capsuledb-1.0.tar.gz
|
|
|
source /opt/macsydb/capsuledb/capsule-env/bin/activate
|
|
|
pip install -r capsuledb/requirements.txt
|
|
|
cd src/couchapp/
|
|
|
couchap init capsuledb
|
|
|
</pre>
|
|
|
|
|
|
configuration de la couchapp par defaut
|
|
|
éditer le fichier .couchapprc
|
|
|
<pre>
|
|
|
{ "env": { "default": { "db": "http://localhost:5984/capsuledb" } } }
|
|
|
</pre>
|
|
|
|
|
|
remplir la base avec l'application
|
|
|
<pre>
|
|
|
couchapp push
|
|
|
</pre>
|
|
|
remplir la base avec les données
|
|
|
<pre>
|
|
|
cd parser
|
|
|
./parser.py -S http://localhost:5984 -d capsuledb -r ../../data/info_replicon.dat -s ../../data/info_syst.dat -f</pre>
|
|
|
|
|
|
le script va demander un login/mot de passe. Il faut fournir ceux d'un des admins de la base secreton (voir fichier de conf couchapp local.ini)
|
|
|
|
|
|
## peuplement de la base/mise à jour des données
|
|
|
|
|
|
activer virtualenv : <pre>source /opt/macsydb/capsuledb/capsule-env/bin/acitvate
|
|
|
cd ../../parser
|
|
|
./parser.py -S http://localhost:5984 -d txssdb -r ../../data/info_replicon.dat -s ../../data/info_syst.dat -f</pre>
|
|
|
|
|
|
## mise à jour de l'application web
|
|
|
|
|
|
activer virtualenv : <pre>source /opt/macsydb/capsuledb/capsule-env/bin/acitvate
|
|
|
cd /opt/macsydb/capsuledb
|
|
|
cp capsuledb-x.x .
|
|
|
rm capsuledb
|
|
|
ln -s capsuledb-x.x capsuledb
|
|
|
cd txssdb/src/couchapp/capsuledb/
|
|
|
couchapp push</pre>
|
|
|
|
|
|
pour sortir de virtualenv : <pre>deactivate</pre>
|
|
|
|