Skip to content

On-host configuration management powered by Terraform.

License

Notifications You must be signed in to change notification settings

retr0h/terraform-provider-terrable

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Terrable

Go Docker Image CI Linter codecov

Terrable ~ Terraform ~ Ansible

This project is a terraform provider for on-host configuration management powered by Terraform.

Rationale

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.

Requirements

  • Terraform 0.13.x
  • Go 1.15

Usage

Resources

Screenshot

Usage

Testing

Run unit tests

make test

Run integration tests

make build-docker test-integration

Developing

Dependencies for building from source

If 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.

Build

make build

The binary will then be available at build/$(GOOS)_$(GOARCH)/$(PLUGIN_NAME)_v$(VERSION)

Install

make install

This 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.

License

The MIT License.