{"id":19871919,"url":"https://github.com/saltstack-formulas/bind-formula","last_synced_at":"2025-04-04T16:16:51.648Z","repository":{"id":1123534,"uuid":"10653728","full_name":"saltstack-formulas/bind-formula","owner":"saltstack-formulas","description":null,"archived":false,"fork":false,"pushed_at":"2025-01-06T23:07:13.000Z","size":490,"stargazers_count":29,"open_issues_count":19,"forks_count":116,"subscribers_count":41,"default_branch":"master","last_synced_at":"2025-03-28T15:11:18.407Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://docs.saltstack.com/en/latest/topics/development/conventions/formulas.html","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/saltstack-formulas.png","metadata":{"files":{"readme":"docs/README.rst","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS.md","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-06-12T22:24:22.000Z","updated_at":"2024-04-21T03:38:04.000Z","dependencies_parsed_at":"2025-03-04T00:36:09.931Z","dependency_job_id":null,"html_url":"https://github.com/saltstack-formulas/bind-formula","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saltstack-formulas%2Fbind-formula","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saltstack-formulas%2Fbind-formula/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saltstack-formulas%2Fbind-formula/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saltstack-formulas%2Fbind-formula/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/saltstack-formulas","download_url":"https://codeload.github.com/saltstack-formulas/bind-formula/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247208190,"owners_count":20901570,"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","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":[],"created_at":"2024-11-12T16:13:58.536Z","updated_at":"2025-04-04T16:16:51.630Z","avatar_url":"https://github.com/saltstack-formulas.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":".. _readme:\n\nbind-formula\n================\n\n|img_travis| |img_sr|\n\n.. |img_travis| image:: https://travis-ci.com/saltstack-formulas/bind-formula.svg?branch=master\n   :alt: Travis CI Build Status\n   :scale: 100%\n   :target: https://travis-ci.com/saltstack-formulas/bind-formula\n.. |img_sr| image:: https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\n   :alt: Semantic Release\n   :scale: 100%\n   :target: https://github.com/semantic-release/semantic-release\n\nA SaltStack formula that is empty. It has dummy content to help with a quick\nstart on a new formula and it serves as a style guide.\n\n.. contents:: **Table of Contents**\n\nGeneral notes\n-------------\n\nSee the full `SaltStack Formulas installation and usage instructions\n\u003chttps://docs.saltstack.com/en/latest/topics/development/conventions/formulas.html\u003e`_.\n\nIf you are interested in writing or contributing to formulas, please pay attention to the `Writing Formula Section\n\u003chttps://docs.saltstack.com/en/latest/topics/development/conventions/formulas.html#writing-formulas\u003e`_.\n\nIf you want to use this formula, please pay attention to the ``FORMULA`` file and/or ``git tag``,\nwhich contains the currently released version. This formula is versioned according to `Semantic Versioning \u003chttp://semver.org/\u003e`_.\n\nSee `Formula Versioning Section \u003chttps://docs.saltstack.com/en/latest/topics/development/conventions/formulas.html#versioning\u003e`_ for more details.\n\nContributing to this repo\n-------------------------\n\n**Commit message formatting is significant!!**\n\nPlease see `How to contribute \u003chttps://github.com/saltstack-formulas/.github/blob/master/CONTRIBUTING.rst\u003e`_ for more details.\n\nAvailable states\n----------------\n\n.. contents::\n   :local:\n\n``bind``\n^^^^^^^^\n\nInstall the bind package and start the bind service.\n\n``bind.config``\n^^^^^^^^^^^^^^^\n\nManage the bind configuration file.\n\nExample Pillar\n--------------\n\n.. code:: yaml\n\n    bind:\n      configured_zones:\n        example.com:\n          type: master\n          notify: False\n      available_zones:\n        example.com:\n          file: example.com.txt\n          soa:\n            ns: ns1.example.com                       # Required\n            contact: hostmaster.example.com           # Required\n            serial: 2017041001                        # Required\n          records:                                    # Records for the zone, grouped by type\n            A:\n              mx1:                                    # A RR with multiple values can\n                - 1.2.3.228                           # be written as an array\n                - 1.2.3.229\n              cat: 2.3.4.188\n              rat: 1.2.3.231\n              live: 1.2.3.236\n      configured_views:\n        myview1:\n          match_clients:\n            - client1\n            - client2\n        configured_zones:\n          my.zone:\n            type: master\n            notify: False\n\nSee *pillar.example* for a more complete example.\n\nManagement of zone files\n------------------------\n\n`named.conf.local`\n^^^^^^^^^^^^^^^^^^\n\n\u003czone\u003e entries in `named.conf.local` will point to the file declared in\n\n* `bind:configured_zones:\u003czone\u003e:file` (this takes precedence)\n* `bind:available_zones:\u003czone\u003e:file`\n\nzone files\n^^^^^^^^^^\n\nThe `config.sls` state will  iterate on `bind:available_zones` and manage\n\u003czone\u003e files for each \u003czone\u003e that has bind:available_zones:\u003czone\u003e:file`\ndeclared.\n\n* If `bind:available_zones:\u003czone\u003e:records` exist, a zone file will be created\n  using those records (see pillar.example for more details)\n* If `bind:available_zones:\u003czone\u003e:records` is **NOT** declared,\n  `bind:available_zones:\u003czone\u003e:file` should point to an existing zone file\n  that will be **sourced** by the formula.\n\nUsing Views\n^^^^^^^^^^^\n\nUsing views introduces some restrictions by the BIND server in that once you have views defined, ALL of your zones have to be served via a view. You cannot have any zones defined outside of a view. \n\nIf you want multiple views to serve the same zone but with different record sets, follow the example in pillar-with-views.example to set this up. The key to this is the 'file' argument in the view configuration that allows you to set the view's configured_zone to a zone that you define underneath 'available_zones'. Without specifying this 'file' argument, your views cannot serve the same zone; they will instead serve a zone that matches the name of the view.\n          \nExternal zone files\n^^^^^^^^^^^^^^^^^^^\n\nTo use an external tool to manage the \u003czone\u003e file, simply declare the location\nof the zone file in  `bind:configured_zones:\u003czone\u003e:file` and **don't** add any\nentry for the \u003czone\u003e in  `bind:available_zones`\n\nDNSSEC\n------\n\nThe `bind` formula currently support two ways to enable DNSSEC:\n\n* Using the `zonesigner` binary provided by `dnssec-tools` (legacy) ;\n* Using internal features of `bind`.\n\nHere is sample pillar entries to use the latter.\n\nOn the master server :\n\n.. code:: yaml\n\n  bind:\n    lookup:\n      key_directory: '/etc/bind/keys'\n    config:\n      options:\n        dnssec-enable: 'yes'\n        dnssec-validation: 'yes'\n    configured_acls:\n      slave_server:\n        - 192.168.1.2\n    configured_zones:\n      domain.tld:\n        file: \"db.domain.tld\"\n        type: master\n        notify: True\n        allow-transfer:\n          - localnets\n          - localhost\n          - slave_server\n        allow-update: 'none'\n        auto-dnssec: 'maintain'\n\nOn the slave server :\n\n.. code:: yaml\n\n  bind:\n    config:\n      options:\n        dnssec-enable: 'yes'\n        dnssec-validation: 'yes'\n    configured_zones:\n      domain.tld:\n        file: \"db.domain.tld.signed\"\n        type: slave\n        masters:\n          - master_server\n    configured_masters:\n      master_server:\n        - 192.168.1.1\n\nNotes\n-----\n\n* When using views all zones must be configured in views!\n\nSalt Compatibility\n------------------\n\nTested with:\n\n* 2017.7.x\n* 2018.3.x\n\nOS Compatibility\n----------------\n\nTested with:\n\n* Archlinux\n* CentOS 7\n* Debian-8\n* Debian-9\n* Fedora-27\n* Ubuntu-16.04\n* Ubuntu-18.04\n\n\nTesting\n-------\n\nLinux testing is done with ``kitchen-salt``.\n\n``kitchen converge``\n^^^^^^^^^^^^^^^^^^^^\n\nCreates the docker instance and runs the ``template`` main state, ready for testing.\n\n``kitchen verify``\n^^^^^^^^^^^^^^^^^^\n\nRuns the ``inspec`` tests on the actual instance.\n\n``kitchen destroy``\n^^^^^^^^^^^^^^^^^^^\n\nRemoves the docker instance.\n\n``kitchen test``\n^^^^^^^^^^^^^^^^\n\nRuns all of the stages above in one go: i.e. ``destroy`` + ``converge`` + ``verify`` + ``destroy``.\n\n``kitchen login``\n^^^^^^^^^^^^^^^^^\n\nGives you SSH access to the instance for manual testing.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsaltstack-formulas%2Fbind-formula","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsaltstack-formulas%2Fbind-formula","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsaltstack-formulas%2Fbind-formula/lists"}