publicarray.unbound

Ansible-Role-Unbound

Statut de construction Ansible Galaxy

Rôle Ansible hautement configurable pour le résolveur DNS Unbound.

  • Ansible 2.2+
  • Compatible avec les systèmes ayant systemd comme système d'initialisation. Dernières versions d'Ubuntu/Debian, RHEL/CentOS 6.x et FreeBSD.

Contenu

  1. Installation
  2. Exemples et cas d'utilisation courants
  3. Exigences
  4. Variables de rôle
  5. Dépendances
  6. Exemple de Playbook
  7. Tests
    1. avec molecule
    2. avec le script de geerlingguy

Installation

$ ansible-galaxy install publicarray.unbound

Exemples et cas d'utilisation courants

Veuillez consulter le wiki : Exemples

Dépendances

Ansible 2.2+

Exigences

Aucune

Variables de rôle

Voici une liste des variables par défaut pour ce rôle. Elles sont également disponibles dans defaults/main.yml. Je vous recommande de copier et coller les variables ci-dessous dans votre fichier group_vars/all/configs et de consulter la documentation d'Unbound : https://unbound.net/documentation/unbound.conf.html

---
# Si vous souhaitez compiler unbound à partir de la source ou utiliser le gestionnaire de paquets.
unbound_compile: false
# La version d'unbound à télécharger <https://nlnetlabs.nl/projects/unbound/download/>
unbound_compile_version: 1.8.0
# Checksum pour comparer le téléchargement du fichier <https://nlnetlabs.nl/projects/unbound/download/>
unbound_compile_sha256: 78f79d6d3b643fdcd74a14fc76542250da886c82f82bc55b51e189663d61b83f
# Les arguments donnés à la commande `./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 vous souhaitez utiliser les lignes directrices d'optimisation de <http://unbound.nlnetlabs.nl/documentation/howto_optimise.html>
unbound_optimise: false
# Pourcentage de mémoire physique à utiliser pour unbound. Utilisé uniquement lorsque `unbound_optimise` est vrai
unbound_optimise_memory: 100

## Paramètres DNS-over-TLS
# voir <https://github.com/publicarray/ansible-role-unbound/wiki/Examples#dns-over-tls> pour un exemple
# Nom commun pour la demande de signature de certificat
unbound_tls_domain: example.com
# Méthode de génération de certificat. Doit être l'un des: selfsigned ou acme.
unbound_tls_cert_provider: selfsigned
## options acme.sh https://github.com/Neilpang/acme.sh/wiki/Options-and-Params
# Option pour mettre à jour automatiquement le script acme.sh, 0 = faux, 1 = vrai
unbound_tls_acme_auto_upgrade: 0
# Autorité de certification. Par défaut, c'est l'API Let's Encrypt v1.
unbound_tls_acme_ca: https://acme-v01.api.letsencrypt.org/directory
# Utiliser le serveur de test pour les essais
unbound_tls_acme_staging: false
# Forcer la création d'un certificat (ignorer la date d'expiration)
unbound_tls_acme_force: false
# Mode de validation de domaine. Les modes disponibles sont standalone, stateless, tls, apache, dns.
unbound_tls_acme_mode: dns dns_cf
# Définir des variables d'environnement pour utiliser DNS comme validation de domaine
unbound_tls_acme_dns_acc:
  # Adresse e-mail de CloudFlare
  CF_Email:
  # Clé API 'Globale' de CloudFlare
  CF_Key:
  # URL API de CloudFlare
  CF_Api: https://api.cloudflare.com/client/v4
# Longueur de clé [2048, 3072, 4096, 8192 ou ec-256, ec-384]
unbound_tls_acme_keysize: 4096
# Créer un certificat ECC (Cryptographie à courbe elliptique)
unbound_tls_acme_ecc: false
# Sortie d'informations de débogage
unbound_tls_acme_debug: false
# Toutes commandes supplémentaires.
unbound_tls_acme_custom:

## Exemple de configuration principale d'unbound
# Voir <https://unbound.net/documentation/unbound.conf.html> pour plus d'options et descriptions détaillées
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\"}}"
  remote_control:  # unbound-control
    control_enable: false

Dépendances

Aucune

Exemple de Playbook

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

Tests

avec molecule

Nécessite python 2.7 et docker

virtualenv --no-setuptools venv
source venv/bin/activate or source venv/bin/activate.fish
pip install docker-py molecule
molecule test # --debug - pour une sortie détaillée
deactivate

avec le script de geerlingguy

  1. Installer et démarrer Docker.
  2. Télécharger le script de test dans tests/test.sh: - wget -O tests/test.sh https://gist.githubusercontent.com/geerlingguy/73ef1e5ee45d8694570f334be385e181/raw/
  3. Rendre le script de test exécutables : chmod +x tests/test.sh.
  4. Exécuter (depuis le répertoire racine du rôle) distro=[distro] playbook=[playbook] ./tests/test.sh.

Crédits pour le script de test vont à @geerlingguy

Distros:

  • centos7
  • ubuntu1604
  • ubuntu1404
  • debian9
  • debian8

Les Playbooks se trouvent dans le répertoire tests

  • test.yml Teste la configuration par défaut
  • compile-test.yml Teste la compilation d'unbound
  • package-test.yml Teste dns-over-dns et la configuration optimisée

Exemple en bash/sh:

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

Exemple 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

Licence

MIT/BSD

Informations sur l'auteur

@publicarray

À propos du projet

Unbound - Validating, recursive, and caching DNS resolver

Installer
ansible-galaxy install publicarray.unbound
Licence
mit
Téléchargements
82
Propriétaire