From 71261867e0580e410c2dad59c805b22d1647fcc1 Mon Sep 17 00:00:00 2001 From: "Antonio J. Delgado" Date: Thu, 14 Oct 2021 14:18:33 +0300 Subject: [PATCH] Add existing code --- defaults/main.yml | 3 +++ handlers/main.yml | 5 +++++ tasks/configure.yml | 27 +++++++++++++++++++++++++++ tasks/install.yml | 11 +++++++++++ tasks/main.yml | 5 +++++ templates/ping_exporter.conf.j2 | 8 ++++++++ templates/ping_exporter.service.j2 | 14 ++++++++++++++ templates/ping_exporter_logrotate.j2 | 8 ++++++++ 8 files changed, 81 insertions(+) create mode 100644 defaults/main.yml create mode 100644 handlers/main.yml create mode 100644 tasks/configure.yml create mode 100644 tasks/install.yml create mode 100644 tasks/main.yml create mode 100644 templates/ping_exporter.conf.j2 create mode 100644 templates/ping_exporter.service.j2 create mode 100644 templates/ping_exporter_logrotate.j2 diff --git a/defaults/main.yml b/defaults/main.yml new file mode 100644 index 0000000..711a2b1 --- /dev/null +++ b/defaults/main.yml @@ -0,0 +1,3 @@ +--- +# Default values for variables of the role +# variable_name: value diff --git a/handlers/main.yml b/handlers/main.yml new file mode 100644 index 0000000..ee7f240 --- /dev/null +++ b/handlers/main.yml @@ -0,0 +1,5 @@ +--- +- name: Restart ping_exporter service + service: + name: ping_exporter + state: restarted \ No newline at end of file diff --git a/tasks/configure.yml b/tasks/configure.yml new file mode 100644 index 0000000..3bf0602 --- /dev/null +++ b/tasks/configure.yml @@ -0,0 +1,27 @@ +--- +- name: Ensure ping_exporter is configured + template: + dest: /etc/ping_exporter.conf + src: templates/ping_exporter.conf.j2 + backup: yes + notify: Restart ping_exporter service +- name: Ensure ping_exporter systemd unit is installed + template: + dest: /etc/systemd/system/ping_exporter.service + src: templates/ping_exporter.service.j2 + backup: yes +- name: Ensure ping_exporter service is enabled and running + systemd: + name: ping_exporter.service + state: started + enabled: yes +- name: Ensure Prometheus host can reach ping_exporter + ufw: + rule: allow + port: "{{ ping_exporter['port'] }}" + src: "{{ ping_exporter['prometheus_host'] }}" +- name: Ensure there is a logrotate rule for ping_exporter + template: + dest: /etc/logrotate.d/ping_exporter + src: templates/ping_exporter_logrotate.j2 + backup: yes \ No newline at end of file diff --git a/tasks/install.yml b/tasks/install.yml new file mode 100644 index 0000000..b84ad0c --- /dev/null +++ b/tasks/install.yml @@ -0,0 +1,11 @@ +--- +- name: Ensure prometheus-ping-exporter is cloned + git: + repo: ssh://git@repos.susurrando.com:1122/srv/git.repos/ping_exporter.git + dest: /var/lib/from_repos/ping_exporter + depth: 1 + notify: Restart ping_exporter service +- name: Install ping_exporter python requirements + pip: + requirements: /var/lib/from_repos/ping_exporter/requirements.txt + notify: Restart ping_exporter service \ No newline at end of file diff --git a/tasks/main.yml b/tasks/main.yml new file mode 100644 index 0000000..cbe813e --- /dev/null +++ b/tasks/main.yml @@ -0,0 +1,5 @@ +--- +- name: Ensure installation + include_tasks: install.yml +- name: Ensure configuration + include_tasks: configure.yml \ No newline at end of file diff --git a/templates/ping_exporter.conf.j2 b/templates/ping_exporter.conf.j2 new file mode 100644 index 0000000..b9c3a65 --- /dev/null +++ b/templates/ping_exporter.conf.j2 @@ -0,0 +1,8 @@ +log_file="{{ ping_exporter['log_file']}}" +count={{ ping_exporter['count'] }} +port={{ ping_exporter['port'] }} +frequency={{ ping_exporter['frequency'] }} +interval={{ ping_exporter['interval'] }} +timeout={{ ping_exporter['timeout'] }} +family="{{ ping_exporter['family'] }}" +targets={% for target in ping_exporter['targets'] %}"{{ target }}"{% if not loop.last %},{% endif %}{% endfor %} \ No newline at end of file diff --git a/templates/ping_exporter.service.j2 b/templates/ping_exporter.service.j2 new file mode 100644 index 0000000..6521822 --- /dev/null +++ b/templates/ping_exporter.service.j2 @@ -0,0 +1,14 @@ +# Managed by Ansible +# /etc/systemd/system/ping_exporter.service +# User service: $HOME/.config/systemd/user/ping_exporter.service + +[Unit] +Description=Ping exporter service +After=syslog.target network.target auditd.service +OnFailure=status_email_antoniodelgado@%n.service + +[Service] +ExecStart=/var/lib/from_repos/ping_exporter/ping_exporter/ping_exporter.py --config /etc/ping_exporter.conf + +[Install] +WantedBy=multi-user.target \ No newline at end of file diff --git a/templates/ping_exporter_logrotate.j2 b/templates/ping_exporter_logrotate.j2 new file mode 100644 index 0000000..88e49eb --- /dev/null +++ b/templates/ping_exporter_logrotate.j2 @@ -0,0 +1,8 @@ +{{ ping_exporter['log_file'] }} +{ + rotate 4 + weekly + missingok + compress + delaycompress +} \ No newline at end of file