{"id":14994561,"url":"https://github.com/bodgit/puppet-unbound","last_synced_at":"2025-08-07T09:13:26.168Z","repository":{"id":57665127,"uuid":"64082139","full_name":"bodgit/puppet-unbound","owner":"bodgit","description":"Puppet Module for managing Unbound","archived":false,"fork":false,"pushed_at":"2019-05-19T14:21:27.000Z","size":168,"stargazers_count":0,"open_issues_count":1,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-07-11T12:25:52.754Z","etag":null,"topics":["dns","puppet","unbound"],"latest_commit_sha":null,"homepage":"https://forge.puppet.com/bodgit/unbound","language":"Puppet","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bodgit.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-07-24T19:31:47.000Z","updated_at":"2019-05-19T14:21:23.000Z","dependencies_parsed_at":"2022-09-26T20:31:15.929Z","dependency_job_id":null,"html_url":"https://github.com/bodgit/puppet-unbound","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/bodgit/puppet-unbound","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bodgit%2Fpuppet-unbound","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bodgit%2Fpuppet-unbound/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bodgit%2Fpuppet-unbound/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bodgit%2Fpuppet-unbound/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bodgit","download_url":"https://codeload.github.com/bodgit/puppet-unbound/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bodgit%2Fpuppet-unbound/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269230692,"owners_count":24382218,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-07T02:00:09.698Z","response_time":73,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dns","puppet","unbound"],"created_at":"2024-09-24T16:03:53.112Z","updated_at":"2025-08-07T09:13:26.114Z","avatar_url":"https://github.com/bodgit.png","language":"Puppet","readme":"# unbound\n\nTested with Travis CI\n\n[![Build Status](https://travis-ci.org/bodgit/puppet-unbound.svg?branch=master)](https://travis-ci.org/bodgit/puppet-unbound)\n[![Coverage Status](https://coveralls.io/repos/bodgit/puppet-unbound/badge.svg?branch=master\u0026service=github)](https://coveralls.io/github/bodgit/puppet-unbound?branch=master)\n[![Puppet Forge](http://img.shields.io/puppetforge/v/bodgit/unbound.svg)](https://forge.puppetlabs.com/bodgit/unbound)\n[![Dependency Status](https://gemnasium.com/bodgit/puppet-unbound.svg)](https://gemnasium.com/bodgit/puppet-unbound)\n\n#### Table of Contents\n\n1. [Description](#description)\n2. [Setup - The basics of getting started with unbound](#setup)\n    * [Beginning with unbound](#beginning-with-unbound)\n3. [Usage - Configuration options and additional functionality](#usage)\n4. [Reference - An under-the-hood peek at what the module is doing and how](#reference)\n5. [Limitations - OS compatibility, etc.](#limitations)\n6. [Development - Guide for contributing to the module](#development)\n\n## Description\n\nThis module manages Unbound.\n\nRHEL/CentOS and OpenBSD are supported using Puppet 4.6.0 or later.\n\n## Setup\n\n### Beginning with unbound\n\nIn the simplest case, configure Unbound listening on all interfaces:\n\n```puppet\ninclude ::unbound\n```\n\n## Usage\n\nUpdate the above example to specify the forwarders to use and allow access\nfrom the local network, also restrict outbound ports used to avoid anything\nbelow 32768 and above 65000:\n\n```puppet\nclass { '::unbound':\n  access_control =\u003e [\n    [\"${::network}/${netmask_to_masklen($::netmask)}\", 'allow'],\n    [\"${::network6}/${netmask_to_masklen($::netmask6)}\", 'allow'],\n  ],\n  outgoing_port  =\u003e [\n    ['avoid', 0, 32767],\n    ['avoid', 65001, 65535],\n  ],\n}\n\n::unbound::forward { '.':\n  forward_addr =\u003e [\n    '8.8.8.8',\n    '8.8.4.4',\n    '2001:4860:4860::8844',\n    '2001:4860:4860::8888',\n  ],\n}\n```\n\nConfigure NSD listening on the primary interface as a slave for a single\nzone protected with a given TSIG key and configure Unbound listening on\nthe loopback interface only with a stub zone pointing to NSD:\n\n```puppet\nclass { '::nsd':\n  ip_address =\u003e [\n    $::ipaddress,\n    $::ipaddress6,\n  ],\n}\n\n::nsd::key { 'example.':\n  algorithm =\u003e 'hmac-sha256',\n  secret    =\u003e '6z+8iKRIQrwN43TFfO/Rf2NHzpHIFVi6PsJ7dDESclc=',\n}\n\n::nsd::zone { 'example.com.':\n  allow_notify =\u003e [\n    ['192.0.2.1', 'example.'],\n  ],\n  request_xfr  =\u003e [\n    ['AXFR', '192.0.2.1', 'example.'],\n  ],\n}\n\nclass { '::unbound':\n  interface =\u003e [\n    $::ipaddress_lo,\n    $::ipaddress6_lo,\n  ],\n}\n\n::unbound::stub { 'example.com.':\n  stub_addr =\u003e [\n    $::ipaddress,\n    $::ipaddress6,\n  ],\n}\n```\n\nIf NSD is not required then local data can be used instead:\n\n```puppet\nclass { '::unbound':\n  interface  =\u003e [\n    $::ipaddress_lo,\n    $::ipaddress6_lo,\n  ],\n  local_zone =\u003e [\n    ['example.com.', 'static'],\n  ],\n  local_data =\u003e [\n    {\n      'name'     =\u003e 'example.com.'\n      'ttl'      =\u003e 86400,\n      'class'    =\u003e 'IN',\n      'type'     =\u003e 'NS',\n      'hostname' =\u003e 'ns1.example.com.',\n    },\n    {\n      'name'     =\u003e 'example.com.'\n      'ttl'      =\u003e 86400,\n      'class'    =\u003e 'IN',\n      'type'     =\u003e 'SOA',\n      'primary'  =\u003e 'ns1.example.com.',\n      'email'    =\u003e 'hostmaster.example.com.',\n      'serial'   =\u003e 1,\n      'refresh'  =\u003e 10800,\n      'retry'    =\u003e 15,\n      'expire'   =\u003e 604800,\n      'negative' =\u003e 10800,\n    },\n    {\n      'name'  =\u003e 'ns1.example.com.',\n      'ttl'   =\u003e 86400,\n      'class' =\u003e 'IN',\n      'type'  =\u003e 'A',\n      'ip'    =\u003e '192.0.2.1',\n    },\n  ],\n}\n```\n\n## Reference\n\nThe reference documentation is generated with\n[puppet-strings](https://github.com/puppetlabs/puppet-strings) and the latest\nversion of the documentation is hosted at\n[https://bodgit.github.io/puppet-unbound/](https://bodgit.github.io/puppet-unbound/).\n\n## Limitations\n\nThis module has been built on and tested against Puppet 4.6.0 and higher.\n\nThe module has been tested on:\n\n* RedHat Enterprise Linux 6/7\n* OpenBSD 6.0/6.1\n\n## Development\n\nThe module has both [rspec-puppet](http://rspec-puppet.com) and\n[beaker-rspec](https://github.com/puppetlabs/beaker-rspec) tests. Run them\nwith:\n\n```\n$ bundle exec rake test\n$ PUPPET_INSTALL_TYPE=agent PUPPET_INSTALL_VERSION=x.y.z bundle exec rake beaker:\u003cnodeset\u003e\n```\n\nPlease log issues or pull requests at\n[github](https://github.com/bodgit/puppet-unbound).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbodgit%2Fpuppet-unbound","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbodgit%2Fpuppet-unbound","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbodgit%2Fpuppet-unbound/lists"}