publicarray.unbound

Ansible-Rol-Unbound

Estado de construcción Ansible Galaxy

Rol de Ansible altamente configurable para el resolutor DNS Unbound

  • Ansible 2.2+
  • Compatible con sistemas que tienen systemd como su sistema de inicio. Últimas versiones de Ubuntu/Debian, RHEL/CentOS 6.x y freeBSD

Contenidos

  1. Instalación
  2. Ejemplos y casos de uso comunes
  3. Requisitos
  4. Variables del rol
  5. Dependencias
  6. Ejemplo de Playbook
  7. Pruebas
    1. con molecule
    2. con el script de geerlingguy

Instalación

$ ansible-galaxy install publicarray.unbound

Ejemplos y casos de uso comunes

Por favor, consulta la wiki: Ejemplos

Dependencias

Ansible 2.2+

Requisitos

none

Variables del rol

Aquí hay una lista de las variables predeterminadas para este rol. También están disponibles en defaults/main.yml. Te recomiendo que copies y pegues las variables a continuación en tu archivo group_vars/all/configs y que revises la documentación de unbound: https://unbound.net/documentation/unbound.conf.html

---
# Si compilar unbound desde el código fuente o usar el gestor de paquetes.
unbound_compile: false
# La versión de unbound para descargar del <https://nlnetlabs.nl/projects/unbound/download/>
unbound_compile_version: 1.8.0
# Suma de verificación para comparar el archivo descargado <https://nlnetlabs.nl/projects/unbound/download/>
unbound_compile_sha256: 78f79d6d3b643fdcd74a14fc76542250da886c82f82bc55b51e189663d61b83f
# Los argumentos dados al comando `./configure`. 
unbound_compile_config: "--enable-dnscrypt --with-username={{unbound.server.username|default(unbound)}} --with-libevent --with-run-dir={{unbound.server.directory}} --with-conf-file={{unbound.server.directory}}/unbound.conf"

# Si usar las pautas de optimización de <http://unbound.nlnetlabs.nl/documentation/howto_optimise.html>
unbound_optimise: false
# Porcentaje de memoria física a utilizar para unbound. Solo se usa cuando `unbound_optimise` es verdadero
unbound_optimise_memory: 100

## Configuraciones de DNS-over-TLS
unbound_tls_domain: example.com
unbound_tls_cert_provider: selfsigned
unbound_tls_acme_auto_upgrade: 0
unbound_tls_acme_ca: https://acme-v01.api.letsencrypt.org/directory
unbound_tls_acme_staging: false
unbound_tls_acme_force: false
unbound_tls_acme_mode: dns dns_cf

unbound_tls_acme_dns_acc:
  CF_Email:
  CF_Key:
  CF_Api: https://api.cloudflare.com/client/v4

unbound_tls_acme_keysize: 4096
unbound_tls_acme_ecc: false
unbound_tls_acme_debug: false
unbound_tls_acme_custom:

## Configuración principal de unbound
unbound:
  server:
    verbosity: 1
    logfile: unbound.log
    auto_trust_anchor_file: root.key
    root_hints: root.hints
    pidfile: "{{_unbound.pidfile|default('unbound.pid')}}"
    username: "{{_unbound.user}}"
    directory: "{{_unbound.conf_dir if unbound_compile == false else \"/usr/local/etc/unbound\"}}"
    chroot: "{{_unbound.conf_dir if unbound_compile == false else \"/usr/local/etc/unbound\"}}"
    

Dependencias

none

Ejemplo de Playbook

---
- hosts: all
  roles:
    - { role: publicarray.unbound }
  vars:
    - unbound_optimise: true
$ ansible-playbook -i dns.example.com, playbook.yml

Pruebas

con molecule

Requiere python 2.7 y docker

virtualenv --no-setuptools venv
source venv/bin/activate or source venv/bin/activate.fish
pip install docker-py molecule
molecule test # --debug - para salida detallada
deactivate

con el script de geerlingguy

  1. Instala y inicia Docker.
  2. Descarga el script de prueba en tests/test.sh:
    • wget -O tests/test.sh https://gist.githubusercontent.com/geerlingguy/73ef1e5ee45d8694570f334be385e181/raw/
  3. Haz el script ejecutable: chmod +x tests/test.sh.
  4. Ejecuta (desde el directorio raíz del rol) distro=[distro] playbook=[playbook] ./tests/test.sh.

Distribuciones:

  • centos7
  • ubuntu1604
  • ubuntu1404
  • debian9
  • debian8

Playbooks: se encuentran en el directorio tests

  • test.yml Pruebas la configuración predeterminada
  • compile-test.yml Pruebas la compilación de unbound
  • package-test.yml Pruebas dns-over-dns y configuración optimizada

Ejemplo en bash/sh:

$ distro=debian9 playbook=package-test.yml cleanup=false container_id=$(date +%s) ./tests/test.sh

Ejemplo en fish shell:

$ set -x distro debian9; set -x playbook package-test.yml; set -x cleanup false; set -x container_id (date +%s); ./tests/test.sh

Licencia

MIT/BSD

Información del autor

@publicarray

Acerca del proyecto

Unbound - Validating, recursive, and caching DNS resolver

Instalar
ansible-galaxy install publicarray.unbound
Licencia
mit
Descargas
82
Propietario