Converge is a configuration management tool that makes it easy to manage servers, laptops and other devices.
Key features:
- Easy to install and run. A single binary and configuration file is all you need.
- A powerful graph engine that automatically generates dependencies and runs tasks in parallel.
- API-first communication using grpc.
- Module verification: only run trusted modules.
Table of Contents
go get github.com/asteris-llc/converge
or download a release for your platform from the releases page on Github.
See the docs! It's pretty reasonable, though. Here's a summary:
Converge uses HCL for syntax. HCL is a superset of JSON that looks (and acts) quite a bit nicer.
The basic unit of composition in converge is the module. Modules have parameters and contain resources. Creating a module looks something like this:
# write "hello world" to disk
param "message" {
default = "Hello, World in {{param `filename`}}"
}
param "filename" {
default = "test.txt"
}
file.content "render" {
destination = "{{param `filename`}}"
content = "{{param `message`}}"
}
Invoke this with converge apply --local samples/fileContent.hcl
to place
a test file on your system. You can also converge plan --local samples/fileContent.hcl
to see what changes will be made before you apply them.
For linting, you'll need:
tool | go get |
---|---|
golint |
github.com/golang/lint/golint |
go tool vet |
(built in) |
gosimple |
honnef.co/go/simple/cmd/gosimple |
unconvert |
github.com/mdempsky/unconvert |
structcheck |
github.com/opennota/check/cmd/structcheck |
varcheck |
github.com/opennota/check/cmd/varcheck |
aligncheck |
github.com/opennota/check/cmd/aligncheck |
gas |
github.com/HewlettPackard/gas |
You'll need:
- Google's protobuf compiler, 3.0 or above.
- The go protoc plugin:
go get -a github.com/golang/protobuf/protoc-gen-go
- The grpc gateway plugin(s):
go get -u github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger
Converge is licensed under the Apache 2.0 license. See LICENSE for full details.