Add existing code

This commit is contained in:
Antonio J. Delgado 2021-10-14 14:18:33 +03:00
parent b2120d2b5d
commit 71261867e0
8 changed files with 81 additions and 0 deletions

3
defaults/main.yml Normal file
View file

@ -0,0 +1,3 @@
---
# Default values for variables of the role
# variable_name: value

5
handlers/main.yml Normal file
View file

@ -0,0 +1,5 @@
---
- name: Restart ping_exporter service
service:
name: ping_exporter
state: restarted

27
tasks/configure.yml Normal file
View file

@ -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

11
tasks/install.yml Normal file
View file

@ -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

5
tasks/main.yml Normal file
View file

@ -0,0 +1,5 @@
---
- name: Ensure installation
include_tasks: install.yml
- name: Ensure configuration
include_tasks: configure.yml

View file

@ -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 %}

View file

@ -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

View file

@ -0,0 +1,8 @@
{{ ping_exporter['log_file'] }}
{
rotate 4
weekly
missingok
compress
delaycompress
}