Commit Graph

145 Commits

Author SHA1 Message Date
Hal Deadman
aadc1f2f89 support forwarding a zone to a dns server on port other than 53
e.g. Consul runs on 8600
https://www.consul.io/docs/guides/forwarding.html
zone "consul" IN {
  type forward;
  forward only;
  forwarders { 127.0.0.1 port 8600; };
};
2016-02-10 10:47:12 -05:00
Nate Riffe
31cc2ada68 Merge branch 'root-zone-naming' into 6.0-prerelease 2016-01-29 07:52:45 -06:00
Nate Riffe
44b4b45761 Add option to disable default zone inclusion
By setting bind::include_default_zones to false, a user can suppress the
inclusion of the default definitions for the root hints zone and RFC 1912
zones. These are supplied with the BIND package's default configuration on both
Debian and RedHat derived systems. These zones are necessary for a resolver,
but may be omitted if the server acts strictly as an authoritative server.
2016-01-29 07:32:54 -06:00
Nate Riffe
57002c31a4 Include the default zones on RedHat
RedHat's default zones are baked into the stock named.conf, which the module's
template completely rewrites. Since the module is extremely view-based, and the
Debian default-zones are repositioned into the zones, let's take those defaults
out of the stock named.conf, build a configuration file out of them and include
it in the view just the same.
2016-01-29 07:32:54 -06:00
Nate Riffe
0b674de1ed Just one conditional 2016-01-29 07:30:57 -06:00
Nate Riffe
34478d25da Use an alternate name for the '.' zone
The root zone's domain is `.` but this means something special in the
filesystem which causes an error when creating the zone file.
2016-01-29 07:30:57 -06:00
Stefan - Zipkid - Goethals
12bda76ab9 - fix conflicts when using bind::updater on all nodes. 2016-01-27 09:49:31 +01:00
Nate Riffe
ae3bfa7f1b Add warnings and safety checks and documentation
The changes in the `redhat-default-zones` branch, when released, may cause
upgrade difficulties for Red Hat system administrators. Try to ease the
transition.
2016-01-19 07:44:30 -06:00
Nate Riffe
0388e91dc6 Try to validate that module-data is working
`bind::defaults::supported` should always have a boolean value. If it does not,
then this means either 1) user error (e.g. the user defined some other value
for the key) or 2) module_data is not functioning correctly.
2016-01-12 20:03:14 -06:00
Nate Riffe
3bfcc19a3e Turn params into defaults and formalize it
The `params` vs. `bind` class distinction has been blurry for a long time. I'm
formalizing it.

`params` is now `defaults` and its purpose is to gather platform-specific
variation into a single scope. These variables are related to situating a BIND
server on a particular platform and it should not ever be necessary or perhaps
even possible to change them as a matter of preference. Rather, correct values
are function of e.g. `$osfamily` or `$operatingsystem`.

The parameters of the `bind` class are limited to those that control the
server's feature set. These parameters *are* matters of preference and/or
purpose, rather than platform.

Also, I have taken some care to develop a convention for direct references to
qualified parameters where they are re-scoped into the local scope centrally at
the top first, and subsequent references are to the local value. This should
minimize future code churn and also aid readability.
2015-12-26 10:06:24 -06:00
Nate Riffe
250cb4e4c6 Put confdir in the params class, and more..
Fix a bunch of warnings whne using the bind::updater class by moving confdir to
the params class. In order for this to work, the bind and bind::updater classes
both now inherit from params. Also, fix the default value for
managed_key_directory to something that's actually falsey.
2015-12-26 01:05:52 -06:00
Nate Riffe
40f7972dc8 Merge pull request #59 from nerdlich/dnssec_more_secure
use modern dnssec key algorithm and provide option to use NSEC3
2015-12-19 09:26:51 -06:00
Nate Riffe
05b679a93d Fix a scoping issue in the template 2015-12-19 09:14:18 -06:00
Nate Riffe
1658fd82c3 Set managed-keys-directory
This is needed on RedHat derivatives.
2015-12-19 09:14:18 -06:00
Thomas Sturm
3928c7de6a use modern dnssec key algorithm and provide option to use NSEC3 2015-10-25 15:32:44 +01:00
Thomas Farvour
8005dfa7d9 Add the ability to specify server directives in a view (e.g. using TSIG keys) with a slave -> master. 2015-10-24 09:17:38 -05:00
Nate Riffe
2946e51c87 Leave distro files alone
Distro packaging includes a lot of configuration files that this module tries
and fails to get rid of, but with exclusions. Those don't always work for
mysterious reasons. Leave the distributed files intact as much as possible,
with just the necessary files touched to effect the desired configuration.

