A Hiera 5 backend for Redis
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
lib/puppet/functions
spec
.fixtures.yml
.gitattributes
.gitignore
.gitlab-ci.yml.save
.pdkignore
.rspec
.rubocop.yml
.travis.yml
.yardopts
CHANGELOG.md
Gemfile
LICENSE
README.md
Rakefile
appveyor.yml
metadata.json

README.md

hiera_redis

Table of Contents

  1. Description
  2. Setup - The basics of getting started with hiera_redis
  3. Usage - Configuration options and additional functionality
  4. Limitations - OS compatibility, etc.
  5. Development - Guide for contributing to the module
  6. Credits - credits to developers

Description

This module provides a Hiera 5 backend for Redis.

Setup

Setup Requirements

The backend requires the redis gem installed in the Puppet Server JRuby. It can be installed with:

/opt/puppetlabs/bin/puppetserver gem install redis

It is also recommended to install the gem into the agent's Ruby:

/opt/puppetlabs/puppet/bin/gem install redis

This allows commands such as puppet apply or puppet lookup to use the backend.

Beginning with hiera_redis

If Redis is running on the Puppet master with the default settings, specifying the lookup_key as 'redis_lookup_key' is sufficient, for example:

---
version: 5
hierarchy:
  - name: hiera_redis
    lookup_key: redis_lookup_key

Usage

By default, the backend will query Redis with the key provided. It is also possible to query multiple scopes such as with the YAML backend, where the expected key in Redis is composed of the scope and the key separated by a character (default is :). For example, the following can be used:

---
version: 5
hierarchy:
  - name: hiera_redis
    lookup_key: redis_lookup_key
    options:
      confine_to_keys:
        - '^redis_.*'
        - '^myapp_.*'
        - '^ssh_group$'
      scopes:
        - "osfamily/%{facts.os.family}"
        - common

The backend then expects keys of a format such as common:foo::bar for a lookup of 'foo::bar'.

The other options available include:

  • host: The host that Redis is located on. Defaults to 'localhost'.
  • port: The port that Redis is running on. Defaults to 6379.
  • socket: Optional Unix socket path
  • password: Optional Redis password
  • db: The database number to query on the Redis instance. Defaults to 0.
  • scope: The scope to use when querying the database.
  • scopes: An array of scopes to query. Cannot be used in conjunction with the scope option.
  • separator: The character separator between the scope and key being queried. Defaults to ':'.
  • confine_to_keys: Only use this backend if the key matches one of the regexes in the array:
  confine_to_keys:
    - "application.*"
    - "apache::.*"

Limitations

This module has only been tested on CentOS.

Development

PRs welcome.

Credits

This repository was initially a fork from andrewm3 hiera_redis repo, but since it has diverged and the original module is not being updated, it is now showing as a new module, with a specific mention to the original authors.

The code to related to confine_to_keys comes from petems hiera_vault repository. I thought it was a good example and I wanted to make it as default.