consul is an orchestration mechanism with fault-tolerance based on the gossip protocol and a key/value store that is strongly consistent. Hiera-consul will allow hiera to write to the k/v store for metadata centralisation and harmonisation.
The following hiera.yaml should get you started.
:backends:
- consul
:consul:
:host: 127.0.0.1
:port: 8500
:paths:
- /v1/kv/configuration/%{fqdn}
- /v1/kv/configuration/common
As this module uses http to talk with Consul API the following parameters are also valid and available
:consul:
:host: 127.0.0.1
:port: 8500
:use_ssl: false
:ssl_verify: false
:ssl_cert: /path/to/cert
:ssl_key: /path/to/key
:ssl_ca_cert: /path/to/ca/cert
:failure: graceful
:ignore_404: true
You can also query the Consul catalog for values by adding catalog resources in your paths, the values will be returned as an array so you will need to parse accordingly.
:backends:
- consul
:consul:
:host: 127.0.0.1
:port: 8500
:paths:
- /v1/kv/configuration/%{fqdn}
- /v1/kv/configuration/common
- /v1/catalog/service
- /v1/catalog/node
Heavily based on etcd-hiera written by @garethr which was inspired by hiera-http from @crayfishx. Thanks to @mitchellh for writing such wonderful tools and the API Documentation