Using data sources, templates, and local execution
When we deploy or update an infrastructure with Terraform, it's sometimes enjoyable to have some local content dynamically generated. For example, if you want to provision with Ansible the new virtual machine launched by Terraform, chances are you'll need to populate a hosts
file with the public IP address of this host locally on your laptop.
Ansible can use some dynamic inventories with AWS by itself, but we'll see here how to use a template in Terraform and dynamically fill in the required information so we end up with a working Ansible setup, thanks to Terraform.
Getting ready
To step through this recipe, you will need the following:
A working Terraform installation
An AWS account with an SSH key configured in Terraform and a security group allowing SSH connections from outside (refer to the Chapter 2, Provisioning IaaS with Terraform recipes)
An Internet connection
How to do it…
Let's start by launching a standard CentOS 7.2 on AWS with a standard...