Getting started

Support for static configuration

In addition to handling DNS configuration from multiple sources, the role supports "static" DNS configuration created via a script. To use it, set the resolvconf__static_enabled variable to True, and specify the resolv.conf(5) configuration as a string or YAML text block:

resolvconf__static_content: |
  nameserver 192.0.2.1
  search example.org example.net

The script will create a file in the resolvconf runtime directory, by default named lo.static, which will merge the specified configuration with other DNS sources. The role will also configure systemd to apply the static configuration on system boot.

Example inventory

The debops.resolvconf role is included by default in the common.yml DebOps playbook; you don't need to add hosts to any Ansible groups to enable it.

Example playbook

If you are using this role without DebOps, here's an example Ansible playbook that uses the debops.resolvconf role:

---

- name: Manage system-wide DNS resolver configuration
  collections: [ 'debops.debops', 'debops.roles01',
                 'debops.roles02', 'debops.roles03' ]
  hosts: [ 'debops_all_hosts', 'debops_service_resolvconf' ]
  become: True

  environment: '{{ inventory__environment | d({})
                   | combine(inventory__group_environment | d({}))
                   | combine(inventory__host_environment  | d({})) }}'

  roles:

    - role: resolvconf
      tags: [ 'role::resolvconf', 'skip::resolvconf' ]

Ansible tags

You can use Ansible --tags or --skip-tags parameters to limit what tasks are performed during Ansible run. This can be used after a host was first configured to speed up playbook execution, when you are sure that most of the configuration is already in the desired state.

Available role tags:

role::resolvconf

Main role tag, should be used in the playbook to execute all of the role tasks as well as role dependencies.

Other resources

List of other useful resources related to the debops.resolvconf Ansible role: