{"id":24863736,"url":"https://github.com/stuvusit/pdns-authoritative-api","last_synced_at":"2025-07-26T14:32:49.011Z","repository":{"id":45992698,"uuid":"100991066","full_name":"stuvusIT/pdns-authoritative-api","owner":"stuvusIT","description":"Configure PowerDNS zones via the HTTP API","archived":false,"fork":false,"pushed_at":"2023-01-04T16:34:14.000Z","size":79,"stargazers_count":9,"open_issues_count":0,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2023-12-15T04:38:34.785Z","etag":null,"topics":["ansible","ansible-role","api","authoritative","database","pdns","pdns-authoritative","powerdns","powerdns-authoritative"],"latest_commit_sha":null,"homepage":null,"language":"Python","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/stuvusIT.png","metadata":{"files":{"readme":"README.md","changelog":null,"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":"2017-08-21T20:43:12.000Z","updated_at":"2023-06-22T10:22:32.000Z","dependencies_parsed_at":"2023-02-02T18:46:07.992Z","dependency_job_id":null,"html_url":"https://github.com/stuvusIT/pdns-authoritative-api","commit_stats":null,"previous_names":[],"tags_count":0,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stuvusIT%2Fpdns-authoritative-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stuvusIT%2Fpdns-authoritative-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stuvusIT%2Fpdns-authoritative-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stuvusIT%2Fpdns-authoritative-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stuvusIT","download_url":"https://codeload.github.com/stuvusIT/pdns-authoritative-api/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":236600149,"owners_count":19175167,"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":["ansible","ansible-role","api","authoritative","database","pdns","pdns-authoritative","powerdns","powerdns-authoritative"],"created_at":"2025-01-31T23:34:21.753Z","updated_at":"2025-01-31T23:34:25.141Z","avatar_url":"https://github.com/stuvusIT.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# pdns-authoritative-api\n\nThis Ansible role managed DNS zones via the PowerDNS HTTP API.\n\n## Requirements\n\nDebian or Ubuntu\n\n## Role Variables\n\n| Name                                 | Default/Required   | Description                                         |\n|--------------------------------------|:------------------:|-----------------------------------------------------|\n| `pdns_auth_api_connect`              | :heavy_check_mark: | Connect to this URL (e.g. `http://127.0.0.1:1234`)  |\n| `pdns_auth_api_server`               | `localhost`        | Server instance to connect to                       |\n| `pdns_auth_api_key`                  | :heavy_check_mark: | API Key to use (may be empty if you don't have one) |\n| `pdns_auth_api_zones`                | :heavy_check_mark: | Name-contents dict of DNS zones (see below)         |\n| `pdns_auth_api_remove_unknown_zones` | `false`            | Delete zones that are not known to this role        |\n| `pdns_auth_api_default_metadata`     |                    | Default metadata that can be overridden per-zone    |\n\n### DNS Zones\n\n| Name          | Default/Required      | Description                                                                                     |\n|---------------|:---------------------:|-------------------------------------------------------------------------------------------------|\n| `kind`        | `Master`              | Type of this zone (`Master`, `Slave`, or `Native`)                                              |\n| `soaEdit`     | (:heavy_check_mark:)  | (not for Slave zones)  SOA-EDIT value for this zone                                             |\n| `soaEditApi`  | (`{{soaEdit}}`        | (not for slave zones) SOA-EDIT-API value                                                        |\n| `dnssec`      | `false`               | (not for slave zones) Enable DNSSEC and NSEC3 for this zone                                     |\n| `presigned`   | `false`               | (not for slave zones) Whether the zone is presigned and does not need to be signed by PowerDNS  |\n| `apiRectify`  | `true`                | (not for slave zones) Whether to automatically rectify the one on changes via the API           |\n| `nsec3Param`  |                       | (not for slave zones) NSEC3PARAM record value                                                   |\n| `nsec3Narrow` | `false`               | (not for slave zones) Whether to use NSEC3 in narrow mode (white lies)                          |\n| `masters`     | (:heavy_check_mark:)  | List of masters of this zone                                                                    |\n| `records`     | *not for Slave zones* | List with all records in this zone (see below)                                                  |\n| `defaultTTL`  | (:heavy_check_mark:)  | (not for slave zones) TTL for all RRsets with no TTL explicitly set                             |\n| `metadata`    |                       | Dict with the domain metadata. Items that are present in the database, but not here are removed |\n\n### Records\n\nThis role automatically sorts records of the same name and type into RRsets.\nEach record can either set a content (`c`) **or** can set a TTL which applies for the entire RRset (`t`).\n\nRecords are grouped into types which are grouped into names.\nSee the example below.\nUnknown RRsets are removed.\n\nIf a SOA record has `AUTO` as its serial, the current value from the current zone is used.\nThis is helpful when setting `soaEditApi` to automatically increment the serial.\n\n### Contents\n\n| Name | Default/Required     | Description                                             |\n|------|:--------------------:|---------------------------------------------------------|\n| `c`  | (:heavy_check_mark:) | Content of this record. Must be omitted when `t` is set |\n| `t`  | (:heavy_check_mark:) | TTL of this RRset. Must be omitted when `c` is set      |\n| `r`  |                      | Also set the PTR record in the reverse zone             |\n\n## Example Playbook\n\n```yml\n- hosts: dns\n  roles:\n  - pdns-authoritative-api\n     pdns_auth_api_connect: 'http://127.0.0.1:1234'\n     pdns_auth_api_key: 'secretsecretkey'\n     pdns_auth_api_zones:\n       - name: example.com\n         dnssec: true\n         nsec3Salt: abab\n         defaultNameservers:\n           - ns1.example.com\n           - ns2.example.com\n         metadata:\n           ALLOW-AXFR-FROM:\n             - AUTO-NS\n             - 2001:db8::/48\n         records:\n           example.com:\n             SOA:\n               - c: ns1.example.com admin.example.com AUTO 3600 1800 604800 600\n             NS:\n               - c: ns1.example.com.\n               - c: ns2.example.com.\n               - t: 15200\n           ns1.example.com:\n             A:\n               - c: 10.0.0.2\n                 r: True\n             AAAA:\n               - c: fe80::1\n                 r: True\n```\n\n## License\n\nThis work is licensed under a [Creative Commons Attribution-ShareAlike 4.0 International License](https://creativecommons.org/licenses/by-sa/4.0/).\n\n## Author Information\n\n- [Janne Heß](https://github.com/dasJ)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstuvusit%2Fpdns-authoritative-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstuvusit%2Fpdns-authoritative-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstuvusit%2Fpdns-authoritative-api/lists"}