This is a back end plugin for Hiera that allows lookup to be sourced from HTTP queries. The intent is to make this backend adaptable to allow you to query any data stored in systems with a RESTful API such as CouchDB or even a custom store with a web front-end
The following is an example hiera.yaml configuration for use with hiera-http
:backends:
- http
:http:
:host: 127.0.0.1
:port: 5984
:output: json
:failure: graceful
:keys:
my-key-a
my-key-b
my-key-c
:paths:
- /configuration/%{fqdn}
- /configuration/%{env}
- /configuration/common
The following are optional configuration parameters
:output:
: Specify what handler to use for the output of the request. Currently supported outputs are plain, which will just return the whole document, or YAML and JSON which parse the data and try to look up the key
:http_connect_timeout:
: Timeout in seconds for the HTTP connect (default 10)
:http_read_timeout:
: Timeout in seconds for waiting for a HTTP response (default 10)
:failure:
: When set to graceful
will stop hiera-http from throwing an exception in the event of a connection error, timeout or invalid HTTP response and move on. Without this option set hiera-http will throw an exception in such circumstances
:ignore_404:
: If failure
is not set to graceful
then any error code received from the HTTP response will throw an exception. This option makes 404 responses exempt from exceptions. This is useful if you expect to get 404's for data items not in a certain part of the hierarchy and need to fall back to the next level in the hierarchy, but you still want to bomb out on other errors.
The :keys:
parameter takes keys that you wish to look-up through http.
If you don't supply this parameter all lookups will be requested against your http backend.
If you do supply keys only the given keys will be requested from your http-backend, all others will immediatly return.
The :paths:
parameter can also parse the lookup key, eg:
:paths:
/configuraiton.php?lookup=%{key}
:use_ssl:
: When set to true, enable SSL (default: false)
:ssl_ca_cert
: Specify a CA cert for use with SSL
:ssl_cert
: Specify location of SSL certificate
:ssl_key
: Specify location of SSL key
Theres a few things still on my list that I'm going to be adding, including
- Add HTTP basic auth support
- Add proxy support
- Add further handlers (eg: XML)
- Craig Dunn craig@craigdunn.org
- @crayfishX
- IRC (freenode) crayfishx
- http://www.craigdunn.org
- SSL components contributed from Ben Ford ben.ford@puppetlabs.com
- Stable
- Puppet Forge release
- Added SSL support
- Initial release