publicarray.unbound
Ansible-Role-Unbound
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
- Installation
- Exemples et cas d'utilisation courants
- Exigences
- Variables de rôle
- Dépendances
- Exemple de Playbook
- Tests
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
- Installer et démarrer Docker.
- Télécharger le script de test dans
tests/test.sh
: -wget -O tests/test.sh https://gist.githubusercontent.com/geerlingguy/73ef1e5ee45d8694570f334be385e181/raw/
- Rendre le script de test exécutables :
chmod +x tests/test.sh
. - 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éfautcompile-test.yml
Teste la compilation d'unboundpackage-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
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