This folder contains the Ansible playbooks for configuring a fresh OS
installation for use as a Buildbot worker in Zcash's CI.
+
+# Setting up a latent worker on Amazon EC2
+
+- Add a regular (non-latent) worker to the master.cfg for dev-ci.z.cash, and
+ deploy the changes.
+ - This enables the Ansible playbook to run to completion, ending in the worker
+ connecting to the master.
+
+- Start a basic EC2 instance using the template AMI for the target OS.
+ - Choose the smallest instance size, it won't be used for building Zcash.
+
+- Figure out which user to log into the instance with.
+ - E.g. for the Ubuntu template, use "ubuntu" instead of "root"
+ - If you get an Ansible error later with a message like "Failed to connect to
+ the host via ssh: Received message too long 1349281121\r\n", that means the
+ instance is sending a text string in response to the SSH connection, and the
+ Ansible protocol is balking. Try manually logging in with the same
+ credentials to diagnose.
+
+- Create `inventory/hosts` containing the following:
+
+ [zcash-ci-worker-unix]
+ some-name ansible_host=<INSTANCE_IP> ansible_ssh_user=<USERNAME>
+
+- Run `ansible-playbook -i inventory/hosts unix.yml`, passing in the worker's
+ Buildbot name and password.
+ - After a successful run, the worker should be connected to dev-ci.z.cash and
+ visible in its worker list.
+
+- Create an AMI from the instance. This is the worker AMI to put into the
+ master.cfg for dev-ci.z.cash.
+ - 16 GB of storage should be sufficient.
+
+- SSH into the instance, and edit the worker config to connect to ci.z.cash.
+
+- Create an AMI from the instance. This is the worker AMI to put into the
+ master.cfg for ci.z.cash.
+ - 16 GB of storage should be sufficient.
+
+- Delete the instance (it is no longer needed).
+
+- Edit the master.cfg to turn the new worker into a latent (using the new AMI
+ IDs), add it to the appropriate worker groups, set up new builders etc.
+ - Deploy this via the normal PR review process.