MintPress DNS Provider - PowerDNS
This MintPress gem provides a wrapper to create and manage records and zones on a PowerDNS Authoritative Server.
Product | Version |
---|---|
PowerDNS | 4.1 |
Required Reading
This will only really make sense if you have read the general Mintpress Infastructure Framework documentation
Using with mintpress infrastructure framework
include MintPress::Infrastructure
# To use with an existing VM build, this is all you need
UsingPowerDNSEntry.new(webserver_host: 'powerdns.test.mintpress.io',
webserver_port: 80,
api_key: 'changeme')
# To create a custom DNS entry, try this:
PowerDnsEntry.new(type: 'A',
name: 'test1.mintpress.io',
values: '192.168.1.100',
ttl: 300).create
# Maybe a CNAME
PowerDnsEntry.new(type: 'CNAME',
name: 'test2.mintpress.io',
values: 'test1.mintpress.io',
ttl: 300).create
# Maybe a PTR for test1
PowerDnsEntry.new(type: 'PTR',
name: '9.0.0.10.in-addr.arpa',
values: 'test1.mintpress.io',
ttl: 300).create
# To create a remove DNS entry, try this:
PowerDnsEntry.new(type: 'A',
name: 'test1.mintpress.io').remove
or in chef:
power_dns_zone "test.mintpress.io" do
webserver_host 'powerdns.test.mintpress.io'
webserver_port 80
api_key 'changeme'
kind 'Native'
namservers 'powerdns.test.mintpress.io'
end
using_power_dns_entry "powerdns" do
webserver_host 'powerdns.test.mintpress.io'
webserver_port 80
api_key 'changeme'
end
power_dns_entry "test1.mintpress.io' do
type 'A'
values '192.168.1.100'
action :create
end
Creating Zones
To manage powerdns zones, we provide the PowerDnsZone resource - it does NOT use teh UsingPowerDnsEntry details, so you do have to specify the host/port/apikey on this:
include MintPress::Infrastructure
zone = PowerDnsZone.new(webserver_host: 'powerdns.test.mintpress.io',
webserver_port: 80,
api_key: 'changeme',
name: 'test.mintpress.io',
dnssec: true,
kind: 'native',
nameservers: '192.168.1.1')
# Create the zone
zone.create
# Clean it up
zone.delete