Ansible
Create playbook(s) to install common
utilities and set sensible defaults.
Bonus: create Ansible Roles for plays that
can be useful for others
Slide 3
Slide 3 text
Packer
Build a CentOS 7.x base image that
utilizes playbooks built for the previous
step.
Bonus: make the image testable
Slide 4
Slide 4 text
Terraform
Provision an EC2 Instance using the AMI
built for the previous step.
Bonus: create Terraform Modules for
resources that can be useful for others
Slide 5
Slide 5 text
Terraform x Ansible
Use the Terraform Ansible Provisioner
to run playbooks once an instance has
been provisioned.
Bonus: find a way to continuously run the
playbook (on every terraform apply)
Slide 6
Slide 6 text
Consul
Ensure that instances are registered in
Consul and become reachable via
$instance.consul
Bonus: Fill KV store automatically with
metadata for an application
Slide 7
Slide 7 text
Terraform x Consul
Inside Terraform, consume AMI IDs from
Consul.
Slide 8
Slide 8 text
Terraform x Consul
Inside Terraform, consume port
numbers from Consul.
Slide 9
Slide 9 text
Ansible x Consul
Inside Ansible, consume KV data from
Consul.
Slide 10
Slide 10 text
Vault
Create a Vault Server that utilizes a
Consul backend and store database
connection credentials inside of it.
Slide 11
Slide 11 text
Terraform x Vault
Inside Terraform, consume database
connection credentials from Vault and
start a new RDS Instance.
Slide 12
Slide 12 text
Nomad
Dockerize a Node.js-based application
and schedule its run via multiple Nomad
Agents.
Slide 13
Slide 13 text
Nomad
Schedule a job to run via multiple Nomad
Agents