Skip to content
This repository has been archived by the owner on Jun 18, 2021. It is now read-only.

Get the IDR playbooks working smoothly with multiple deployments #124

Merged
merged 25 commits into from
Oct 13, 2016

Conversation

manics
Copy link
Member

@manics manics commented Sep 26, 2016

Replaces vm_prefix with idr_environment in all openstack IDR playbooks, adds this as a group prefix in all IDR playbooks.

This means every server in an IDR deployment is in the following three groups

  1. one of database-hosts omero-hosts gateway-hosts
  2. {{idr_environment}}-hosts
  3. one of {{idr_environment}} -database-hosts {{idr_environment}} -omero-hosts {{idr_environment}} -gateway-hosts

In practice this means it is possible to configure variables for

  1. all servers by purpose (database, omero, gateway)
  2. all servers in a given deployment (idr_environment)
  3. a server by purpose in a given deployment (intersection of the above)

At present (3) should only contain one server (which can be addressed as e.g. {{idr_environment}} -database-hosts[0], if we implement load-balancing there may be more than 1.

This also reverts some changes to ansible.cfg from #112 in order to get this repo working, these changes should be reverted in a development or breaking branch until everyone's happy.

idr_environment defaults to idr so that the IDR playbooks can be run without any private configuration. In most cases you should set idr_environment to something else and add matching group vars files. For example see # IDR multinode omero in Vagrantfile

Fixes the following from the config issue:

  • tty required for sudo (causes fatal: [demo3-omero]: FAILED! => {"failed": true, "msg": "Failed to get information on remote file (/etc/security/limits.d/95-omero.conf): MODULE FAILURE"} (idr-omero.yml))
  • use of [0] for which host to use is dangerous since it assumes one type per cloud.

Includes:

For tidiness this PR should be rebased after merging the above three.

@manics manics added the ON_HOLD label Sep 26, 2016
@snoopycrimecop
Copy link
Member

Conflicting PR. Removed from build MANAGEMENT_TOOLS-merge#970. See the console output for more details.
Possible conflicts:

@snoopycrimecop
Copy link
Member

Conflicting PR. Removed from build MANAGEMENT_TOOLS-merge#973. See the console output for more details.
Possible conflicts:

@joshmoore
Copy link
Member

--exclude

This is the combined state of the other PRs. Getting those in first.

@manics
Copy link
Member Author

manics commented Oct 6, 2016

As discussed I've refactored os-create.yml into a role, and added an example playbook.

@manics
Copy link
Member Author

manics commented Oct 6, 2016

I've disabled the default nginx header in c135ef4, this shouldn't be needed any more since ome/openmicroscopy#4744 means the displayed host is generated on the client side not the server, and if it's enabled you always get redirected to idr-demo instead of whatever server you're trying to test..

@joshmoore
Copy link
Member

Couple of questions:

@manics
Copy link
Member Author

manics commented Oct 6, 2016

time to remove "exclude"?

👍

are the old top-level IDR playbooks slotted for removal?

I'll remove them in a later PR once we know this works at EBI.

if we need to ship our own os_volume for a while happy to start bringing these into infrastructure (as with ansible/ansible-modules-core#4614)

The main benefit was for testing the changes to infrastructure, in production it should be a one off copy so the time penalty doesn't matter so much. If you get any timeout or "not ready" errors just re-run ansible-playbook after a few minutes.

idr-playbooks/idr-dundee-nfs.yml \
idr-playbooks/idr-ebi-nfs.yml \
idr-playbooks/idr.yml \
idr-playbooks/idr-docker.yml
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doesn't exist (yet?)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

True...that's in my other branch

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

BASTION_IP=10.0.0.0
IDR_ENVIRONMENT=idr
ansible-playbook \
-i inventory/openstack-private.py \
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For this to work, I have to remove clouds.yaml

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is the public repo so the instructions are designed to work as far as possible without any private config. I assumed any internal instructions would be elsewhere

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Understood, but in general, I think we may still need to re-evaluate openstack-private.py (later)

@manics
Copy link
Member Author

manics commented Oct 12, 2016

Disabled omero_upgrade

@joshmoore joshmoore removed the ON_HOLD label Oct 12, 2016
@joshmoore
Copy link
Member

Shooting for having this to be in 0.3.0-rc1 (of IDR)

@joshmoore
Copy link
Member

No objections in chat. Only non-IDR change is the selinux blocker. Merging.

@joshmoore joshmoore merged commit 65aa39a into ome:master Oct 13, 2016
@manics manics deleted the idr-working branch October 13, 2016 14:36
manics pushed a commit to manics-archive/ome-infrastructure that referenced this pull request Nov 24, 2016
Get the IDR playbooks working smoothly with multiple deployments
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants