dns
Table of Contents
Overview
Configure a DNS server (forward and authoritative) and system client.
Module Description
This module can install and configure a DNS server (bind) and configure clients.
Zones must be fully provided as a hash.
Setup
What dns affects
The client takes over defining the resolv.conf file.
The server sets up a Bind server.
Setup Requirements
This module uses stdlib.
Beginning with dns
Usage
On a client:
class { '::dns::client':
  domain      => "cluster.hpc.example.com",
  nameservers => [ '192.168.1.254', '192.168.1.253' ],
}
On a server:
class { '::dns::server':
  config_options => {
    'forwarders'        => [ '10.1.2.1', '10.1.1.1' ],
    'listen-on'         => [
      '127.0.0.1',
      '192.168.1.254',
      '192.168.1.253'
    ],
    'dnssec-validation' => 'no'
  },
  zones => {
    "cluster.hpc.example.com" =>  {
      "type" => "master",
      "entries" => [
         {
           "owner" => "@",
           "proto" => "IN",
           "type"  => "NS",
           "data"  => "cladmin1.cluster.hpc.example.com."
         },
        {
           "owner" => "@",
           "proto" => "IN",
           "type"  => "A",
           "data"  => "127.0.0.1"
         },
         {
           "owner" => "cladmin1",
           "proto" => "IN",
           "type"  => "A",
           "data"  => "10.1.16.11"
         }
      ]
    },
  }
}
On a real server, the zones hash must fully describe all forward and reverse
zones. If the configuration is using hpc-config, it should use the function
hpc_dns_zones from the hpclib module.
The server also supports a virtual_domain parameter to setup forward to a
consul DNS interface.
Limitations
This module is mainly tested on Debian, but is meant to also work with RHEL and derivatives.
Development
Patches and issues can be submitted on GitHub: https://github.com/edf-hpc/puppet-hpc