What is it?
A Puppet module that installs PowerDNS authority and recursor servers and a pipe backend for PowerDNS to resolve nodes based on facts in PuppetDB. The authority server uses both a bind backend for static names and a pipe backend to resolve hostnames from PuppetDB. Unknown requests from sources are forwarded to the recursor service on localhost.
Please see the comments in the various .pp files for details.
Released under the Apache 2.0 licence
Configuration is done through class parameters for configuring the hostname of the PuppetDB server and frequency of the cache refresh as well as a regex (if desired) to filter what requests should be passed to the PuppetDB pipe backend.
To install a BIND zonefile for corp.example.com:
- puppetdb_server - Hostname of the puppetdb server.
- puppetdb_logfile - Location to write the logfile for the pipe backend
- puppetdb_loglevel - Log level of the pipe backend
- puppetdb_reload - Frequency to refresh the node names from PuppetDB
- pdns_regex - Regex for matching what queries should be passed to the PuppetDB pipe backend. An example which would query the PuppetDB backend for all hostnames in the corp.example.com domain and reverse lookups for any IP in the 10/8 space would be:
- Only tested on RHEL 6.3 and puppet 3.0.1 using the pdns packages from EPEL
Justin Lambert / email@example.com / @jlambert121
20140117 - v1.2.0 Switch to puppetlabs/concat Remove monitoring v1.1.0: Remove hiera() requirement v1.0.0: Add monitoring framework Add sensu monitoring Switch to paramertized class v0.1.1: Documentation Minor fixes v0.1.0: Initial release
Copyright 2013 EvenUp Inc Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.