Also, make inclusion of named.conf.local optional (default false) and stop
ensuring that there's at least an empty one.
2015-08-20 07:09:09 -05:00
Ner'zhul
4efa1b956b Don't remove confdir files this remove standard files 2015-07-17 14:47:16 +02:00
Aimon Bustardo
0479c58b7c Add missing bind tools package and improve rspec tests
Change-Id: I0b4680ce11fe604917fce654d68c2bec17c05438
2015-07-07 15:33:16 -07:00
Nate Riffe
e25dbfc529 Parameterize the random device for dnssec-keygen
`dnssec-keygen` uses `/dev/random` by default, but this is slow in some
scenarios where `/dev/urandom` is both faster and provides sufficient utility.
Allow override via the `bind::random_device` hiera key.
2015-07-03 08:59:59 -05:00
Mike Bryant
1e8d0b3d0d Add support for the update-policy statement 2015-06-11 15:56:01 +01:00
Doug Neal
5b4d9f772e Fix bad variable name in bind::zone parameter validation code 2015-05-18 17:22:32 +01:00
Nate Riffe
9f489dcb6f validate_bool means something else
`validate_bool` validates that the passed value(s) are boolean, not that they
are true. Reformulate the calls to `unless` blocks, and remove the check for
"dynamic implies master" since setting `dynamic` to true is 1) the default and
2) does not cause any change to configuration text or manifest behavior when
the zone is not master.
2015-05-15 07:42:52 -05:00
Nate Riffe
20e50bf43a That needs to be a reload 2015-05-14 16:05:44 -05:00
Nate Riffe
54eea45d7d Refresh managed zones after a zone file change. 2015-05-14 15:36:41 -05:00
Nate Riffe
9f5c4bacb0 Add dynamic parameter to bind::zone
Add a parameter to `bind::zone` which indicates whether a zone is dynamic or
not. This has the effect of allowing puppet to manage the zone file rather than
simply initialize it. This change also introduces more appropriate handling of
slave and stub zones, so that puppet will not populate a stock zone file,
forcing the nameserver to do a zone transfer when a zone is created.

Also, there is now a substancial amount of validation in the `bind::zone` class
in order to prevent invalid parameter combinations, so that validity may be
assumed elsewhere in the manifest and in the configuration template.
2015-05-14 11:14:48 -05:00
Nate Riffe
eb6d3f5d63 Lint says these are bad 2015-03-23 19:16:37 -05:00
Trevor Smith
4d4fb12b3c change include statement to fully qualify the params class. This prevents puppet from attempting to include ::params 2015-03-19 12:23:12 -04:00
Trevor Smith
e27e9a9e85 fix typo 2015-03-19 12:10:19 -04:00
Trevor Smith
616b32e8f5 add namedconf parameter with default undef that will pull it's value for the module_data hiera backend. change the file resource for named.conf to use this value instead of being relative to the confdir parameter. This is needed because redhat based derivatives store the named.conf file under /etc not /etc/named/ 2015-03-19 12:04:43 -04:00
Tilo Klausing
f6bdbaac3a CentOS support 2015-03-09 14:21:12 +01:00
Nate Riffe
fe3de874ea Make a couple of formatting changes
* Line up the parameter defaults in init.pp
* Put the leading whitespace ahead of the statistics-channel conditional block
  inside the condition to avoid superfluous blank lines in the generated file
