Skip to content

drodowic/community.dns

 
 

Repository files navigation

Community DNS Collection

Documentation CI Public Suffix List up-to-date Codecov

This repository contains the community.dns Ansible Collection. The collection includes plugins and modules to work with DNS.

Please note that this collection does not support Windows targets.

Tested with Ansible

Tested with the current Ansible 2.9, ansible-base 2.10, ansible-core 2.11 and ansible-core 2.12 releases and the current development version of ansible-core. Ansible versions before 2.9.10 are not supported.

External requirements

Depends on the plugin or module used.

Included content

  • Modules:
    • hetzner_dns_record_info: retrieve information on DNS records from Hetzner DNS.
    • hetzner_dns_record: create/update/delete single DNS records with Hetzner DNS.
    • hetzner_dns_record_set_info: retrieve information on DNS record sets from Hetzner DNS.
    • hetzner_dns_record_set: create/update/delete DNS record sets with Hetzner DNS.
    • hetzner_dns_record_sets: bulk synchronize DNS record sets in Hetzner DNS service.
    • hetzner_dns_zone_info: retrieve zone information from Hetzner DNS.
    • hosttech_dns_record_info: retrieve information on DNS records from HostTech DNS.
    • hosttech_dns_record: create/update/delete single DNS records with HostTech DNS.
    • hosttech_dns_record_set_info: retrieve information on DNS record sets from HostTech DNS.
    • hosttech_dns_record_set: create/update/delete DNS record sets with HostTech DNS.
    • hosttech_dns_record_set: bulk synchronize DNS record sets in Hosttech DNS service.
    • hosttech_dns_zone_info: retrieve zone information from HostTech DNS.
    • wait_for_txt: wait for TXT records to propagate to all name servers.
  • Inventory plugins:
    • hetzner_dns_records: create inventory from Hetzner DNS records
    • hosttech_dns_records: create inventory from HostTech DNS records
  • Filters:
    • get_public_suffix: given a domain name, returns the public suffix. For example, "www.ansible.com" | community.dns.get_public_suffix == ".com" and "some.random.prefixes.ansible.co.uk" | community.dns.get_public_suffix == ".co.uk".
    • get_registrable_domain: given a domain name, returns the registrable domain name (also called registered domain name). For example, "www.ansible.com" | community.dns.get_registrable_domain == "ansible.com" and "some.random.prefixes.ansible.co.uk" | community.dns.get_registrable_domain == "ansible.co.uk".
    • remove_public_suffix: given a domain name, returns the part before the public suffix. For example, "www.ansible.com" | community.dns.remove_public_suffix == "www.ansible" and "some.random.prefixes.ansible.co.uk" | community.dns.remove_public_suffix == "some.random.prefixes.ansible".
    • remove_registrable_domain: given a domain name, returns the part before the DNS zone. For example, "www.ansible.com" | community.dns.remove_registrable_domain == "www" and "some.random.prefixes.ansible.co.uk" | community.dns.remove_registrable_domain == "some.random.prefixes".

Using this collection

Before using the General community collection, you need to install the collection with the ansible-galaxy CLI:

ansible-galaxy collection install community.dns

You can also include it in a requirements.yml file and install it via ansible-galaxy collection install -r requirements.yml using the format:

collections:
- name: community.dns

See Ansible Using collections for more details.

Contributing to this collection

If you want to develop new content for this collection or improve what is already here, the easiest way to work on the collection is to clone it into one of the configured COLLECTIONS_PATH, and work on it there.

See TESTING.md for information on running the tests.

You can find more information in the developer guide for collections, and in the Ansible Community Guide.

Release notes

See the changelog.

Releasing, Versioning and Deprecation

This collection follows Semantic Versioning. More details on versioning can be found in the Ansible docs.

We plan to regularly release new minor or bugfix versions once new features or bugfixes have been implemented.

Releasing the current major version happens from the main branch. We will create a stable-1 branch for 1.x.y versions once we start working on a 2.0.0 release, to allow backporting bugfixes and features from the 2.0.0 branch (main) to stable-1. A stable-2 branch will be created once we work on a 3.0.0 release, and so on.

We currently are not planning any deprecations or new major releases like 2.0.0 containing backwards incompatible changes. If backwards incompatible changes are needed, we plan to deprecate the old behavior as early as possible. We also plan to backport at least bugfixes for the old major version for some time after releasing a new major version. We will not block community members from backporting other bugfixes and features from the latest stable version to older release branches, under the condition that these backports are of reasonable quality.

More information

Licensing

All files except specifially noted are licensed under the GNU General Public License v3.0 or later.

See COPYING to see the full text.

The only exception is plugins/public_suffix_list.dat, which is subject to the terms of the Mozilla Public License, v. 2.0. See MPL for the full text.

About

Ansible modules and plugins for working with DNS

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 99.9%
  • Shell 0.1%