1
1
mirror of https://github.com/adammck/terraform-inventory synced 2024-11-23 04:22:08 +01:00
terraform-inventory/README.md

64 lines
1.7 KiB
Markdown
Raw Normal View History

2014-09-19 23:34:41 +02:00
# Terraformed Inventory
2014-09-24 20:47:37 +02:00
This is a little Go app which generates an dynamic [Ansible] [ansible] inventory
2015-06-05 05:17:39 +02:00
from a [Terraform] [tf] state file. It allows one to spawn a bunch of VMs with
Terraform, then (re-)provision them with Ansible. It's pretty neat.
2014-09-24 20:47:37 +02:00
2015-06-05 05:17:39 +02:00
Currently, only **AWS** and **DigitalOcean** are supported.
2014-09-24 20:47:37 +02:00
2015-02-09 22:51:45 +01:00
# Installation
On OSX, install it with Homebrew:
brew install https://raw.github.com/adammck/terraform-inventory/master/homebrew/terraform-inventory.rb
2014-09-24 20:47:37 +02:00
2015-02-09 22:51:45 +01:00
This is only a tiny tool, so it's not in the main Homebrew repo. Feel free to
add it, if you think that would be useful.
2014-09-24 20:47:37 +02:00
2015-02-09 22:51:45 +01:00
## Usage
2014-09-24 20:47:37 +02:00
Ansible doesn't (seem to) support calling the inventory script with parameters,
2015-06-04 16:20:16 +02:00
so you can specify the path to the state file using the `TI_TFSTATE` environment
variable, like so:
2015-06-05 06:03:42 +02:00
TI_TFSTATE=deploy/terraform.tfstate ansible-playbook --inventory-file=terraform-inventory deploy/playbook.yml
Alternately, you can create a little shell script and call that. Something like:
2014-09-24 20:47:37 +02:00
#!/bin/bash
2014-09-25 00:54:39 +02:00
terraform-inventory $@ deploy/terraform.tfstate
2014-09-24 20:47:37 +02:00
2014-09-25 00:54:39 +02:00
Then run Ansible with the script as an inventory:
ansible-playbook --inventory-file=bin/inventory deploy/playbook.yml
2014-09-19 23:34:41 +02:00
## Development
2015-02-09 22:51:45 +01:00
It's just a Go app, so the usual:
2014-09-19 23:34:41 +02:00
2015-02-09 22:51:45 +01:00
go get github.com/adammck/terraform-inventory
cd $GOPATH/adammck/terraform-inventory
2014-09-19 23:34:41 +02:00
go build
2015-06-05 04:43:56 +02:00
To test against an example statefile, run:
terraform-inventory --list fixtures/example.tfstate
terraform-inventory --host=web-aws fixtures/example.tfstate
2015-06-05 03:48:53 +02:00
To update the fixtures, populate `fixtures/secrets.tfvars` with your DO and AWS
account details, and run `fixtures/update`. You probably don't need to do this.
2014-09-19 23:34:41 +02:00
## License
MIT.
[ansible]: http://www.ansible.com
[tf]: http://www.terraform.io