Terrable ~ Terraform ~ Ansible
This project is a terraform provider for on-host configuration management powered by Terraform.
Terraform already provides a configuration language and state management. This project is an experiment in on-host configuration.
Ansible is slow for our use case, even when running locally or using an alternative strategy plugin. This project is not intended as a replacement to Ansible, or as a mechanism to converge remote hosts, rather an experiment with our specific use cases.
- Terraform 0.13.x
- Go 1.15
Run unit tests
make testRun integration tests
make build-docker test-integrationIf you need to build from source, you should have a working Go environment setup. If not check out the Go getting started guide.
This project uses Go Modules for dependency management.
To fetch all dependencies run make mod inside this repository.
make buildThe binary will then be available at build/$(GOOS)_$(GOARCH)/$(PLUGIN_NAME)_v$(VERSION)
make installThis will place the binary under $(HOME)/.terraform.d/plugins/$(HOSTNAME)/$(USER)/$(NAME)/$(VERSION)/$(GOOS)_$(GOARCH).
After installing you will need to run terraform init in any project using the plugin.
The MIT License.
