This is a little Go app that generates a dynamic Ansible inventory from a Terraform state file. It allows one to spawn a bunch of instances with Terraform, then (re-)provision them with Ansible. This library is stable, but I've been neglecting it somewhat on account of no longer using Ansible at work. On OSX, install it with Homebrew. Alternatively, you can download a release suitable for your platform and unzip it. Make sure the terraform-inventory binary is executable, and you're ready to go. Ansible doesn't seem to support calling a dynamic inventory script with params, so if you need to specify the location of your state file or terraform directory, set the TF_STATE environment variable before running ansible-playbook. Alternately, if you need to do something fancier (like downloading your state file from S3 before running), you might wrap this tool with a shell script, and call that instead.
Features
- Supports AWS, CloudStack and DigitalOcean
- Supports Docker, Exoscale, Google Compute Engine and Hetzner Cloud
- Supports libvirt, Linode, OpenStack and Packet
- Supports Open Telekom Cloud, Yandex.Cloud, and Telmate/Proxmox
- It's very simple to add support for new providers
- It allows one to spawn a bunch of instances with Terraform