diff --git a/roles/statsd-exporter/handlers/main.yml b/roles/statsd-exporter/handlers/main.yml new file mode 100644 index 0000000..02fc1a4 --- /dev/null +++ b/roles/statsd-exporter/handlers/main.yml @@ -0,0 +1,8 @@ +- name: reload systemd + systemd: + daemon_reload: true + +- name: restart statsd exporter + service: + name: statsd-exporter + state: restarted diff --git a/roles/statsd-exporter/meta/main.yml b/roles/statsd-exporter/meta/main.yml new file mode 100644 index 0000000..e2827fe --- /dev/null +++ b/roles/statsd-exporter/meta/main.yml @@ -0,0 +1,2 @@ +dependencies: +- systemd-base diff --git a/roles/statsd-exporter/tasks/main.yml b/roles/statsd-exporter/tasks/main.yml new file mode 100644 index 0000000..0f4110e --- /dev/null +++ b/roles/statsd-exporter/tasks/main.yml @@ -0,0 +1,66 @@ +- name: ensure required packages are installed + package: + name: + - podman + state: present + tags: + - install + +- name: ensure statsd-exporter os group exists + group: + name: statsd-exporter + gid: 228 + system: true + state: present + tags: + - user + - group +- name: ensure statsd-exporter os user exists + user: + name: statsd-exporter + uid: 228 + system: true + state: present + tags: + - user + +- name: ensure statsd-exporter container is defined + template: + src: statsd-exporter.container.j2 + dest: /etc/containers/systemd/statsd-exporter.container + owner: root + group: root + mode: u=rw,go=r + notify: + - 'statsd-exporter : reload systemd' + - restart statsd exporter + tags: + - systemd + - container + +- name: flush handlers + meta: flush_handlers + +- name: ensure statsd exporter starts at boot + service: + name: statsd-exporter + enabled: true + tags: + - service + +- name: ensure statsd exporter is running + service: + name: statsd-exporter + state: started + tags: + - service + +- name: ensure firewall is configured for statsd exporter + firewalld: + port: 9125/tcp + immediate: true + permanent: true + state: enabled + when: host_uses_firewalld|d(true) + tags: + - firewalld diff --git a/roles/statsd-exporter/templates/statsd-exporter.container.j2 b/roles/statsd-exporter/templates/statsd-exporter.container.j2 new file mode 100644 index 0000000..73bc5cb --- /dev/null +++ b/roles/statsd-exporter/templates/statsd-exporter.container.j2 @@ -0,0 +1,16 @@ +[Unit] +Description=StatsD Exporter for Prometheus +Wants=network-online.target +After=network-online.target + +[Container] +Image=docker.io/prom/statsd-exporter:v0.27.1 +User=228 +Group=228 +DropCapability=all +PublishPort=9102:9102 +PublishPort=9125:9125/tcp +PublishPort=9125:9125/udp + +[Install] +WantedBy=multi-user.target diff --git a/roles/systemd-base/handlers/main.yml b/roles/systemd-base/handlers/main.yml new file mode 100644 index 0000000..56a5c1e --- /dev/null +++ b/roles/systemd-base/handlers/main.yml @@ -0,0 +1,3 @@ +- name: reload systemd + systemd: + daemon_reload: true