All Projects → puppetlabs → puppetlabs-dns

puppetlabs / puppetlabs-dns

Licence: Apache-2.0 license
A Puppet DNS records management module for DNSimple, DNSMadeEasy and AWS Route53

Programming Languages

ruby
36898 projects - #4 most used programming language
Puppet
460 projects

Labels

Projects that are alternatives of or similar to puppetlabs-dns

nim-mod
A Nim MOD player just for fun
Stars: ✭ 40 (+73.91%)
Mutual labels:  module
netdev stdlib
Netdev is a vendor-neutral network abstraction framework maintained by Puppet, Inc
Stars: ✭ 30 (+30.43%)
Mutual labels:  module
icingaweb2-module-fileshipper
Provide CSV, JSON, XML and YAML files as an Import Source for the Icinga Director and optionally ship hand-crafted additional Icinga2 config files
Stars: ✭ 25 (+8.7%)
Mutual labels:  module
zscilib
An open-source scientific computing library for embedded systems running Zephyr OS or standalone.
Stars: ✭ 85 (+269.57%)
Mutual labels:  module
HttpsUtility
A basic HTTPS utility S# module.
Stars: ✭ 45 (+95.65%)
Mutual labels:  module
puppetlabs-docker
The Puppet Docker repository
Stars: ✭ 78 (+239.13%)
Mutual labels:  module
nuxt-ts-module
A tiny module to use Typescript within Nuxt.js application.
Stars: ✭ 21 (-8.7%)
Mutual labels:  module
MeetupPS
PowerShell module to interact with Meetup.com API
Stars: ✭ 15 (-34.78%)
Mutual labels:  module
SnipWire
Full Snipcart shopping cart integration for ProcessWire CMF
Stars: ✭ 16 (-30.43%)
Mutual labels:  module
diffusion-maps
Fast computation of diffusion maps and geometric harmonics in Python
Stars: ✭ 36 (+56.52%)
Mutual labels:  module
maze generator
A work-in-progress Javascript maze generator module, compatible with both Deno and Node. 🌽
Stars: ✭ 35 (+52.17%)
Mutual labels:  module
icingaweb2-module-businessprocess
Create top-level views of your applications in a graphical editor. Rules express dependencies between existing hosts and services and let you alert on application level. Business processes are displayed in a tree or list overview.
Stars: ✭ 106 (+360.87%)
Mutual labels:  module
automatic-vendor-federation
Utility to enable automatic vendor sharing within bundles using Module Federation
Stars: ✭ 69 (+200%)
Mutual labels:  module
puppetlabs-activemq
Puppet ActiveMQ Module
Stars: ✭ 25 (+8.7%)
Mutual labels:  module
ppa6-python
Python module and documentation for direct printing on Peripage A6 / A6+ thermal printer via bluetooth
Stars: ✭ 37 (+60.87%)
Mutual labels:  module
Framer-Module-ShakeEvent
Shake event for your prototype.
Stars: ✭ 62 (+169.57%)
Mutual labels:  module
ZfSnapGeoip
Maxmind Geoip module for Zend Framework 2
Stars: ✭ 15 (-34.78%)
Mutual labels:  module
CodeforcesApiPy
Implementation of https://codeforces.com API
Stars: ✭ 17 (-26.09%)
Mutual labels:  module
bump
a tiny tool to bump nimble versions 🍻
Stars: ✭ 23 (+0%)
Mutual labels:  module
atomic-calendar-revive
An advanced calendar card for Home Assistant Lovelace.
Stars: ✭ 218 (+847.83%)
Mutual labels:  module

dns

Build Status

Table of Contents

  1. Description
  2. Setup - The basics of getting started with dns
  3. Usage - Configuration options and additional functionality
  4. Testing - Running tests
  5. Reference - An under-the-hood peek at what the module is doing and how
  6. Limitations - OS compatibility, etc.

Description

This is a DNS record management module with support for creating records in DNSimple, DNSMadeEasy, AWS Route53, DynECT, and bind9.

Setup

Requirements

The gems 'rest-client' is needed to manage DynECT, while fog is needed to manage everything else except bind.

For Bind, you'll need to have a key configured for DDNS - https://wiki.debian.org/DDNS has more information

Usage

Here's an example of the bind9 and dynect provider in use ###Bind9

# Set default provider/key location

Dns_record {
	provider  => bind,
	ddns_key  => '/etc/bind/keys.d/dhcp_updater',
}

dns_record { "test-2a-records.ops.puppetlabs.net":
  domain  => 'ops.puppetlabs.net',
  content => ['172.16.100.100','172.16.100.201'],
  type    => 'A',
  ttl     => '3200',
  ensure  => present
}
 
dns_record { "test-cname.ops.puppetlabs.net":
  domain => 'ops.puppetlabs.net',
  content => 'test-1a-record.ops.puppetlabs.net',
  type    => 'CNAME',
  ttl     => '16000',
  ensure  => present
}
 
dns_record { "test-txt.ops.puppetlabs.net":
  domain => 'ops.puppetlabs.net',
  content => 'Test TXT Record',
  type    => 'TXT',
  ttl     => '32000',
  ensure  => present
}

###DynECT

# Set defaults for dns_record

Dns_record {
  username      => 'username',
  customername  => 'customername',
  password      => 'password',
  provider      => 'dynect'
}

dns_record { "test-1a-record.puppetware.org":
  ensure  => present
  domain  => 'puppetware.org',
  content => '172.16.100.150',
  type    => 'A',
  ttl     => '4800',
}

dns_record { "test-cname.puppetware.org":
  ensure  => present
  domain  => 'puppetware.org',
  content => 'test-1a-record.puppetware.org',
  type    => 'CNAME',
  ttl     => '16000',
}

dns_record { "test-txt.puppetware.org":
  ensure  => present
  domain  => 'puppetware.org',
  content => 'Test TXT Record',
  type    => 'TXT',
  ttl     => '32000',
}

Testing

Right now there's basic unit tests for the dns_record type, and an acceptance test for DynECT for testing creating/editing/deleting records.

To run the unit tests, simply populate the gems with bundle install and run the tests with bundle exec rake spec. Add SPEC_OPTS='--format documentation' to the end of that line to get more verbose output.

For the acceptance test, set up a few environment variables to ensure no issues.

  • DYNECT_USER: The dynect username
  • DYNECT_CUST: The dynect customer name
  • DYNECT_PASS: The dynect password
  • DYNECT_SOA: The SOA of the domain you're testing. In my case it's ns1.p07.dynect.net. If this isn't set, it will default to localhost for lookups, and may fail tests based on TTL or ttl caches.

Reference

Types

  • dns_record: Used to set up a dns record.

Parameters

####Type: dns_record #####name Required The name of DNS record. #####ttl Optional The time to live for the record. Accepts an integer. Defaults to 3600. #####type Required The type of the DNS record. Accepts A, TXT, and CNAME for dynect, all types for bind9. #####content Required The value of the DNS record. Can accept an array for bind9.

Limitations

Currently only testing/actively using the DynECT and bind9 portions of this, but am currently keeping the other providers as they should still be working.

The DynECT provider does not currently accept an array for the A record type. The bind9 provider does.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].