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/omegoomego globally and name this role omego/opt/omero/serverOMERO.server, symlink to /opt/omero/server/OMERO.serveromero 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.webomeroweb 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