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.
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.
Split omero-server
into multiple Ansible roles:
/opt/omero
as the parent directory for all OMERO componentsomero
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.omero-server
and omero-web
will have separate users./opt/omero/omego
omego
globally and name this role omego
/opt/omero/server
OMERO.server
, symlink to /opt/omero/server/OMERO.server
omero
system user as at presentomeroserver
, though omero
seem fairly well established at present./opt/omero/web
/opt/omero/web/venv
, as an alternative to installing Django and gunicorn globallyOMERO.py
, symlink to /opt/omero/web/OMERO.web
omeroweb
system user, modify the systemd service fileomego
should be able to symlink a downloaded package.omego upgrade
could upgrade OMERO.web
, i.e. copy the configuration. An alternative is to manage all configuration in an Ansible friendly manner outside OMERO.omero-server