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
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: debops.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:
- Manual pages: resolvconf(8), resolv.conf(5)
- The resolv.conf Debian Wiki page
- Local DNS resolvers available in DebOps: debops.dnsmasq, debops.unbound