- Packer
- Terraform (version 0.9+)
- Environment variable
DIGITALOCEAN_API_TOKENexposing a DigitalOcean API token
- Graphviz (only needed for visualizing the terraform plan)
Create the image:
$ TBDDeploy the terraform plan:
$ TBDOr do altogether:
$ sh go.shDestroy the deployed plan (& cleanup):
$ sh destroy.shpacker command:
$ packer build -machine-readable packer-ubuntu-docker.json | tee packer-ubuntu-docker.logCreate keygen:
# -f - filename
# -N - passphrase
# -q - quiet mode
$ ssh-keygen -t rsa -f ./do-packer-terraform -N '' $ export TF_LOG=1Output the plan:
$ terraform graphVisualize the plan:
$ terraform graph | dot -Tpng > graph.png$ terraform plan -target digitalocean_droplet.swarm-manager -target digitalocean_droplet.swarm-worker$ terraform apply -target digitalocean_droplet.swarm-manager -target digitalocean_droplet.swarm-worker$ terraform apply \
-target digitalocean_droplet.swarm-manager \
-var swarm_init=true \
-var swarm_managers=1$ terraform destroy -force- Make the number of mangers & workers fully dynamic in all scripts & outputs
- Store certs in a sub-folder
- Store logs in a sub-folder
- Store terraform logs in a sub-folder
- Destroy snapshots created by packer
- Rename the packer image
