Ansible role for building DNS servers using Unbound
- Jinja 100%
| defaults | ||
| handlers | ||
| meta | ||
| roles | ||
| tasks | ||
| templates/unbound | ||
| .ansible-lint | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| .markdownlint-cli2.jsonc | ||
| .yamllint | ||
| AGENTS.md | ||
| playbook.yaml | ||
| readme.md | ||
| renovate.json | ||
Ansible Role: Unbound
Install and configure Unbound DNS server.
Variables
| Variable | Required | Default | Description |
|---|---|---|---|
unbound_upstream_dns |
No | ["8.8.8.8", "1.1.1.1"] |
Upstream DNS servers |
unbound_allow_access |
Yes | [] |
Networks allowed to query DNS |
unbound_zones |
Yes | [] |
DNS zones to configure |
Example
unbound_upstream_dns:
- "1.1.1.1"
- "8.8.8.8"
unbound_allow_access:
- name: "internal-lan"
network: "10.0.0.0/8"
- name: "dmz"
network: "192.168.1.0/24"
unbound_zones:
- zone: "internal.example.com"
type: "static"
records:
- name: "server1.internal.example.com"
value: "10.0.1.10"
- name: "server2.internal.example.com"
value: "10.0.1.11"
- name: "internal.example.com"
type: "TXT"
value: "v=spf1 include:internal.example.com ~all"
- name: "_sip._tcp.internal.example.com"
type: "SRV"
priority: 10
weight: 60
port: 5060
value: "server1.internal.example.com"
Supported Record Types
| Type | Required Fields | Description |
|---|---|---|
A (default) |
name, value |
IPv4 address record |
AAAA |
name, value, type |
IPv6 address record |
CNAME |
name, value, type |
Canonical name |
MX |
name, value, type, priority |
Mail exchange |
TXT |
name, value, type |
Text record |
SRV |
name, value, type, priority, weight, port |
Service locator |
PTR |
name, value, type |
Pointer record |