Admin guide
architecture générale
overview
- Le projet capsuledb est hebergé sur couchdb.web.pasteur.fr (machine virtuelle CentOS release 6.6 (Final))
- Le home du projet est /opt/macsydb/capsuledb
- 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)
couchdb: mkdir /opt/macsydb/capsuledb $virtualenv capsule-env source capsule-env/bin/activate pip install couchapp
les sources capsuledb sont dans un repos git a l'adresse suivante: https://gitlab.pasteur.fr/gem/capsuledb/
un apache est en frontal et sert de reverse proxy a couchDB
arboresence du projet
/opt/macsydb (home des bases macsydb) |-> capsuledb (home du projet capsuledb) |-> capsule-env |-> capsuledb lien vers la version courante de capsuledb-xx |-> capsuledb-xx |-> data ( data contient les données fournies par olaya 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 capsuledb )
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
/var/log/httpd/macsydb_error_log /var/log/httpd/macsydb_access_log
couchdb
/opt/couchdb/var/log/couchdb/couch.log
malheureusement seul 5 semaines de logs sont gardés
démarrage de capsuledb
sudo /etc/init.d/httpd start|stop|reload sudo /etc/init.d/couchdb start|stop
(bien verifier que le server tourne)
curl http://127.0.0.1:5984/
(bug dans l'init script gentoo)
init du projet
création de la base couchdb
établir un tunnel ssh avec couchdb.web.pasteur.fr
ssh couchdb.web.pasteur.fr -L 12345:localhost:5984
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
cd /opt mkdir macsydb cd macsydb mkdir capsuledb cd capsuledb virtualenv capsule-env source /opt/macsydb/capsuledb/capsule-env/bin/acitvate
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
git clone git@gitlab.pasteur.fr:gem/capsuledb.git git archive --format=tar.gz --output=capsuledb-1.0.tar.gz 1.0 scp capsuledb-1.0.tar.gz couchdb.web.pasteur.fr:/opt/macsysdb/capsuledb/capsuledb/
initialisation de la couchapp
sur couchdb.web.pasteur.fr
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
configuration de la couchapp par defaut éditer le fichier .couchapprc
{ "env": { "default": { "db": "http://localhost:5984/capsuledb" } } }
remplir la base avec l'application
couchapp push
remplir la base avec les données
cd parser ./parser.py -S http://localhost:5984 -d capsuledb -r ../../data/info_replicon.dat -s ../../data/info_syst.dat -f
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 :
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
mise à jour de l'application web
activer virtualenv :
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
pour sortir de virtualenv :
deactivate