forked from ISTI-ansible-roles/ansible-roles
Merge pull request 'Remove the keepalived and unbound-resolver roles. They have their own repository now.' (#215) from adellam/ansible-roles:master into master
This commit is contained in:
commit
06b2198ac0
|
@ -1,62 +0,0 @@
|
||||||
---
|
|
||||||
# http://www.keepalived.org/
|
|
||||||
#
|
|
||||||
keepalived_install: False
|
|
||||||
keepalived_enabled: '{{ keepalived_install }}'
|
|
||||||
keepalived_version: 1.1.20
|
|
||||||
keepalived_repo: 'ppa:keepalived/stable'
|
|
||||||
keepalived_pkg_state: latest
|
|
||||||
# Use 'keepalived={{ keepalived_version }}' if you want a specific version
|
|
||||||
keepalived_pkgs:
|
|
||||||
- keepalived
|
|
||||||
|
|
||||||
keepalived_use_unicast: False
|
|
||||||
keepalived_unicast_src_ip: '{{ ansible_default_ipv4.address }}'
|
|
||||||
keepalived_unicast_peer_ip:
|
|
||||||
- 127.0.0.1
|
|
||||||
- 127.0.0.2
|
|
||||||
keepalived_mcast_addr: 224.0.0.0/8
|
|
||||||
keepalived_floating_ip1: 127.0.0.1
|
|
||||||
keepalived_script1_name: keepalived_check_service_status
|
|
||||||
# We set haproxy as the default because most of our keepalived use is haproxy related
|
|
||||||
keepalived_service_to_check: 'haproxy'
|
|
||||||
keepalived_script1_check: '/bin/pidof {{ keepalived_service_to_check }}'
|
|
||||||
keepalived_instance1_name: 'VRRP_1'
|
|
||||||
keepalived_interface1_name: '{{ ansible_default_ipv4.interface }}'
|
|
||||||
keepalived_initial_state: 'MASTER'
|
|
||||||
keepalived_inst_priority: 100
|
|
||||||
keepalived_vrouter_id: 51
|
|
||||||
keepalived_non_local_bind: True
|
|
||||||
|
|
||||||
keepalived_enable_script_security: True
|
|
||||||
keepalived_script_username: keepalived_script
|
|
||||||
keepalived_script_user_home: '/var/lib/keepalived'
|
|
||||||
keepalived_runtime_dir: /run/keepalived
|
|
||||||
|
|
||||||
keepalived_nagios_check: False
|
|
||||||
keepalived_notify_script: /usr/local/bin/keepalived_notify
|
|
||||||
keepalived_check_script: '/usr/local/bin/{{ keepalived_script1_name }}'
|
|
||||||
|
|
||||||
# The service must install its own script if it is too complex to be managed by the provided one
|
|
||||||
keepalived_scripts:
|
|
||||||
- name: '{{ keepalived_script1_name }}'
|
|
||||||
script: '{{ keepalived_check_script }}'
|
|
||||||
# In seconds
|
|
||||||
interval: 2
|
|
||||||
# Priority increment
|
|
||||||
weight: 2
|
|
||||||
|
|
||||||
keepalived_instances:
|
|
||||||
- name: '{{ keepalived_instance1_name }}'
|
|
||||||
interface: '{{ keepalived_interface1_name }}'
|
|
||||||
state: '{{ keepalived_initial_state }}'
|
|
||||||
vrouter_id: '{{ keepalived_vrouter_id }}'
|
|
||||||
notify: '{{ keepalived_notify_script }}'
|
|
||||||
priority: '{{ keepalived_inst_priority }}'
|
|
||||||
nopreempt: True
|
|
||||||
v_addr:
|
|
||||||
- '{{ keepalived_floating_ip1 }}'
|
|
||||||
track_script:
|
|
||||||
- '{{ keepalived_script1_name }}'
|
|
||||||
track_interface:
|
|
||||||
- '{{ keepalived_interface1_name }}'
|
|
|
@ -1,57 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
#
|
|
||||||
# echo $1 $2 is in $3 state > /var/run/keepalive.state
|
|
||||||
#
|
|
||||||
|
|
||||||
###############################################################
|
|
||||||
# Check Keepalived State #
|
|
||||||
# #
|
|
||||||
# Author: Zhivko Todorov <ztodorov@neterra.net> #
|
|
||||||
# Date: 01-Dec-2015 #
|
|
||||||
# Version: 0.0.1 #
|
|
||||||
# License: GPL #
|
|
||||||
###############################################################
|
|
||||||
|
|
||||||
|
|
||||||
# set to 'true' if the host is supposed to be in MASTER state
|
|
||||||
# or set to 'false' if the host is supposed to be in BACKUP state
|
|
||||||
# nrpe cannot receive external variables UNLESS is forced in config
|
|
||||||
MASTER='true'
|
|
||||||
|
|
||||||
# checking if there are alive keepalived processes so we can trust the content of the notify 'state' file
|
|
||||||
KEEPALIVENUM=`ps uax|grep '/usr/sbin/keepalived'|grep -v grep|wc -l|tr -d "\n"`
|
|
||||||
|
|
||||||
if [ $KEEPALIVENUM -gt 0 ]; then
|
|
||||||
|
|
||||||
KEEPALIVESTATE=`cat /var/run/keepalive.state`
|
|
||||||
|
|
||||||
if [ "$MASTER" == "true" ]; then
|
|
||||||
|
|
||||||
if [[ $KEEPALIVESTATE == *"MASTER"* ]];then
|
|
||||||
echo $KEEPALIVESTATE
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ $KEEPALIVESTATE == *"BACKUP"* ]];then
|
|
||||||
echo $KEEPALIVESTATE
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
else
|
|
||||||
|
|
||||||
if [[ $KEEPALIVESTATE == *"BACKUP"* ]];then
|
|
||||||
echo $KEEPALIVESTATE
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ $KEEPALIVESTATE == *"MASTER"* ]];then
|
|
||||||
echo $KEEPALIVESTATE
|
|
||||||
exit 2
|
|
||||||
fi
|
|
||||||
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Keepalived is in UNKNOWN state"
|
|
||||||
exit 3
|
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
---
|
|
||||||
- name: restart keepalived
|
|
||||||
service: name=keepalived state=restarted
|
|
||||||
when: keepalived_enabled
|
|
|
@ -1,100 +0,0 @@
|
||||||
---
|
|
||||||
- block:
|
|
||||||
- name: Install the keepalived repository
|
|
||||||
apt_repository: repo={{ keepalived_repo }} update_cache=yes
|
|
||||||
when: ansible_distribution_major_version <= '16'
|
|
||||||
|
|
||||||
- name: Install the keepalived package
|
|
||||||
apt: name={{ keepalived_pkgs }} state={{ keepalived_pkg_state }} cache_valid_time=1800
|
|
||||||
|
|
||||||
tags: keepalived
|
|
||||||
when:
|
|
||||||
- keepalived_install | bool
|
|
||||||
- ansible_distribution_file_variety == "Debian"
|
|
||||||
|
|
||||||
- block:
|
|
||||||
- name: Install the user that the keepalived scripts will run under
|
|
||||||
user: name={{ keepalived_script_username }} home={{ keepalived_script_user_home }} createhome=no shell=/usr/sbin/nologin system=yes
|
|
||||||
|
|
||||||
- name: Create the keepalive script user directory
|
|
||||||
file: dest={{ keepalived_script_user_home }} state=directory owner={{ keepalived_script_username }} group={{ keepalived_script_username }} mode=0750
|
|
||||||
|
|
||||||
- name: Create the tmpfile entry for the keepalived runtime directory
|
|
||||||
template: src=tmpfile_keepalived.conf.j2 dest=/usr/lib/tmpfiles.d/keepalived.conf owner=root group=root mode=0644
|
|
||||||
when: ansible_service_mgr == 'systemd'
|
|
||||||
|
|
||||||
- name: Install the keepalived configuration
|
|
||||||
template: src=keepalived.conf.j2 dest=/etc/keepalived/keepalived.conf owner=root group=root mode=0600
|
|
||||||
notify: restart keepalived
|
|
||||||
|
|
||||||
- name: Install the keepalived default check script
|
|
||||||
template: src=keepalived_check_service_status.sh.j2 dest=/usr/local/bin/keepalived_check_service_status owner=root group=root mode=0755
|
|
||||||
notify: restart keepalived
|
|
||||||
|
|
||||||
- name: Install the keepalived notify scripts
|
|
||||||
template: src=keepalived_notify.sh.j2 dest={{ item.notify }} owner=root group={{ keepalived_script_username }} mode=0754
|
|
||||||
with_items: '{{ keepalived_instances }}'
|
|
||||||
|
|
||||||
- name: Set the kernel net.ipv4.ip_nonlocal_bind sysctl
|
|
||||||
sysctl:
|
|
||||||
reload: yes
|
|
||||||
state: present
|
|
||||||
name: net.ipv4.ip_nonlocal_bind
|
|
||||||
sysctl_set: yes
|
|
||||||
sysctl_file: /etc/sysctl.d/90-keepalived
|
|
||||||
value: 1
|
|
||||||
when: keepalived_non_local_bind | bool
|
|
||||||
|
|
||||||
- name: Disable the kernel net.ipv4.ip_nonlocal_bind sysctl if not needed
|
|
||||||
sysctl:
|
|
||||||
reload: yes
|
|
||||||
state: absent
|
|
||||||
name: net.ipv4.ip_nonlocal_bind
|
|
||||||
sysctl_set: yes
|
|
||||||
sysctl_file: /etc/sysctl.d/90-keepalived
|
|
||||||
value: 1
|
|
||||||
when: not keepalived_non_local_bind | bool
|
|
||||||
|
|
||||||
- name: Ensure that keepalived is started and enabled
|
|
||||||
service: name=keepalived state=started enabled=yes
|
|
||||||
when: keepalived_enabled | bool
|
|
||||||
|
|
||||||
- name: Ensure that keepalived is stopped and disabled
|
|
||||||
service: name=keepalived state=stopped enabled=no
|
|
||||||
when: not keepalived_enabled | bool
|
|
||||||
|
|
||||||
tags: [ 'keepalived', 'keepalived_conf' ]
|
|
||||||
when: keepalived_install | bool
|
|
||||||
|
|
||||||
- block:
|
|
||||||
- name: Install the keepalived NRPE nagios check
|
|
||||||
copy: src=check_keepalived_state dest={{ nagios_plugins_dir }}/check_keepalived_state owner=root group=root mode=0555
|
|
||||||
with_items: '{{ keepalived_instances }}'
|
|
||||||
|
|
||||||
- name: Install the keepalived NRPE command configuration
|
|
||||||
template: src=keepalived-nrpe.cfg.j2 dest={{ nrpe_include_dir }}/keepalived-nrpe.cfg owner=root group=root mode=0444
|
|
||||||
notify: Reload NRPE server
|
|
||||||
|
|
||||||
tags: keepalived
|
|
||||||
when:
|
|
||||||
- keepalived_install | bool
|
|
||||||
- keepalived_nagios_check | bool
|
|
||||||
|
|
||||||
- block:
|
|
||||||
- name: Remove the keepalived package if we do not want it
|
|
||||||
apt: name={{ keepalived_pkgs }} state=absent
|
|
||||||
|
|
||||||
- name: Remove the keepalived notify scripts
|
|
||||||
file: dest={{ item.notify }} state=absent
|
|
||||||
with_items: '{{ keepalived_instances }}'
|
|
||||||
|
|
||||||
- name: Remove the keepalived NRPE check
|
|
||||||
file: dest={{ nagios_plugins_dir }}/check_keepalived_state state=absent
|
|
||||||
with_items: '{{ keepalived_instances }}'
|
|
||||||
|
|
||||||
- name: Remove the keepalived NRPE command configuration
|
|
||||||
file: dest={{ nrpe_include_dir }}/keepalived-nrpe.cfg state=absent
|
|
||||||
|
|
||||||
tags: keepalived
|
|
||||||
when: not keepalived_install | bool
|
|
||||||
|
|
|
@ -1,6 +0,0 @@
|
||||||
#
|
|
||||||
command[check_keepalived]={{ nagios_plugins_dir }}/check_keepalived_state
|
|
||||||
|
|
||||||
# Restart keepalived (via handler)
|
|
||||||
command[global_restart_keepalived]=/usr/bin/sudo /etc/init.d/keepalived restart
|
|
||||||
|
|
|
@ -1,88 +0,0 @@
|
||||||
global_defs {
|
|
||||||
{% if keepalived_enable_script_security %}
|
|
||||||
|
|
||||||
enable_script_security
|
|
||||||
{% if ansible_distribution_file_variety == "Debian" and ansible_distribution_major_version == '18' %}
|
|
||||||
script_user root
|
|
||||||
{% else %}
|
|
||||||
script_user {{ keepalived_script_username }}
|
|
||||||
{% endif %}
|
|
||||||
{% endif %}
|
|
||||||
}
|
|
||||||
|
|
||||||
{% for script in keepalived_scripts %}
|
|
||||||
vrrp_script {{ script.name }} {
|
|
||||||
script "{{ script.script }}"
|
|
||||||
interval {{ script.interval | default(1) }}
|
|
||||||
weight {{ script.weight | default(2) }}
|
|
||||||
fall {{ script.fall | default(3) }}
|
|
||||||
rise {{ script.raise | default(2) }}
|
|
||||||
timeout {{ script.timeout | default(5) }}
|
|
||||||
}
|
|
||||||
{% endfor %}
|
|
||||||
|
|
||||||
{% for instance in keepalived_instances %}
|
|
||||||
vrrp_instance {{ instance.name }} {
|
|
||||||
interface {{ instance.interface }}
|
|
||||||
{% if instance.state is defined %}
|
|
||||||
{% if instance.nopreempt is defined and instance.nopreempt %}
|
|
||||||
|
|
||||||
state BACKUP
|
|
||||||
{% else %}
|
|
||||||
state {{ instance.state }}
|
|
||||||
|
|
||||||
{% endif %}
|
|
||||||
{% endif %}
|
|
||||||
virtual_router_id {{ instance.vrouter_id }}
|
|
||||||
priority {{ instance.priority }}
|
|
||||||
{% if instance.notify is defined %}
|
|
||||||
|
|
||||||
notify {{ instance.notify }}
|
|
||||||
|
|
||||||
{% endif %}
|
|
||||||
{% if instance.nopreempt is defined and instance.nopreempt %}
|
|
||||||
|
|
||||||
nopreempt
|
|
||||||
|
|
||||||
{% endif %}
|
|
||||||
{% if instance.authentication is defined %}
|
|
||||||
|
|
||||||
authentication {
|
|
||||||
auth_type {{ instance.authentication }}
|
|
||||||
auth_pass {{ instance.authpass }}
|
|
||||||
}
|
|
||||||
|
|
||||||
{% endif %}
|
|
||||||
virtual_ipaddress {
|
|
||||||
{% for addr in instance.v_addr %}
|
|
||||||
{{ addr }}
|
|
||||||
{% endfor %}
|
|
||||||
}
|
|
||||||
track_script {
|
|
||||||
{% for trk in instance.track_script %}
|
|
||||||
{{ trk }}
|
|
||||||
{% endfor %}
|
|
||||||
}
|
|
||||||
{% if instance.track_interface is defined %}
|
|
||||||
|
|
||||||
track_interface {
|
|
||||||
{% for if in instance.track_interface %}
|
|
||||||
{{ if }}
|
|
||||||
{% endfor %}
|
|
||||||
}
|
|
||||||
|
|
||||||
{% endif %}
|
|
||||||
{% if keepalived_use_unicast %}
|
|
||||||
|
|
||||||
unicast_src_ip {{ instance.keepalived_unicast_src_ip }}
|
|
||||||
unicast_peer {
|
|
||||||
|
|
||||||
{% for ipaddr in instance.keepalived_unicast_peer_ip %}
|
|
||||||
{{ ipaddr }}
|
|
||||||
{% endfor %}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
{% endif %}
|
|
||||||
}
|
|
||||||
{% endfor %}
|
|
|
@ -1,19 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
{% if ansible_distribution_file_variety == "Debian" and ansible_distribution_major_version == '18' %}
|
|
||||||
am_i_master=$( grep MASTER {{ keepalived_runtime_dir }}/keepalive.state )
|
|
||||||
keepalive_master=$?
|
|
||||||
|
|
||||||
if [ $keepalive_master -eq 0 ] ; then
|
|
||||||
{% for instance in keepalived_instances %}
|
|
||||||
{% for addr in instance.v_addr %}
|
|
||||||
float_ip=$( ip addr show | grep {{ addr }} )
|
|
||||||
retval=$?
|
|
||||||
[ $retval -eq 1 ] && /bin/systemctl restart keepalived
|
|
||||||
{% endfor %}
|
|
||||||
{% endfor %}
|
|
||||||
fi
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{{ keepalived_script1_check }}
|
|
||||||
|
|
||||||
exit $?
|
|
|
@ -1,19 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
#
|
|
||||||
# echo $1 $2 is in $3 state > /var/lib/keepalived/keepalive.state
|
|
||||||
#
|
|
||||||
umask 022
|
|
||||||
export PATH="/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin:$PATH"
|
|
||||||
TYPE=$1
|
|
||||||
NAME=$2
|
|
||||||
STATE=$3
|
|
||||||
RETVAL=0
|
|
||||||
|
|
||||||
{% if keepalived_notify_extra_params is defined %}
|
|
||||||
{{ keepalived_notify_extra_params }}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
echo "$TYPE $NAME is in $STATE state" > {{ keepalived_runtime_dir }}/keepalive.state
|
|
||||||
|
|
||||||
exit $RETVAL
|
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
d {{ keepalived_runtime_dir }} 0775 {{ keepalived_script_username }} {{ keepalived_script_username }}
|
|
|
@ -1,52 +0,0 @@
|
||||||
---
|
|
||||||
unbound_pkgs:
|
|
||||||
- unbound
|
|
||||||
- unbound-anchor
|
|
||||||
- unbound-host
|
|
||||||
- dnsutils
|
|
||||||
|
|
||||||
unbound_interfaces:
|
|
||||||
- '0.0.0.0'
|
|
||||||
- '::0'
|
|
||||||
|
|
||||||
unbound_allowed_clients:
|
|
||||||
- { cidr: '0.0.0.0/0', policy: 'allow' }
|
|
||||||
|
|
||||||
unbound_prefetch: 'yes'
|
|
||||||
unbound_verbosity: 1
|
|
||||||
unbound_threads: '{{ ansible_processor_count }}'
|
|
||||||
|
|
||||||
unbound_remote_control: 'yes'
|
|
||||||
unbound_remote_IP: '127.0.0.1'
|
|
||||||
|
|
||||||
unbound_rrset_cache_size: 100m
|
|
||||||
unbound_rrset_msg_cache_size: 50m
|
|
||||||
# Larger socket buffer. OS may need config.
|
|
||||||
unbound_so_rcvbuf: 4m
|
|
||||||
unbound_so_sndbuf: 4m
|
|
||||||
# Faster UDP with multithreading (only on Linux).
|
|
||||||
unbound_so_reuseport: 'yes'
|
|
||||||
# with libevent
|
|
||||||
unbound_num_queries_per_thread: 4096
|
|
||||||
|
|
||||||
unbound_max_negative_ttl: 3600
|
|
||||||
|
|
||||||
unbound_hide_identity: 'yes'
|
|
||||||
unbound_hide_version: 'yes'
|
|
||||||
unbound_qname_minimisation: 'no'
|
|
||||||
unbound_val_clean_additional: 'yes'
|
|
||||||
# The following is experimental
|
|
||||||
unbound_use_caps_for_id: 'no'
|
|
||||||
unbound_unwanted_reply_threshold: '10000000'
|
|
||||||
unbound_do_not_query_localhost: 'no'
|
|
||||||
unbound_rrset_roundrobin: 'yes'
|
|
||||||
unbound_unblock_lan_zones: 'no'
|
|
||||||
unbound_do_ipv6: 'yes'
|
|
||||||
|
|
||||||
unbound_private_addresses: []
|
|
||||||
unbound_private_domains: []
|
|
||||||
# Stub zones
|
|
||||||
# One of stub_host or stub_addr must be defined
|
|
||||||
# stub_prime and stub_first are both optional, default 'yes'
|
|
||||||
#unbound_stub_zones:
|
|
||||||
# - { name: '', stub_addr: '', stub_host: '', stub_prime: '', stub_first: '' }
|
|
|
@ -1,4 +0,0 @@
|
||||||
---
|
|
||||||
- name: Restart unbound
|
|
||||||
service: name=unbound state=restarted
|
|
||||||
|
|
|
@ -1,24 +0,0 @@
|
||||||
---
|
|
||||||
- block:
|
|
||||||
- name: Install the unbound resolver packages
|
|
||||||
apt: pkg={{ unbound_pkgs }} state=present cache_valid_time=1800 update_cache=yes
|
|
||||||
|
|
||||||
- name: Install the unbound config files
|
|
||||||
template: src={{ item }} dest=/etc/unbound/unbound.conf.d/{{ item }}
|
|
||||||
with_items:
|
|
||||||
- unbound-server.conf
|
|
||||||
- unbound-remote-control.conf
|
|
||||||
notify: Restart unbound
|
|
||||||
tags: [ 'unbound', 'unbound_conf' ]
|
|
||||||
|
|
||||||
- name: On bionic, stop systemd-resolvd because it interferes
|
|
||||||
service: name=systemd-resolved state=stopped enabled=no
|
|
||||||
when:
|
|
||||||
- ansible_distribution == "Ubuntu"
|
|
||||||
- ansible_service_mgr == 'systemd'
|
|
||||||
- ansible_distribution_major_version >= '18'
|
|
||||||
|
|
||||||
- name: Ensure that the unbound service is started and enabled
|
|
||||||
service: name=unbound state=restarted enabled=yes
|
|
||||||
|
|
||||||
tags: [ 'unbound' ]
|
|
|
@ -1,6 +0,0 @@
|
||||||
remote-control:
|
|
||||||
control-enable: {{ unbound_remote_control }}
|
|
||||||
{% if unbound_remote_IP is defined %}
|
|
||||||
control-interface: '{{ unbound_remote_IP }}'
|
|
||||||
{% endif %}
|
|
||||||
|
|
|
@ -1,81 +0,0 @@
|
||||||
server:
|
|
||||||
{% for interface in unbound_interfaces %}
|
|
||||||
interface: {{ interface }}
|
|
||||||
{% endfor %}
|
|
||||||
{% if keepalived_install is defined and keepalived_install %}
|
|
||||||
ip-transparent: yes
|
|
||||||
{% endif %}
|
|
||||||
interface-automatic: yes
|
|
||||||
{% for net in unbound_allowed_clients %}
|
|
||||||
access-control: {{ net.cidr }} {{ net.policy }}
|
|
||||||
{% endfor %}
|
|
||||||
verbosity: {{ unbound_verbosity }}
|
|
||||||
# use all CPUs
|
|
||||||
num-threads: {{ unbound_threads }}
|
|
||||||
prefetch: {{ unbound_prefetch }}
|
|
||||||
|
|
||||||
# power of 2 close to num-threads
|
|
||||||
msg-cache-slabs: {{ unbound_threads }}
|
|
||||||
rrset-cache-slabs: {{ unbound_threads }}
|
|
||||||
infra-cache-slabs: {{ unbound_threads }}
|
|
||||||
key-cache-slabs: {{ unbound_threads }}
|
|
||||||
|
|
||||||
# more cache memory, rrset=msg*2
|
|
||||||
rrset-cache-size: {{ unbound_rrset_cache_size }}
|
|
||||||
msg-cache-size: {{ unbound_rrset_msg_cache_size }}
|
|
||||||
|
|
||||||
# more outgoing connections
|
|
||||||
# depends on number of cores: 1024/cores - 50
|
|
||||||
outgoing-range: {{ 1024 * unbound_threads - 50 }}
|
|
||||||
|
|
||||||
# Larger socket buffer. OS may need config.
|
|
||||||
so-rcvbuf: {{ unbound_so_rcvbuf }}
|
|
||||||
so-sndbuf: {{ unbound_so_sndbuf }}
|
|
||||||
|
|
||||||
# Negative TTL
|
|
||||||
cache-max-negative-ttl: {{ unbound_max_negative_ttl }}
|
|
||||||
|
|
||||||
# Faster UDP with multithreading (only on Linux).
|
|
||||||
so-reuseport: {{ unbound_so_reuseport }}
|
|
||||||
# with libevent
|
|
||||||
num-queries-per-thread: {{ unbound_num_queries_per_thread }}
|
|
||||||
hide-identity: {{ unbound_hide_identity }}
|
|
||||||
hide-version: {{ unbound_hide_version }}
|
|
||||||
qname-minimisation: {{ unbound_qname_minimisation }}
|
|
||||||
# The following is experimental
|
|
||||||
use-caps-for-id: {{ unbound_use_caps_for_id }}
|
|
||||||
unwanted-reply-threshold: {{ unbound_unwanted_reply_threshold }}
|
|
||||||
do-not-query-localhost: {{ unbound_do_not_query_localhost }}
|
|
||||||
rrset-roundrobin: {{ unbound_rrset_roundrobin }}
|
|
||||||
val-clean-additional: {{ unbound_val_clean_additional }}
|
|
||||||
unblock-lan-zones: {{ unbound_unblock_lan_zones }}
|
|
||||||
do-ip6: {{ unbound_do_ipv6 }}
|
|
||||||
#
|
|
||||||
{% if ansible_service_mgr == 'systemd' %}
|
|
||||||
use-systemd: yes
|
|
||||||
do-daemonize: no
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% for cidr in unbound_private_addresses %}
|
|
||||||
private-address: {{ cidr }}
|
|
||||||
{% endfor %}
|
|
||||||
{% for dom in unbound_private_domains %}
|
|
||||||
private-domain: {{ dom }}
|
|
||||||
{% endfor %}
|
|
||||||
|
|
||||||
{% if unbound_stub_zones is defined %}
|
|
||||||
{% for zone in unbound_stub_zones %}
|
|
||||||
stub-zone:
|
|
||||||
name: {{ zone.name }}
|
|
||||||
{% if zone.stub_host is defined %}
|
|
||||||
stub-host: {{ zone.stub_host }}
|
|
||||||
{% endif %}
|
|
||||||
{% if zone.stub_addr is defined %}
|
|
||||||
stub-addr: {{ zone.stub_addr }}
|
|
||||||
{% endif %}
|
|
||||||
stub-prime: {{ zone.stub_prime | default('no') }}
|
|
||||||
stub-first: {{ zone.stub_first | default('yes') }}
|
|
||||||
|
|
||||||
{% endfor %}
|
|
||||||
{% endif %}
|
|
||||||
|
|
Loading…
Reference in New Issue