2015-02-12 20:33:22 -06:00
Tilo Klausing
fe0a845f65 statistics channel can optinally be enabled 2015-02-12 21:29:05 +01:00
Nate Riffe
01cb48191e Generate an rndc key, let BIND rest on defaults
In the absence of any 'controls' configuration, BIND uses the rndc.key file
containing a key named rndc-key for rndc by default. In this mode, there is
also no need for any explicit settings in rndc.conf.
2015-01-18 10:31:12 -06:00
Nate Riffe
9b1cbacee0 Give bind::key the ability to generate keys
Also, allow them to be placed elsewhere in the filesystem and make it possible
to exclude a key from the named configuration.
2015-01-18 10:11:24 -06:00
Tilo Klausing
0ebec14102 added support for view directive "match-recursive-only"
allows for dedicated views separating resolver and authorative functions
within the same server
2015-01-12 15:44:33 +01:00
Tilo Klausing
f9ed618b36 view fragment order is explictly controllable via optional parameter
order

this is neccessary because the order in the config is relevant for the
evaluation by bind
2015-01-12 15:44:18 +01:00
Nate Riffe
61adcc07c4 Add support for transfer-source 2015-01-08 08:17:01 -06:00
Nate Riffe
7a74314a1e Make it all work again.
Previous iterations and even a release were all broken. The module works again,
sorry for the interlude.

- Giving up on params and moving to module_data (WIP)
- Change the Package and Service references to the static 'bind' name
- Add a meager amount of test coverage
2015-01-08 08:09:32 -06:00
Nate Riffe
3d1d7a29dc Really fix lint issues 2014-12-12 07:33:00 -06:00
Nate Riffe
ac852d2e5b Lint cleanup 2014-12-11 07:12:19 -06:00
Nate Riffe
e365f5e49a Distinguish view access from recursion access
Make recursion_match_clients and recursion_match_destinations mirroring the
existing match_clients and match_destinations in order to distinguish recursion
access as a proper subset of view access.
2014-11-28 19:02:23 -06:00
Nate Riffe
66cc6ea21d Fix up the resource ordering
- Give the service and package resources stable titles and specify actual names
  via resource parameters.
- Make all the files (including concats) happen after the package, and notify
  the service
2014-11-28 09:17:09 -06:00
Brian Muita
f5cf852939 Added bind package to File resource defaults
Fixes concat failing because the bind group cannot be found on the first run
when bind isn't installed yet.
2014-11-27 18:30:50 +03:00
Nate Riffe
2d13b5cf3d Add a source parameter to bind::zone
Enable zone file initialization using a pre-existing zone file.
2014-10-09 16:18:21 -05:00
Nate Riffe
a66b985adb Fix up bind::updater and support rndc
I thought I fixed rndc a while ago... not quite. Do it now. Make bind::updater
actually work (incomplete last time)
2014-06-27 14:43:46 -05:00
Nate Riffe
09cf90342b Add bind::updater class
Create a bind::updater class to add support for the dns_rr resource on systems
that will not have a BIND server installed or running.
2014-06-15 10:44:15 -05:00
Nate Riffe
c4bc2a1c4a Add modelines and reformat pp files 2014-06-15 10:08:55 -05:00
Nate Riffe
0cede66bfb Fix rndc 2014-02-20 14:04:53 -06:00
Nate Riffe
4487b80401 Removed inclusion of concat::setup
Manual inclusion of concat::setup is deprecated and behaves strangely.
2014-01-20 17:19:41 -06:00
Nate Riffe
ad347e8b26 Purge zones and configs that aren't managed 2013-10-05 11:07:05 -05:00
Nate Riffe
1f18261b08 Match template expectations for array values 2013-08-08 08:05:27 -05:00
Nate Riffe
a5185b5aaf Fix dnssec-init to respect alt key-directory 2012-10-07 08:23:27 -05:00
Nate Riffe
97ce940f50 Differentiate the key init by namevar 2012-10-06 22:41:14 -05:00
Nate Riffe
9d0f03b5f6 Support alternate key directories 2012-10-06 22:29:54 -05:00
Nate Riffe
42a5e99f87 Make manual configuration possible 2012-10-06 16:40:59 -05:00
Nate Riffe
26b43b3169 Support forward zones 2012-10-06 15:10:46 -05:00
Nate Riffe
fe1ceca8fd Allow override of BIND's version string 2012-10-06 10:50:02 -05:00
Nate Riffe
22e0d2c603 Use right parameter name 2012-10-04 19:08:24 -05:00
Nate Riffe
28225f59e9 Add support for zone notification options 2012-10-04 19:04:21 -05:00
Nate Riffe
f30747d10b Add support for DNSSEC signed zones (breaking)
This adds a 'dnssec' parameter to the bind::zone define which causes the module
to generate keys and sign the zone.  Some caveats and breaking changes:

