Difference: LbSoftConfDb2 (2 vs. 3)

Revision 32019-03-18 - StefanGabrielChitic

Line: 1 to 1
 
META TOPICPARENT name="LHCbDevOps"

LbSoftConfDb2

Service Maintenance and DevOps:

Added:
>
>
Code location for libraries involved in the project:
  1. LbSoftConfDb2 server: https://gitlab.cern.ch/lhcb-core/LbSoftConfDb2Server
  2. LbSoftConfDb2 clients: https://gitlab.cern.ch/lhcb-core/LbSoftConfDb2Clients

The LbSoftConfDb2 server is located at lbsoftdb.cern.ch. The entry points for the communications between from the clients and server is done using 3 type of interfaces:

  1. A read only interface (RO) that performs all the queries on the neo4j server without any authentication that can be access using XMLRPC requests on https://lbsoftdb.cern.ch/read/
  2. A read write interface (RW) that performs all the inserts, updates, deletes and queries on the neo4j server with SSO authentication using the XMLRPC requests on https://lbsoftdb.cern.ch/write/. The SSO cookie needs to be included in the header of the requests.
  3. A REST interface that is used by the nightlies to query the database:
    1. https://lbsoftdb.cern.ch/cgi-bin/lb-projects/ - lists the projects in the databases
    2. https://lbsoftdb.cern.ch/cgi-bin/getreleases - lists the stacks to be built by the nightlies
For the RO and RW backends are managed by the LbSoftConfDb2 server package and the REST interface is managed by independent CGI-BIN python scripts. All the interfaces are behind an apache server as front-end. The communication with the back-end is done via reverse proxy. The SSO authentication is done by Apache shibboleth.

Demons and files locations on the SoftConfDb2 server:

  1. The virtual env that contains all the python packages: /build/env
  2. The RO interface demon: /etc/systemd/system/multi-user.target.wants/lbSdbServerReadOnly.service. To start the demon use systemctl start lbSdbServerReadOnly. It calls the script in /build/startLBSoftConfDb2ReadOnlyServer.sh which activates the virtualenv and start the RO XMLRPC server on 127.0.0.1:8080
  3. The RW interface demon /etc/systemd/system/multi-user.target.wants/lbSdbServerWrite.service. To start the demon use systemctl start lbSdbServerWrite. It calls the script in /build/startLBSoftConfDb2WriteServer.sh which activates the virtualenv and start the RW XMLRPC server on 127.0.0.1:8090

FAQ:

  1. How to manage Neo4j?
    • To check the Neo4j logs use: systemctl status neo4j for last 10 logs entries or journalctl -r -u neo4j.service for full logs
    • If you need to restart the demone use: systemctl restart neo4j
  2. How to check the front-end logs?
    • systemctl status httpd for last 10 entries
    • journalctl -r -u httpd.service for full logs
  3. How to check the RO server logs?
    • systemctl status lbSdbServerReadOnly for last 10 entries
    • journalctl -r -u lbSdbServerReadOnly.service for full logs
  4. How to check the RW logs?
    • systemctl status lbSdbServerWrite for last 10 entries
    • journalctl -r -u lbSdbServerWrite.service for full logs
  5. How to restart the front-end Apache?
    • systemctl restart httpd
  6. How to restart the RO server?
    • systemctl restart lbSdbServerReadOnly
  7. How to restart the RW?
    • systemctl restart lbSdbServerWrite

This section will be updated over time with procedures in order to facilitate the DevOps.

 

LbSoftDb to LbSoftDb2 database migration procedure:

In order to migrate the LbSoftDb 1 database to the LbSoftDb2, you need to connect to any lxplus nodes and:

 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback