Compare commits
17 Commits
b6fa879b93
...
bind-9.18
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
90f4f1d9db | ||
|
|
df56bcd23d | ||
| 781bd90580 | |||
| 50d570a59e | |||
| 276d7519ea | |||
| d870c5e0e7 | |||
| d1f384abab | |||
| 0eacd56934 | |||
| 0a8ea77c63 | |||
| 2502389156 | |||
|
|
986b33df21 | ||
|
|
192747e438 | ||
|
|
b5a9e97712 | ||
|
|
26c6e7844d | ||
|
|
cfde49d95a | ||
|
|
e538644617 | ||
|
|
f535f1af20 |
@@ -18,7 +18,7 @@
|
|||||||
- "{{ bind9_libdir }}"
|
- "{{ bind9_libdir }}"
|
||||||
dest: "{{
|
dest: "{{
|
||||||
bind9_backup_dir + '/bind9-config-' +
|
bind9_backup_dir + '/bind9-config-' +
|
||||||
ansible_date_time.iso8601_basic_short + '.tar.gz' }}"
|
ansible_facts.date_time.iso8601_basic_short + '.tar.gz' }}"
|
||||||
owner: root
|
owner: root
|
||||||
group: root
|
group: root
|
||||||
mode: 0640
|
mode: 0640
|
||||||
|
|||||||
7
molecule/default/collections.yml
Normal file
7
molecule/default/collections.yml
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
collections:
|
||||||
|
- name: ansible.utils
|
||||||
|
- name: ansible.posix
|
||||||
|
- name: community.crypto
|
||||||
|
- name: community.general
|
||||||
|
|
||||||
@@ -1,5 +1,7 @@
|
|||||||
---
|
---
|
||||||
- name: Converge
|
- name: Converge
|
||||||
hosts: all
|
hosts: all
|
||||||
roles:
|
tasks:
|
||||||
- keepit.bind9
|
- name: Include bind9 role
|
||||||
|
ansible.builtin.include_role:
|
||||||
|
name: ../../../ansible-bind9-role
|
||||||
|
|||||||
@@ -1,22 +1,25 @@
|
|||||||
---
|
---
|
||||||
dependency:
|
|
||||||
name: galaxy
|
|
||||||
driver:
|
driver:
|
||||||
name: podman
|
name: podman
|
||||||
platforms:
|
platforms:
|
||||||
- name: ubuntu-jammy
|
- name: debian-bookworm
|
||||||
image: ubuntu:jammy
|
image: docker.io/jrei/systemd-debian:12
|
||||||
- name: ubuntu-focal
|
command: /lib/systemd/systemd
|
||||||
image: ubuntu:focal
|
privileged: true
|
||||||
- name: debian-bullseye
|
volumes:
|
||||||
image: debian:bullseye
|
- /sys/fs/cgroup:/sys/fs/cgroup:rw
|
||||||
|
cgroupns_mode: host
|
||||||
|
- name: debian-trixie
|
||||||
|
image: docker.io/jrei/systemd-debian:13
|
||||||
|
command: /lib/systemd/systemd
|
||||||
|
privileged: true
|
||||||
|
volumes:
|
||||||
|
- /sys/fs/cgroup:/sys/fs/cgroup:rw
|
||||||
|
cgroupns_mode: host
|
||||||
provisioner:
|
provisioner:
|
||||||
name: ansible
|
name: ansible
|
||||||
lint:
|
config_options:
|
||||||
name: ansible-lint
|
defaults:
|
||||||
|
ALLOW_BROKEN_CONDITIONALS: true
|
||||||
verifier:
|
verifier:
|
||||||
name: ansible
|
name: ansible
|
||||||
lint: |
|
|
||||||
set -e
|
|
||||||
ansible-lint .
|
|
||||||
yamllint .
|
|
||||||
|
|||||||
6
molecule/default/prepare.yml
Normal file
6
molecule/default/prepare.yml
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
- hosts: all
|
||||||
|
tasks:
|
||||||
|
- name: Update apt
|
||||||
|
ansible.builtin.apt:
|
||||||
|
update_cache: true
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
{# ACL Macro. Very easy statement. It's just a list of address match elements. #}
|
{# ACL Macro. Very easy statement. It's just a list of address match elements. #}
|
||||||
{% for acl in item.acl %}
|
{% for acl in item.acl %}
|
||||||
|
|
||||||
acl {{ acl.name }} {
|
acl {{ acl.name }} {
|
||||||
{{ functions.simple_item_list(acl.addresses) -}}
|
{{ functions.simple_item_list(acl.addresses) -}}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
|
||||||
controls {
|
controls {
|
||||||
{% filter indent(bind9_config_indent, true) %}
|
{% filter indent(bind9_config_indent, true) %}
|
||||||
{% for control in item.controls %}
|
{% for control in item.controls %}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{% for dlz in item.dlz if item.dlz is iterable %}
|
{% for dlz in item.dlz if item.dlz is iterable %}
|
||||||
|
|
||||||
dlz "{{ dlz.name }}" {
|
dlz "{{ dlz.name }}" {
|
||||||
{% filter indent(bind9_config_indent, true) %}
|
{% filter indent(bind9_config_indent, true) %}
|
||||||
{{ ('database "' + simple_item_list(dlz.database) + '";') }}
|
{{ ('database "' + simple_item_list(dlz.database) + '";') }}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{% for policy in item.dnssec_policy if item.dnssec_policy is iterable %}
|
{% for policy in item.dnssec_policy if item.dnssec_policy is iterable %}
|
||||||
|
|
||||||
dnssec-policy "{{ policy.name }}" {
|
dnssec-policy "{{ policy.name }}" {
|
||||||
{% filter indent(bind9_config_indent, true) %}
|
{% filter indent(bind9_config_indent, true) %}
|
||||||
{% if policy.keys is defined and policy.keys %}
|
{% if policy.keys is defined and policy.keys %}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{% for dyndb in item.dyndb if item.dyndb is iterable %}
|
{% for dyndb in item.dyndb if item.dyndb is iterable %}
|
||||||
|
|
||||||
dyndb {{ dyndb.name }} "{{ dyndb.driver }}" {
|
dyndb {{ dyndb.name }} "{{ dyndb.driver }}" {
|
||||||
{% filter indent(bind9_config_indent, true) %}
|
{% filter indent(bind9_config_indent, true) %}
|
||||||
{{ functions.simple_item_list(dyndb.parameters) -}}
|
{{ functions.simple_item_list(dyndb.parameters) -}}
|
||||||
|
|||||||
@@ -1,12 +1,7 @@
|
|||||||
{% import 'named.conf.functions.j2' as functions with context %}
|
{% import 'named.conf.functions.j2' as functions with context %}
|
||||||
{{ ansible_managed | comment }}
|
{{ ansible_managed | comment }}
|
||||||
{% if item.options is defined and item.options %}
|
{% if item.options is defined and item.options %}
|
||||||
options {
|
|
||||||
{% filter indent(bind9_config_indent,true)%}
|
|
||||||
{% include 'named.conf.options.j2' %}
|
{% include 'named.conf.options.j2' %}
|
||||||
{% endfilter %}
|
|
||||||
};
|
|
||||||
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if item.acl is defined and item.acl %}
|
{% if item.acl is defined and item.acl %}
|
||||||
{% include 'named.conf.acl.j2' %}
|
{% include 'named.conf.acl.j2' %}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{% for http in item.http if item.http is iterable %}
|
{% for http in item.http if item.http is iterable %}
|
||||||
|
|
||||||
http {{ http.name }} {
|
http {{ http.name }} {
|
||||||
{% filter indent(bind9_config_indent, true) %}
|
{% filter indent(bind9_config_indent, true) %}
|
||||||
{% if http.endpoints is defined and http.endpoints %}
|
{% if http.endpoints is defined and http.endpoints %}
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
|
||||||
{% for file in item.include %}
|
{% for file in item.include %}
|
||||||
include "{{ file }}";
|
include "{{ file }}";
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{% for keyname in item.keylist if item.keylist is iterable %}
|
{% for keyname in item.keylist if item.keylist is iterable %}
|
||||||
|
|
||||||
key {{ keyname.name }} {
|
key {{ keyname.name }} {
|
||||||
{% filter indent(bind9_config_indent, true) %}
|
{% filter indent(bind9_config_indent, true) %}
|
||||||
{{ ('algorithm ' + keyname.algorithm + ';\n') if keyname.algorithm is defined and keyname.algorithm -}}
|
{{ ('algorithm ' + keyname.algorithm + ';\n') if keyname.algorithm is defined and keyname.algorithm -}}
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
|
||||||
logging {
|
logging {
|
||||||
{% filter indent(bind9_config_indent, true) %}
|
{% filter indent(bind9_config_indent, true) %}
|
||||||
{% for category in item.logging.categories if item.logging.categories is defined and item.logging.categories %}
|
{% for category in item.logging.categories if item.logging.categories is defined and item.logging.categories %}
|
||||||
|
|||||||
@@ -1,3 +1,6 @@
|
|||||||
|
|
||||||
|
options {
|
||||||
|
{% filter indent(bind9_config_indent,true)%}
|
||||||
{# Unicorn Options#}
|
{# Unicorn Options#}
|
||||||
{% if item.options.rrset_order is defined and item.options.rrset_order %}
|
{% if item.options.rrset_order is defined and item.options.rrset_order %}
|
||||||
rrset-order {
|
rrset-order {
|
||||||
@@ -460,3 +463,6 @@ tkey-dhkey "{{ item.options.tkey_dhkey.key_name }}" {{ item.options.tkey_dhkey.k
|
|||||||
{{ (functions.boolean_option('use-alt-transfer-source', item.options.use_alt_transfer_source) + '\n') if item.options.use_alt_transfer_source is defined -}}
|
{{ (functions.boolean_option('use-alt-transfer-source', item.options.use_alt_transfer_source) + '\n') if item.options.use_alt_transfer_source is defined -}}
|
||||||
{{ (functions.boolean_option('zero-no-soa-ttl', item.options.zero_no_soa_ttl) + '\n') if item.options.zero_no_soa_ttl is defined -}}
|
{{ (functions.boolean_option('zero-no-soa-ttl', item.options.zero_no_soa_ttl) + '\n') if item.options.zero_no_soa_ttl is defined -}}
|
||||||
{{ (functions.boolean_option('zero-no-soa-ttl-cache', item.options.zero_no_soa_ttl_cache) + '\n') if item.options.zero_no_soa_ttl_cache is defined -}}
|
{{ (functions.boolean_option('zero-no-soa-ttl-cache', item.options.zero_no_soa_ttl_cache) + '\n') if item.options.zero_no_soa_ttl_cache is defined -}}
|
||||||
|
{% endfilter %}
|
||||||
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{% for agent in item.parental_agents if item.parental_agents is iterable %}
|
{% for agent in item.parental_agents if item.parental_agents is iterable %}
|
||||||
|
|
||||||
parental-agents {{ agent.name -}}
|
parental-agents {{ agent.name -}}
|
||||||
{{ (' port ' + agent.port | string) if agent.port is defined and agent.port -}}
|
{{ (' port ' + agent.port | string) if agent.port is defined and agent.port -}}
|
||||||
{{ (' dscp ' + agent.dscp | string) if agent.dscp is defined and agent.dscp }} {
|
{{ (' dscp ' + agent.dscp | string) if agent.dscp is defined and agent.dscp }} {
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{% for primary in item.primaries if item.primaries is iterable %}
|
{% for primary in item.primaries if item.primaries is iterable %}
|
||||||
|
|
||||||
primaries {{ primary.name -}}
|
primaries {{ primary.name -}}
|
||||||
{{ (' port ' + primary.port | string) if primary.port is defined and primary.port -}}
|
{{ (' port ' + primary.port | string) if primary.port is defined and primary.port -}}
|
||||||
{{ (' dscp ' + primary.dscp | string) if primary.dscp is defined and primary.dscp }} {
|
{{ (' dscp ' + primary.dscp | string) if primary.dscp is defined and primary.dscp }} {
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{% for server in item.server if item.server is iterable %}
|
{% for server in item.server if item.server is iterable %}
|
||||||
|
|
||||||
server {{ server.prefix }} {
|
server {{ server.prefix }} {
|
||||||
{% filter indent(bind9_config_indent, true) %}
|
{% filter indent(bind9_config_indent, true) %}
|
||||||
{% if server.transfer_source is defined and server.transfer_source is mapping %}
|
{% if server.transfer_source is defined and server.transfer_source is mapping %}
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
|
||||||
statistics-channels {
|
statistics-channels {
|
||||||
{% filter indent(bind9_config_indent, true) %}
|
{% filter indent(bind9_config_indent, true) %}
|
||||||
{% for channel in item.statistics_channels if item.statistics_channels is iterable %}
|
{% for channel in item.statistics_channels if item.statistics_channels is iterable %}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{% for tls in item.tls if item.tls is iterable %}
|
{% for tls in item.tls if item.tls is iterable %}
|
||||||
|
|
||||||
tls {{ tls.name }} {
|
tls {{ tls.name }} {
|
||||||
{% filter indent(bind9_config_indent, true) %}
|
{% filter indent(bind9_config_indent, true) %}
|
||||||
{{ ('cert-file "' + tls.cert_file + '";\n') if tls.cert_file is defined and tls.cert_file -}}
|
{{ ('cert-file "' + tls.cert_file + '";\n') if tls.cert_file is defined and tls.cert_file -}}
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
|
||||||
trust-anchors {
|
trust-anchors {
|
||||||
{% filter indent(bind9_config_indent, true) %}
|
{% filter indent(bind9_config_indent, true) %}
|
||||||
{% for anchor in item.trust_anchors if item.trust_anchors is iterable %}
|
{% for anchor in item.trust_anchors if item.trust_anchors is iterable %}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{% for view in item.view if item.view is iterable %}
|
{% for view in item.view if item.view is iterable %}
|
||||||
|
|
||||||
view {{ view.name }} {
|
view {{ view.name }} {
|
||||||
{% filter indent(bind9_config_indent, true) %}
|
{% filter indent(bind9_config_indent, true) %}
|
||||||
{{ ('match-recursive-only ' + functions.named_boolean(view.match_recursive_only) + ';\n') if view.match_recursive_only is defined -}}
|
{{ ('match-recursive-only ' + functions.named_boolean(view.match_recursive_only) + ';\n') if view.match_recursive_only is defined -}}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# Zones Macro
|
|
||||||
{% for zone in item.zones %}
|
{% for zone in item.zones %}
|
||||||
|
|
||||||
zone "{{ zone.name }}" {
|
zone "{{ zone.name }}" {
|
||||||
{% filter indent(bind9_config_indent, true) %}
|
{% filter indent(bind9_config_indent, true) %}
|
||||||
# Zone {{ zone.name }} type {{ zone.type }}
|
# Zone {{ zone.name }} type {{ zone.type }}
|
||||||
@@ -156,5 +156,4 @@ parental-source-v6 {{ zone.parental_source_v6.address -}}
|
|||||||
{{ ('in-view ' + zone.in_view | string+';\n') if zone.in_view is defined and zone.in_view -}}
|
{{ ('in-view ' + zone.in_view | string+';\n') if zone.in_view is defined and zone.in_view -}}
|
||||||
{% endfilter %}
|
{% endfilter %}
|
||||||
};
|
};
|
||||||
|
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|||||||
Reference in New Issue
Block a user