Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/retr0h/terraform-provider-terrable
On-host configuration management powered by Terraform.
https://github.com/retr0h/terraform-provider-terrable
ansible configuration-language configuration-management terraform terraform-plugins terraform-provider
Last synced: 3 days ago
JSON representation
On-host configuration management powered by Terraform.
- Host: GitHub
- URL: https://github.com/retr0h/terraform-provider-terrable
- Owner: retr0h
- License: mit
- Created: 2021-03-03T05:32:02.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2023-01-17T08:01:51.000Z (almost 2 years ago)
- Last Synced: 2024-12-19T00:11:32.507Z (15 days ago)
- Topics: ansible, configuration-language, configuration-management, terraform, terraform-plugins, terraform-provider
- Language: Go
- Homepage:
- Size: 652 KB
- Stars: 5
- Watchers: 3
- Forks: 0
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Terrable
[![Go](https://github.com/retr0h/terraform-provider-terrable/actions/workflows/go.yml/badge.svg)](https://github.com/retr0h/terraform-provider-terrable/actions/workflows/go.yml)
[![Docker Image CI](https://github.com/retr0h/terraform-provider-terrable/actions/workflows/docker-image.yml/badge.svg)](https://github.com/retr0h/terraform-provider-terrable/actions/workflows/docker-image.yml)
[![Linter](https://github.com/retr0h/terraform-provider-terrable/actions/workflows/linter.yml/badge.svg)](https://github.com/retr0h/terraform-provider-terrable/actions/workflows/linter.yml)
[![codecov](https://codecov.io/gh/retr0h/terraform-provider-terrable/branch/main/graph/badge.svg?token=69E6QZNRVX)](https://codecov.io/gh/retr0h/terraform-provider-terrable)Terrable ~ Terraform ~ Ansible
This project is a [terraform](http://www.terraform.io/) 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.[configuration language]: https://github.com/hashicorp/hcl
[Ansible is slow]: https://github.com/ansible/ansible/pull/72184
[strategy plugin]: https://mitogen.networkgenomics.com/ansible_detailed.html
[converge]: https://verticalsysadmin.com/blog/idempotence-vs-convergence-in-configuration-management/## Requirements
* Terraform 0.13.x
* Go 1.15## Usage
[Resources](docs/resources.md)
### Screenshot
![Usage](img/demo.png?raw=true "Usage")
## Testing
Run unit tests
```sh
make test
```Run integration tests
```sh
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](http://golang.org/doc/install) guide.This project uses [Go Modules](https://github.com/golang/go/wiki/Modules) for dependency management.
To fetch all dependencies run `make mod` inside this repository.### Build
```sh
make build
```The binary will then be available at `build/$(GOOS)_$(GOARCH)/$(PLUGIN_NAME)_v$(VERSION)`
### Install
```sh
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.
[MIT]: LICENSE