Skip to content

Latest commit

 

History

History
56 lines (37 loc) · 2.89 KB

index.md

File metadata and controls

56 lines (37 loc) · 2.89 KB

OMERO component Ansible roles

This is a proposal for replacing the existing omero-server Ansible role with a set of omero component roles to allow the installation of decoupled OMERO components, initially server and web.

Rationale

The existing omero-server Ansible role handles most of the steps for setting up OMERO.server, with the exception of dependencies which are installed by other roles. This includes installing and configuring both OMERO.server and OMERO.web, and although OMERO.web can be disabled it is not possible to install OMERO.web only.

Further more this role bundles omego which could potentially be used independently of this role. In addition Ansible 2.2 has a bug which means omego is installed into the wrong virtualenv, breaking the role.

Proposal

Split omero-server into multiple Ansible roles:

omero-common

  • Create /opt/omero as the parent directory for all OMERO components
  • Possible: Include omero and omero-web restart handlers so other roles can restart the server or web, though providing the handler are simple (a single service task) this doesn't off much benefit.
  • This role may not be necessary since omero-server and omero-web will have separate users.

omero-omego

  • Install omego into a virtualenv: /opt/omero/omego
  • Alternative: install omego globally and name this role omego

omero-server

  • Refactor the existing role
  • Parent directory: /opt/omero/server
  • Download OMERO.server, symlink to /opt/omero/server/OMERO.server
  • Web not supported
  • Create an omero system user as at present
  • Alternative: create the system user omeroserver, though omero seem fairly well established at present.

omero-web

  • Parent directory: /opt/omero/web
  • Possible: Use a virtualenv with system-site-packages for OMERO.web: /opt/omero/web/venv, as an alternative to installing Django and gunicorn globally
  • Download OMERO.py, symlink to /opt/omero/web/OMERO.web
  • Create an omeroweb system user, modify the systemd service file

Changes required to external components

omego

Existing playbooks

  • Existing playbooks will have to be updated if they don't use a tagged version of omero-server

Main benefits

  • OMERO components can be managed separately, supporting the future aim of decoupling OMERO.web.
  • OMERO.web and OMERO.server configurations can be managed independently. For example a configuration that only affects web can be made without restarting OMERO.server.