1) Existing non-signed zones will have to be manually moved and signed
2) Signed zones are treated as dynamic
2012-10-04 14:20:15 -05:00
Nate Riffe
64f10b4774 Get file and concat dependencies in order 2012-09-25 23:01:23 -05:00
Nate Riffe
b26cc808c9 Merge branch 'master' of https://github.com/inkblot/puppet-bind 2012-09-14 07:33:58 -05:00
Nate Riffe
699af3527a Enable DNSSEC validation in the resolver by default 2012-09-14 07:33:45 -05:00
Nate Riffe
114f16b33a Parameterize the key file's owner and group 2012-09-05 10:33:34 -05:00
Nate Riffe
6f170c4e58 Put zone files in the cache dir 2012-09-05 00:11:21 -05:00
Nate Riffe
d8f18bc4f8 Compatibility with puppetlabs/dhcp 2012-09-05 00:07:39 -05:00
Nate Riffe
a62f9dd107 named.conf is not a concat, make one for keys 2012-09-04 23:53:04 -05:00
Nate Riffe
4e74ffe8a9 Fix typo and rename template 2012-09-04 23:48:56 -05:00
Nate Riffe
107fe10194 Add keys 2012-09-04 23:45:28 -05:00
Nate Riffe
47c223eadd Fix typo 2012-09-04 22:57:23 -05:00
Nate Riffe
7fb2312a22 Fix syntax 2012-09-04 22:55:15 -05:00
Nate Riffe
d2b830a2e9 Initialize zone files for non-forward zones 2012-09-04 22:53:10 -05:00
Nate Riffe
a4d78368b3 Make zone configs notify the service 2012-09-04 22:43:23 -05:00
Nate Riffe
6ac1a1cefa Avoid naming collision 2012-09-04 12:39:35 -05:00
Nate Riffe
17cb883391 Try this? 2012-09-04 12:29:45 -05:00
Nate Riffe
64f37c1cdf Fix syntax 2012-09-04 12:27:54 -05:00
Nate Riffe
7b53c4c29d Set the file value for zones 2012-09-04 12:23:12 -05:00
Nate Riffe
d189c62002 Enable configuration of some options 2012-09-04 12:12:30 -05:00
Nate Riffe
63b3c4037b Add a zone definition 2012-09-04 07:24:31 -05:00
Nate Riffe
2d1d6d826d Get debian's default zones accounted for 2012-09-03 23:05:12 -05:00
Nate Riffe
60c297394f Fix syntax 2012-09-03 22:06:07 -05:00
Nate Riffe
e7899e97d0 Try inheritance 2012-09-03 21:56:48 -05:00
Nate Riffe
594d850cb2 Add templates for named.conf and for view fragments 2012-09-03 21:52:38 -05:00
Nate Riffe
641d416c97 Shift the burden of causality to the files 2012-09-03 19:52:40 -05:00
Nate Riffe
da7e6b9465 Must declare confdir to depend on it 2012-09-03 19:42:01 -05:00
Nate Riffe
fa7b63eb7e Subscribe the service to configuration changes 2012-09-03 18:49:37 -05:00
Nate Riffe
259e37c795 Add acls 2012-09-03 18:24:06 -05:00
Nate Riffe
e575d3a8b7 Consistency is awesome 2012-09-03 14:34:13 -05:00
Nate Riffe
a6bbb4c2cd Add missing platform parameters 2012-09-03 14:28:30 -05:00
Nate Riffe
09d2fe4a78 Fix syntax 2012-09-03 14:25:08 -05:00
Nate Riffe
08dbd5d4ed Define boilerplate acl, view, and zone configs 2012-09-03 14:22:25 -05:00
Nate Riffe
f89838cb93 Make the service depend on the package 2012-09-03 10:50:01 -05:00
Nate Riffe
b219c94fb8 Remove invalid hasreload parameter 2012-09-03 10:39:51 -05:00
Nate Riffe
45bc83642d Install the package and start the service 2012-09-03 10:32:48 -05:00