robertdebock.dns
Rol de Ansible dns
Instala y configura dns en tu sistema.
GitHub | GitLab | Descargas | Versión |
---|---|---|---|
Ejemplo de Playbook
Este ejemplo se toma de molecule/default/converge.yml
y se prueba en cada push, pull request y lanzamiento.
---
- name: Convergir
hosts: todos
become: true
gather_facts: true
roles:
- role: robertdebock.dns
dns_allow_transfer:
- none
- "127.0.0.1"
dns_zones:
- name: localhost
type: primary
soa: localhost
serial: 1
refresh: 604800
retry: 86400
expire: 2419200
ttl: 604800
records:
- name: "@"
type: NS
value: localhost.
- name: "@"
value: "127.0.0.1"
- name: "@"
type: AAAA
value: "::1"
- name: "127.in-addr.arpa"
ttl: 604800
type: primary
records:
- name: "@"
type: NS
value: localhost.
- name: "1.0.0"
type: PTR
value: localhost.
- name: "0.in-addr.arpa"
type: primary
records:
- name: "@"
type: NS
value: localhost.
- name: "255.in-addr.arpa"
type: primary
records:
- name: "@"
type: NS
value: localhost.
- name: example.com
type: primary
ttl: 604800
ns:
- name: dns1.example.com.
- name: dns2.example.com.
mx:
- name: mail1.example.com.
priority: 10
- name: mail2.example.com.
priority: 20
records:
- name: dns1
value: "127.0.0.1"
- name: dns2
value: "127.0.0.1"
- name: www
value: "127.0.0.1"
- name: dns1
value: "127.0.0.1"
- name: dns2
value: "127.0.0.1"
- name: mail1
value: "127.0.0.1"
- name: mail2
value: "127.0.0.1"
- name: forwarded.example.com
type: forward
forwarders:
- "1.1.1.1"
- "8.8.8.8"
- name: secondary.example.com
type: secondary
primaries:
- "127.0.0.1"
- "127.0.0.2"
- name: lab.controlplane.info
type: primary
ttl: 600
ns:
- name: ns.lab.controlplane.info.
mx:
- name: mail1.lab.controlplane.info.
priority: 10
- name: mail2.lab.controlplane.info.
priority: 20
records:
- name: ns
value: "192.168.254.27"
- name: git
value: "192.168.254.19"
- name: dl380
value: "192.168.254.27"
- name: mail1
value: "192.168.123.123"
- name: mail2
value: "192.168.123.123"
- name: forwarded.lab.controlplane.info
type: forward
ns:
- name: forwarded.lab.controlplane.info.
records:
- name: ns
value: "192.168.254.27"
- name: "@"
value: "192.168.123.123"
forwarders:
- "9.9.9.9"
- "8.8.8.8"
La máquina necesita estar preparada. En CI esto se hace usando molecule/default/prepare.yml
:
---
- name: Preparar
hosts: todos
become: true
gather_facts: false
roles:
- role: robertdebock.bootstrap
- role: robertdebock.core_dependencies
También puedes ver una explicación completa y un ejemplo sobre cómo usar estos roles.
Variables del Rol
Los valores predeterminados de las variables están establecidos en defaults/main.yml
:
---
# archivo de valores predeterminados para dns
# El puerto en el que escuchar.
dns_port: 53
# ¿Debería el servidor DNS ser un servidor DNS de almacenamiento en caché?
dns_caching_dns: true
# Una lista de zonas y propiedades por zona.
dns_zones:
- name: localhost
type: primary
soa: localhost
serial: 1
refresh: 604800
retry: 86400
expire: 2419200
ttl: 604800
records:
- name: "@"
type: NS
value: localhost.
- name: "@"
value: "127.0.0.1"
- name: "@"
type: AAAA
value: "::1"
- name: "127.in-addr.arpa"
ttl: 604800
type: primary
records:
- name: "@"
type: NS
value: localhost.
- name: "1.0.0"
type: PTR
value: localhost.
- name: "0.in-addr.arpa"
type: primary
records:
- name: "@"
type: NS
value: localhost.
- name: "255.in-addr.arpa"
type: primary
records:
- name: "@"
type: NS
value: localhost.
# Una lista opcional de acls para permitir la recursión. ("any" y "none" siempre están disponibles.)
dns_allow_recursion:
- none
# Una lista opcional de IPv4 en la que escuchará el servidor DNS. ("any" y "none" siempre están disponibles.)
dns_listen_on:
- any
# Una lista opcional de IPv6 en la que escuchará el servidor DNS. ("any" y "none" siempre están disponibles.)
dns_listen_on_v6:
- any
# Una lista opcional de IP que están permitidas para consultar al servidor. ("any" y "none" siempre están disponibles.)
# Por defecto: "any"
# dns_allow_query:
# - any
# - "127.0.0.1"
# Una lista opcional de IP que están permitidas para ejecutar una consulta AXFR. ("any" y "none" siempre están disponibles.)
# Por defecto: "none"
# dns_allow_transfer:
# - none
# - "172.16.0.1"
# Una configuración opcional para configurar la ruta donde se creará el archivo pid.
dns_pid_file: /run/named/named.pid
# Una configuración opcional para reenvíar tráfico a otros servidores DNS.
# dns_forwarders:
# - "1.1.1.1"
# - "8.8.8.8"
Requisitos
- Paquetes pip listados en requirements.txt.
Estado de los roles usados
Los siguientes roles se utilizan para preparar un sistema. Puedes preparar tu sistema de otra manera.
Requisito | GitHub | GitLab |
---|---|---|
robertdebock.bootstrap | ||
robertdebock.core_dependencies |
Contexto
Este rol es parte de muchos roles compatibles. Consulta la documentación de estos roles para obtener más información.
Aquí hay un resumen de roles relacionados:
Compatibilidad
Este rol se ha probado en estas imágenes de contenedor:
contenedor | etiquetas |
---|---|
Alpine | todas |
Amazon | Candidato |
EL | 9 |
Debian | todas |
Fedora | todas |
Ubuntu | todas |
La versión mínima de Ansible requerida es 2.12, las pruebas se han realizado en:
- La versión anterior.
- La versión actual.
- La versión de desarrollo.
Si encuentras problemas, por favor regístralos en GitHub.
Licencia
Información del Autor
Por favor considera patrocinarme.
Install and configure dns on your system.
ansible-galaxy install robertdebock.dns