terraforming, with a little help from your friends
At present, it offers the following:
Encryption & decryption functionality. Run in either full or inline mode, and leveraging either a simple or Vault based encryption provider, this functionality provides the ability to encrypt and decrypt files such as terraform.tfstate files, as well as piped in output from commands such as terraform apply etc.
Masking functionality. If you don't want to encrypt sensitive data, but rather just mask it out with something like ***** then you can use the mask command instead. This can either be run over a file, or have the content piped into it.
For more details, and some examples of how to use it please see the example READMEs.
Additionally the blog post Securing Terraform State with Vault also provides more details and background as well.
NAME: terrahelp - Provides additional functions helpful with terraform development USAGE: terrahelp [global options] command [command options] [arguments...] VERSION: 0.4.3 AUTHOR(S): https://github.com/opencredo OpenCredo - Nicki Watt COMMANDS: vault-autoconfig Auto configures Vault with a basic setup to support encrypt and decrypt actions. encrypt Uses configured provider to encrypt specified content decrypt Uses configured provider to decrypt specified content mask Mask will overwrite sensitive data in output or files with a masked value (eg. ******). help, h Shows a list of commands or help for one command GLOBAL OPTIONS: --help, -h show help --version, -v print the version
Available from this repository's releases page here.
The community has also made it available as an AUR package via https://aur.archlinux.org/packages/terrahelp
OSX, Linux & *BSD
Download a binary, set the correct permissions, add to your PATH:
chmod +x terrahelp export PATH=$PATH:/wherever/terrahelp
And run it:
Not here yet ...
Build it yourself
To set up your Go environment - look here.
Install Go (Terrahelp is currently built against 1.7.3)
mkdir -p "$GOPATH/src/github.com/opencredo/" git clone https://github.com/opencredo/terrahelp.git "$GOPATH/src/github.com/opencredo/terrahelp" cd "$GOPATH/src/github.com/opencredo/terrahelp"
Terrahelp uses govendor to manage it's dependencies, and currently also checks them into Git to enable a seamless build experience. However should you wish to change / upgrade any of these, you can get govendor, and then run the appropriate commands (e.g sync, fetch etc)
go get -u github.com/kardianos/govendor govendor sync
go test -v ./...
Want to cross compile it?
env GOOS=darwin GOARCH=amd64 go build -o=terrahelp-darwin-amd64 env GOOS=linux GOARCH=amd64 go build -o=terrahelp-linux-amd64