From 1aa32f43d7b68d92e411e7c114701ba24952d788 Mon Sep 17 00:00:00 2001 From: s3lph Date: Sun, 22 Nov 2020 01:50:26 +0100 Subject: [PATCH] Add dnsbl exporter --- roles/dnsbl_exporter/defaults/main.yml | 4 +++ roles/dnsbl_exporter/handlers/main.yml | 6 ++++ roles/dnsbl_exporter/tasks/config.yml | 29 +++++++++++++++++++ roles/dnsbl_exporter/tasks/install.yml | 26 +++++++++++++++++ roles/dnsbl_exporter/tasks/main.yml | 11 +++++++ .../etc/default/prometheus-dnsbl-exporter.j2 | 3 ++ .../etc/prometheus/dnsbl-exporter/rbls.ini.j2 | 6 ++++ .../prometheus/dnsbl-exporter/targets.ini.j2 | 6 ++++ 8 files changed, 91 insertions(+) create mode 100644 roles/dnsbl_exporter/defaults/main.yml create mode 100644 roles/dnsbl_exporter/handlers/main.yml create mode 100644 roles/dnsbl_exporter/tasks/config.yml create mode 100644 roles/dnsbl_exporter/tasks/install.yml create mode 100644 roles/dnsbl_exporter/tasks/main.yml create mode 100644 roles/dnsbl_exporter/templates/etc/default/prometheus-dnsbl-exporter.j2 create mode 100644 roles/dnsbl_exporter/templates/etc/prometheus/dnsbl-exporter/rbls.ini.j2 create mode 100644 roles/dnsbl_exporter/templates/etc/prometheus/dnsbl-exporter/targets.ini.j2 diff --git a/roles/dnsbl_exporter/defaults/main.yml b/roles/dnsbl_exporter/defaults/main.yml new file mode 100644 index 0000000..78f2dd8 --- /dev/null +++ b/roles/dnsbl_exporter/defaults/main.yml @@ -0,0 +1,4 @@ +--- + +prometheus_dnsbl_exporter_rbls: [] +prometheus_dnsbl_exporter_args: "" diff --git a/roles/dnsbl_exporter/handlers/main.yml b/roles/dnsbl_exporter/handlers/main.yml new file mode 100644 index 0000000..589a25b --- /dev/null +++ b/roles/dnsbl_exporter/handlers/main.yml @@ -0,0 +1,6 @@ +--- + +- name: restart prometheus-dnsbl-exporter + service: + name: prometheus-dnsbl-exporter + state: restarted diff --git a/roles/dnsbl_exporter/tasks/config.yml b/roles/dnsbl_exporter/tasks/config.yml new file mode 100644 index 0000000..d139f94 --- /dev/null +++ b/roles/dnsbl_exporter/tasks/config.yml @@ -0,0 +1,29 @@ +--- + +- name: render /etc/default/prometheus-dnsbl-exporter + template: + src: etc/default/prometheus-dnsbl-exporter.j2 + dest: /etc/default/prometheus-dnsbl-exporter + notify: restart prometheus-dnsbl-exporter + +- name: render rbls.ini + template: + src: etc/prometheus/dnsbl-exporter/rbls.ini.j2 + dest: /etc/prometheus/dnsbl-exporter/rbls.ini + vars: + rbls: "{{ prometheus_dnsbl_exporter_rbls }}" + notify: restart prometheus-dnsbl-exporter + +- name: render targets.ini + template: + src: etc/prometheus/dnsbl-exporter/targets.ini.j2 + dest: /etc/prometheus/dnsbl-exporter/targets.ini + vars: + targets: "{{ hostvars.keys() | selectattr('monitor_dnsbl', 'true') }}" + notify: restart prometheus-dnsbl-exporter + +- name: start and enable prometheus-dnsbl-exporter + service: + name: prometheus-dnsbl-exporter + state: started + enabled: yes diff --git a/roles/dnsbl_exporter/tasks/install.yml b/roles/dnsbl_exporter/tasks/install.yml new file mode 100644 index 0000000..379908a --- /dev/null +++ b/roles/dnsbl_exporter/tasks/install.yml @@ -0,0 +1,26 @@ +--- + +- name: add s3lphrepo apt key + apt_key: + data: | + -----BEGIN PGP PUBLIC KEY BLOCK----- + + mDMEXu0vYhYJKwYBBAHaRw8BAQdAavB6HHoI15+Dh4ackdZuCjRkPzWcG64DHVxu + C2yDFfG0X3MzbHBoJ3MgQ3VzdG9tIERlYmlhbiBSZXBvc2l0b3J5IChBdXRvbWF0 + ZWQgUGlwZWxpbmUpIDxhY2NvdW50LWdpdGxhYi1pZGV5bml6dkBrZXJuZWxwYW5p + Yy5sb2w+iJAEExYIADgWIQQ/Y+h7ABiB4vyzwPu8TSozeH+lRAUCXu0vYgIbAwUL + CQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRC8TSozeH+lRNzVAPsEKmhB0kl5Toyj + fBPUAJ6Fr+0ljZwoj1oR16Kl9GvkzQD/XqsZC+sYSImXhDTx6iDXm1WYycgB7Abt + 1dm6aN640gU= + =YLAj + -----END PGP PUBLIC KEY BLOCK----- + +- name: add s3lphrepo + apt_repository: + repo: deb https://kernelpanic.lol/repo stable main + filename: s3lphrepo + +- name: install prometheus-dnsbl-exporter + package: + name: prometheus-dnsbl-exporter + state: present diff --git a/roles/dnsbl_exporter/tasks/main.yml b/roles/dnsbl_exporter/tasks/main.yml new file mode 100644 index 0000000..0a47efb --- /dev/null +++ b/roles/dnsbl_exporter/tasks/main.yml @@ -0,0 +1,11 @@ +--- + +- import_tasks: install.yml + tags: + - "role::dnsbl_exporter" + - "role::dnsbl_exporter:install" + +- import_tasks: config.yml + tags: + - "role::dnsbl_exporter" + - "role::dnsbl_exporter:config" diff --git a/roles/dnsbl_exporter/templates/etc/default/prometheus-dnsbl-exporter.j2 b/roles/dnsbl_exporter/templates/etc/default/prometheus-dnsbl-exporter.j2 new file mode 100644 index 0000000..78f6288 --- /dev/null +++ b/roles/dnsbl_exporter/templates/etc/default/prometheus-dnsbl-exporter.j2 @@ -0,0 +1,3 @@ +{{ ansible_managed | comment }} + +ARGS="--config.rbls=/etc/prometheus/dnsbl-exporter/rbls.ini --config.targets=/etc/prometheus/dnsbl-exporter/targets.ini {{ prometheus_dnsbl_exporter_args }}" diff --git a/roles/dnsbl_exporter/templates/etc/prometheus/dnsbl-exporter/rbls.ini.j2 b/roles/dnsbl_exporter/templates/etc/prometheus/dnsbl-exporter/rbls.ini.j2 new file mode 100644 index 0000000..61bfce9 --- /dev/null +++ b/roles/dnsbl_exporter/templates/etc/prometheus/dnsbl-exporter/rbls.ini.j2 @@ -0,0 +1,6 @@ +{{ ansible_managed | comment }} + +[rbl] +{% for rbl in rbls %} +server={{ rbl }} +{% endfor %} \ No newline at end of file diff --git a/roles/dnsbl_exporter/templates/etc/prometheus/dnsbl-exporter/targets.ini.j2 b/roles/dnsbl_exporter/templates/etc/prometheus/dnsbl-exporter/targets.ini.j2 new file mode 100644 index 0000000..68be44c --- /dev/null +++ b/roles/dnsbl_exporter/templates/etc/prometheus/dnsbl-exporter/targets.ini.j2 @@ -0,0 +1,6 @@ +{{ ansible_managed | comment }} + +[targets] +{% for target in targets %} +server={{ target }} +{% endfor %} \ No newline at end of file