Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

What do you call a cluster of rabbits?

Table of Contents

What makes a cluster

...

  • Due to hitting a limit on number of VMs in the subscription, Dev has been created as 2 nodes (1 commented out). As per “What makes a cluster”, this is potentially worse than having a single node. 💽

  • Configuration seems to be ‘all by one method’. I initially tried maintaining the user & vhost environment variables but these were ignored; giving preference to the config file in which I had only defined the cluster discovery mechanism. 🐰

  • Erlang cookie file: I left it as an environment variable because of the extra settings required it is a security parameter rather than ‘configuration’ as above. 🐰

  • Terraform seems to install docker but doesn’t have the docker group so fails to add the heetis user. This is rectified by the docker-upgrade.yml playbook. 🐳

  • Ansible ‘role’ playbooks; these seemed to be doing more than I could deduce from the playbooks, inc. copying files as directories. I resorted to using the config directory that is created irrespective of need. 📁

TODO

As new VMs are provisioned

  • The ansible playbooks need to be modified to remove exclusions for the IP addresses used (already configured in the ‘hosts’ inventory).

Azure VM

  • ‘Burstable’ seems like a good model but I only used this as because that is what was configured already.

Data storage

  • Mount point, size & required throughput (data/s & IOPS).

  • Iterating over a VM ‘base module' in terraform

  • Generate the erlang cookie file at deploy time (using ansible?) and set permissions as 600.

Stage & Prod

  • It seems cleaner for Liban’s stage cluster (rabbitmq-cluster-server-[1-3] in terraform/stage/) to be destroyed.

  • Creating new environments should be simplified by the use of the rabbitmq-cluster module which sits in the DEVOPS repo under terraform/common/.