Put setup into a script, and don't forget to start Docker.

Change-Id: Ieca29f1ca5ff6bfda7763fc31deee054d89c2a94
diff --git a/worker/README.md b/worker/README.md
index 458b681..9d608f9 100644
--- a/worker/README.md
+++ b/worker/README.md
@@ -2,7 +2,7 @@
 
 VMs should be created as:
 
- * named city-hackathon-40, city-hackathon-41, etc; the numbers should
+ * named $DESCRIPTION-40, $DESCRIPTION-41, etc; the numbers should
    be free in the CI master
 
  * Machine: 24 CPUs/90G RAM.
@@ -11,49 +11,4 @@
 
  * SSH: add your personal key.
 
-Here is a gcloud command:
-
-```
-num=51    # find some number that is free in the master.
-CITY=...
-for zone in us-east4-a \
-  us-central1-c \
-  us-east1-b \
-  us-west1-b \
-  europe-west1-b \
-  europe-west4-a ; \
-do
-  gcloud \
-   --project=${GCE_PROJECT} \
-   compute instances create \
-   --custom-cpu=24 \
-   --custom-memory=90 \
-   --image-project eip-images \
-   --image-family rhel-7-drawfork \
-   --boot-disk-size=100GB \
-   --boot-disk-type=pd-ssd \
-   --zone=${zone} \
-   ${CITY}-hackathon-${num} &
-   num=$(($num+1))
-done
-wait
-```
-
-Install your own key:
-
-```
-for n in $(seq 51 56) ; do
-  gcloud --project=${GCE_PROJECT} compute ssh ${CITY}-hackathon-${n} --command='echo KEY >> .ssh/authorized_keys'
-done
-```
-
-
-```sh
-IPS=$(gcloud --project=${GCE_PROJECT} compute instances list  | awk '{print $9;}')
-for DEST in $IPS ; do
-    echo $DEST && \
-    scp -o StrictHostKeyChecking=no $HOME/.ssh/gerritforge/id_ecdsa ${DEST}: && \
-    scp worker/* ${DEST}: && \
-    ssh ${DEST} 'sudo sh -x $(pwd)/setup.sh'
-done
-```
+Run `setup-all.sh` to start workers.
diff --git a/worker/setup-all.sh b/worker/setup-all.sh
new file mode 100644
index 0000000..cf6784e
--- /dev/null
+++ b/worker/setup-all.sh
@@ -0,0 +1,59 @@
+#!/bin/sh
+
+if [[ -z "$num" ]]; then
+  echo "Must set 'num'"
+  exit 1
+fi
+
+if [[ -z "$DESCRIPTION" ]]; then
+  echo "Must set 'DESCRIPTION'"
+  exit 1
+fi
+
+if [[ -z "$GCE_PROJECT" ]]; then
+  echo "Must set 'GCE_PROJECT'"
+  exit 1
+fi
+
+n=num
+for zone in us-east4-a \
+  us-central1-c \
+  us-east1-b \
+  us-west1-b \
+  europe-west1-b \
+  europe-west4-a ; \
+do
+  gcloud \
+   --project=${GCE_PROJECT} \
+   compute instances create \
+   --custom-cpu=24 \
+   --custom-memory=90 \
+   --image-project eip-images \
+   --image-family rhel-7-drawfork \
+   --boot-disk-size=100GB \
+   --boot-disk-type=pd-ssd \
+   --zone=${zone} \
+   ${DESCRIPTION}-${n} &
+   n=$(($n+1))
+done
+wait
+
+
+# Install our key
+KEY=$(ssh-add -L |grep -v cert)
+for n in $(seq ${num} $((${num} + 5))) ; do
+  gcloud --project=${GCE_PROJECT} compute ssh ${DESCRIPTION}-${n} \
+    --command="echo ${KEY} >> .ssh/authorized_keys"
+done
+
+# setup docker.
+IPS=$(gcloud --project=${GCE_PROJECT} compute instances list  | awk '{print $9;}')
+for DEST in $IPS ; do
+    echo $DEST && \
+    scp -o StrictHostKeyChecking=no $HOME/.ssh/gerritforge/id_ecdsa ${DEST}: && \
+    scp worker/* ${DEST}: && \
+
+    # this takes a while.
+    ssh ${DEST} 'sudo sh -x $(pwd)/setup.sh' &
+done
+wait
diff --git a/worker/setup.sh b/worker/setup.sh
index d756bc8..90eda2c 100755
--- a/worker/setup.sh
+++ b/worker/setup.sh
@@ -29,6 +29,7 @@
 cp ${src}/tunnel.sh /root
 
 systemctl daemon-reload
+systemctl enable docker
 systemctl start docker
 systemctl restart docker
 systemctl enable setup-tunnel.service