...
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 theheetis
user. This is rectified by thedocker-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]
interraform/stage/
) to be destroyed.Creating new environments should be simplified by the use of the
rabbitmq-cluster
module which sits in the DEVOPS repo underterraform/common/
.