This folder contains a variety of Ansible playbooks, including example files for provisioning an OpenStack VM from scratch with OMERO using Ansible. Most of these scripts should also work on other platforms, providing the VM is brought up by some other method.
- Playbooks which start with
os
are OpenStack specific - theos
stands forOpenStack
. - Playbooks which start with
idr
are for the Image Data Repository. - Playbooks which start with
ci
are for OME continuous integration and build.
To get started with a minimal OMERO server, see the example playbook in the omero-server role.
For more explanation on using Ansible in general, you may want to read:
- Getting started: Installation docs and initial examples.
- Ansible: Overview of Ansible, the configuration management system.
- Example workflows: Examples of provisioning new hosts, and running Ansible playbooks.
- Contributing: Suggestions on submitting modifications and extensions to the OME ansible roles and playbooks.
Roles are "the Ansible way of bundling automation content and making it reusable." To keep playbooks as simple as possible, logic is refactored out into roles, maintained in individual repositories and versioned separately. A list of most of the roles can be found in ansible/requirements.yml.
Core roles can be found under the openmicroscopy account on Galaxy and are versioned using Semantic Versioning. Roles whose version is below 1.0.0 should be considered in development.
Examples of production roles include:
-
openmicroscopy.omero-server (GitHub/Galaxy): Install and configure OMERO.server, and optionally PostgreSQL
-
openmicroscopy.omero-web (GitHub/Galaxy): Installs and configures OMERO.web and Nginx
The OME community also provides roles. For example:
If you would like to share your roles with other OME users, please open a PR against this file on GitHub.
In some cases, roles are not ready to be extracted into separate repositories
and deployed to Galaxy. In this case, the scope of development roles should be
limited by creating a folder containing the set of playbooks for the given
functionality and putting all the relevant local roles under a roles
subfolder.
These playbooks are for maintaining the bare-metal infrastructure for most of the IDR work. This primarily involves maintaining the servers and storage underlying the virtualisation platforms used for development and running of the actual IDR, and is inevitably tied to the hardware configurations of these servers as well as the configuration of other services provided by the parent institution.
idrsystems-deployment.yml
: Use this playbook for checking and enforcing consistency of all existing IDR infrastructure. This includes deploying new roles to existing servers, or modifying configurations. If nothing has changed in the repository or inventory there should be no changes when this playbook is run.idrsystems-provision.yml
: Use this playbook for ensuring all servers are provisioned and up to date. This includes provisioning new servers, running system upgrades, and everything inidrsystems-deployment.yml
. Since this attempts to install updates there may be changes even if the repository or inventory are unchanged.
The playbooks in the hardware-dell
directory can be used to help with installing Dell hardware maintenance, for instance DRAC and BIOS updates.
Given the nature of these updates these playbooks should only be run when required, and consideration given to running against one host at a time.