- Packer
- Terraform (version 0.9+)
- Environment variable
DIGITALOCEAN_API_TOKEN
exposing a DigitalOcean API token
- Graphviz (only needed for visualizing the terraform plan)
Create the image:
$ TBD
Deploy the terraform plan:
$ TBD
Or do altogether:
$ sh go.sh
Destroy the deployed plan (& cleanup):
$ sh destroy.sh
packer command:
$ packer build -machine-readable packer-ubuntu-docker.json | tee packer-ubuntu-docker.log
Create keygen:
# -f - filename
# -N - passphrase
# -q - quiet mode
$ ssh-keygen -t rsa -f ./do-packer-terraform -N ''
$ export TF_LOG=1
Output the plan:
$ terraform graph
Visualize 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