Awesome Consul
This is a list of awesome third-party consul projects, libraries.
Why consul
- Easy to install
- HTTP APIs
- Design for distributed system
- Flexible health check
- Excellent documentation
Table Of Contents
- Projects
- Links
Projects
Alerting
- consulalerting: Alert groups, teams, individuals by tags and plugins
- consul-alerts: Simple daemon to send notifications based on Consul health checks
Authentication And Authorization
- consult: Consul helper tool for quick query based SSH and more
- ssh-hecate: SSH authorized_keys management via Consul
Backup and Restore
As of Consul 0.7.1, you can use consul snapshot for some use-cases.
CLI Tools
- consul-cli: Command line interface
- consul-bash-completion: Consul Bash Completion library
- fileconsul: Share files stored in a consul cluster
Command Execution
As of Consul 0.5, you can use consul lock for many of these tasks.
- cdsh: Distributed SSH
- consul-do: Do something based on leadership status
- consul-lock: Runs another program with a Consul session/kv locked.
- consul-locker: Enforce that a program runs only on one machine at a time in a datacenter.
- cronsul: Very simple distributed periodic job scheduler
- dkron: Distributed, fault tolerant job scheduling system
- metronome: Scheduling tool on Consul
- sifter: Helps to prevent Consul from firing prematurely
Configuration Management
- confd: Manage local application configuration files using templates and data from etcd or consul
- consul-template: Generic template rendering and notifications with Consul
- crypt: Store and retrieve encrypted configs
- envconsul: Read and set environmental variables for processes from Consul
- hashi-helper: Disaster Recovery and Configuration Management for Consul and Vault
- hiera-consul: Hiera backend plugin for Consul
- kvexpress: Go program to move data in and out of Consul's KV store
- Consul.conf: responsive web interface for managing configuration of your services in Consul KV store
Load Balancing
- consul-envoy: Consul to Envoy Bridge
- fabio: A fast, modern, zero-conf load balancing HTTP(S) router for deploying microservices managed by consul
- TrΓ¦fΙͺk: a modern reverse proxy
- nginx-upsync-module - Nginx C module, sync upstreams from consul or others
Monitoring
Other
- consul-topology-visualizer: Visualize latency between your Consul nodes
- consulfs: ConsulFS is a FUSE distributed filesystem backed by a Consul Key-Value store
- consulmq: Golang library for using consul as a message queue
- git2consul: Mirrors for multiple git repos
- uwsgi-consul: uWSGI plugin for consul integration
Packaging
- Debian
- RPM
Provisioning
- Ansible
- Chef
- Docker
- Puppet
- Salt
Programming Language Clients
- Go
- Java
- Node.js
- PHP
- Python
- Ruby
- Scala
Service Discovery
- connectable: Magic proxy for internal services
- registrator: Service registry bridge for Docker with pluggable adapters
- resolvable: Host-level DNS gateway for Docker
Links
Articles
- Consul at Datadog - Article by Darron Froese on how Datadog deploys consul in production.
- Monitoring Consul Health and Performance - Article by @vagelim on how to monitor consul.
- Securing Consul - Article on making your consul setup more secure than the defaults give you.
- Managing Secrets with Vault and Consul - This post looks at how to set up and use Hashicorp's Vault and Consul to securely store and manage secrets.
- Configuration management with Consul - Article by Michael de Jongon on how to manage the configuration of many different services located in a cluster where services are running in different datacenters
Presentations
- Running Consul at ScaleβJourney from RFC to Production (SRECON 2016)
Errata
ZeroRPC
consul.d is an example configure file that consul working with ZeroRPC.
First, start a zerorpc server:
$ zerorpc --server --bind tcp://*:8081 time
Then, start the consul agent and the web UI:
$ bin/consul agent -config-dir ./consul.d