Lookup¶
This page gives an overview of the Lookup service, describing its current status, where and how it's developed and deployed, and who is responsible for maintaining it.
Service Description¶
Lookup provides an directory of University staff, institutions and groups available via LDAP (Uni only) or a web API.
Service Status¶
Lookup is currently live.
Contact¶
Technical queries and support should be directed to servicedesk@uis.cam.ac.uk and will be picked up by a member of the team working on the service. To ensure that you receive a response, always direct requests to servicedesk@uis.cam.ac.uk rather than reaching out to team members directly.
Queries regarding correctness or completeness of data should be sent to servicedesk@uis.cam.ac.uk.
Issues discovered in the service or new feature requests should be opened as GitLab issues here.
Environments¶
Lookup is currently deployed to the following environments:
Name | URL | Supporting VMs |
---|---|---|
Production | https://www.lookup.cam.ac.uk | lookup-live1.srv.uis.cam.ac.uk lookup-live2.srv.uis.cam.ac.uk |
https://ldap.lookup.cam.ac.uk (live LDAP endpoint) ldap{1,2}.lookup.cam.ac.uk (HA LDAP endpoints) |
lookup-live1.srv.uis.cam.ac.uk lookup-live2.srv.uis.cam.ac.uk |
|
Database | lookup-live-db.srv.uis.cam.ac.uk | |
Staging | https://lookup-test.srv.uis.cam.ac.uk | lookup-test1.srv.uis.cam.ac.uk lookup-test2.srv.uis.cam.ac.uk |
lookup-test.srv.uis.cam.ac.uk (test LDAP endpoint) | lookup-test1.srv.uis.cam.ac.uk lookup-test2.srv.uis.cam.ac.uk |
|
Database | devgroup-test-db.srv.uis.cam.ac.uk |
Source code¶
The source code for Lookup is spread over the following repositories:
Repository | Description |
---|---|
Application Server | The source code for the main application server |
Lookup API Client | API Client |
Technologies used¶
The following gives an overview of the technologies Lookup is built on.
Category | Language | Framework(s) |
---|---|---|
Server | Java + Groovy | Grails 1.3.10 |
DB | Postgres | Moa |
Operational documentation¶
The following gives an overview of how Lookup is deployed and maintained.
How and where Lookup is deployed¶
Lookup is deployed to a pair of servers which use keepalived to manage a VIP.
Deploying a new release¶
New releases are deployed via
Ansible.
Each server should be set to maintenance mode then the run-ansible-playbook.sh
should be run
limited to the node in maintenance mode. e.g.
# On lookup-live1
touch /maintenance_mode
# On client machine
./run-ansible-playbook.sh -i ibis-production ibis-playbook.yml --diff --limit lookup-live1
# On lookup-live1
rm /maintenance_mode
# On lookup-live2
touch /maintenance_mode
# On client machine
./run-ansible-playbook.sh -i ibis-production ibis-playbook.yml --diff --limit lookup-live2
# On lookup-live2
rm /maintenance_mode
Other documentation¶
Monitoring¶
Lookup is monitored by nagios:
Backups¶
See legacy application backups
Debugging¶
The Lookup server readme contains details on running a local copy for debugging.
Resetting the LDAP databases¶
A well known error state of lookup is for the LDAP database not to be synchronized with the Postgresql database correctly. To resolve this the following commands should be run:
# Take node out of service
touch /maintenance_mode
# Run ibis-ldap-sync
cd /usr/share/ibis/bin
./ibis-ldap-import
# Put node back in to service
rm /maintenance_mode
Service Management and tech lead¶
The service owner for Lookup is currently unknown. See the associated GitLab issue.
The service manager for Lookup is Dr Я Charles.
The tech lead for Lookup is Robin Goodall.
The following engineers have operational experience with Lookup and are able to respond to support requests or incidents: