Forge Home

hiera_http

Hiera 5 backend to query data lookups over HTTP

84,916 downloads

32,785 latest version

4.6 quality score

We run a couple of automated
scans to help you access a
module's quality. Each module is
given a score based on how well
the author has formatted their
code and documentation and
modules are also checked for
malware using VirusTotal.

Please note, the information below
is for guidance only and neither of
these methods should be considered
an endorsement by Puppet.

Version information

  • 3.4.0 (latest)
  • 3.3.2
  • 3.3.1
  • 3.3.0 (deleted)
  • 3.2.0
  • 3.1.0
  • 3.0.0
  • 1.4.0
  • 1.3.1
  • 1.3.0
  • 1.2.0
  • 1.0.1
  • 0.1.0 (deleted)
released Apr 16th 2017
This version is compatible with:
  • , ,

Start using this module

  • r10k or Code Manager
  • Bolt
  • Manual installation
  • Direct download

Add this module to your Puppetfile:

mod 'crayfishx-hiera_http', '3.0.0'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add crayfishx-hiera_http
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install crayfishx-hiera_http --version 3.0.0

Direct download is not typically how you would use a Puppet module to manage your infrastructure, but you may want to download the module in order to inspect the code.

Download

Documentation

crayfishx/hiera_http — version 3.0.0 Apr 16th 2017

hiera_http : a HTTP data provider function (backend) for Hiera 5

Description

This is a back end function for Hiera 5 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

Compatibility

  • The 3.x series of hiera-http is only compatible with Hiera 5, that ships with Puppet 4.9+
  • Users looking for older implementations for Hiera 1,2 and 3 should use hiera-http 2.x
  • hiera-http 3 ships within the crayfishx/hiera_http
  • hiera-http 2 (legacy) ships as a Rubygem "hiera-http"

Requirements

The lookup_http gem must be installed and loadable from Puppet

# /opt/puppetlabs/puppet/bin/gem install lookup_http
# puppetserver gem install lookup_http

Installation

The data provider is available by installing the crayfishx/hiera_http module into your environment.

# puppet module install crayfishx/hiera_http

Configuration

See The official Puppet documentation for more details on configuring Hiera 5.

The following is an example Hiera 5 hiera.yaml configuration for use with hiera-http

---

version: 5

hierarchy:
  - name: "Hiera-HTTP lookup"
    lookup_key: hiera_http
    uris:
      - http://localhost:5984/host/%{trusted.certname}
      - http://localhost:5984/dc/%{facts.location}
      - http://localhost:5984/role/%{facts.role}
    options:
      output: json
      ignore_404: true

The following mandatory Hiera 5 options must be set for each level of the hierarchy.

name: A human readable name for the lookup lookup_key: This option must be set to hiera_http uris or uri: An array of URI's passed to uris or a single URI passed to uri

The following are optional configuration parameters supported in the options hash of the Hiera 5 config

: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)

:confine_to_keys: : Only use this backend if the key matches one of the regexes in the array

  confine_to_keys:
    - "application.*"
    - "apache::.*"

: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.

: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

:ssl_verify: Specify whether to verify SSL certificates (default: true)

:use_auth:: When set to true, enable basic auth (default: false)

:auth_user:: The user for basic auth

:auth_pass:: The password for basic auth

:headers:: Hash of headers to send in the request

Author