From f4b1ae92c2ec6359823aaf0941a32f19f95b4f43 Mon Sep 17 00:00:00 2001 From: darnodo Date: Sat, 21 Jun 2025 08:28:10 +0200 Subject: [PATCH] ansible : install dnsmasq_exporter --- ansible/playbooks/setup_dns_server.yml | 1 + ansible/playbooks/update_dns_records.yml | 1 + .../roles/dnsmasq_exporter/handlers/main.yml | 10 ++++ ansible/roles/dnsmasq_exporter/tasks/main.yml | 56 +++++++++++++++++++ .../templates/dnsmasq_exporter.service.j2 | 13 +++++ 5 files changed, 81 insertions(+) create mode 100644 ansible/roles/dnsmasq_exporter/handlers/main.yml create mode 100644 ansible/roles/dnsmasq_exporter/tasks/main.yml create mode 100644 ansible/roles/dnsmasq_exporter/templates/dnsmasq_exporter.service.j2 diff --git a/ansible/playbooks/setup_dns_server.yml b/ansible/playbooks/setup_dns_server.yml index 930a444..76d2c23 100644 --- a/ansible/playbooks/setup_dns_server.yml +++ b/ansible/playbooks/setup_dns_server.yml @@ -12,3 +12,4 @@ become: true roles: - role: dns_server + - role: dnsmasq_exporter diff --git a/ansible/playbooks/update_dns_records.yml b/ansible/playbooks/update_dns_records.yml index e377cb7..d31cb4f 100644 --- a/ansible/playbooks/update_dns_records.yml +++ b/ansible/playbooks/update_dns_records.yml @@ -13,3 +13,4 @@ become: true roles: - role: dns_server + - role: dnsmasq_exporter diff --git a/ansible/roles/dnsmasq_exporter/handlers/main.yml b/ansible/roles/dnsmasq_exporter/handlers/main.yml new file mode 100644 index 0000000..6f8e866 --- /dev/null +++ b/ansible/roles/dnsmasq_exporter/handlers/main.yml @@ -0,0 +1,10 @@ +--- +# ================================================================ +# Handlers for dnsmasq_exporter role +# ================================================================ + +- name: Reload systemd + ansible.builtin.systemd: + daemon_reload: true + become: true + listen: Reload systemd diff --git a/ansible/roles/dnsmasq_exporter/tasks/main.yml b/ansible/roles/dnsmasq_exporter/tasks/main.yml new file mode 100644 index 0000000..c122c12 --- /dev/null +++ b/ansible/roles/dnsmasq_exporter/tasks/main.yml @@ -0,0 +1,56 @@ +--- +# ================================================================ +# Rôle : dnsmasq_exporter +# Tâches principales +# +# Objectif : Installer la dernière version de dnsmasq_exporter +# via `go install` et la lancer comme service systemd. +# +# Remarque : cette implémentation reste volontairement simple. +# - Aucune gestion fine de la version : toujours la « latest ». +# - Repose sur le paquet Debian/Ubuntu `golang`. +# - Le binaire est installé directement dans /usr/local/bin +# grâce à la variable d’environnement GOBIN. +# ================================================================ + +- name: "[dnsmasq_exporter] Dépendances build (golang, git)" + ansible.builtin.apt: + name: + - golang-go + - git + state: present + update_cache: true + tags: + - dnsmasq_exporter + - install + +- name: "[dnsmasq_exporter] Installation du binaire (go install @latest)" + ansible.builtin.command: + cmd: go install github.com/google/dnsmasq_exporter@latest + creates: /usr/local/bin/dnsmasq_exporter + environment: + GOBIN: /usr/local/bin + tags: + - dnsmasq_exporter + - build + +- name: "[dnsmasq_exporter] Déploiement du service systemd" + ansible.builtin.template: + src: dnsmasq_exporter.service.j2 + dest: /etc/systemd/system/dnsmasq_exporter.service + owner: root + group: root + mode: "0644" + notify: Reload systemd + tags: + - dnsmasq_exporter + - config + +- name: "[dnsmasq_exporter] Activation et démarrage du service" + ansible.builtin.service: + name: dnsmasq_exporter + state: started + enabled: true + tags: + - dnsmasq_exporter + - service diff --git a/ansible/roles/dnsmasq_exporter/templates/dnsmasq_exporter.service.j2 b/ansible/roles/dnsmasq_exporter/templates/dnsmasq_exporter.service.j2 new file mode 100644 index 0000000..b2ee28e --- /dev/null +++ b/ansible/roles/dnsmasq_exporter/templates/dnsmasq_exporter.service.j2 @@ -0,0 +1,13 @@ +[Unit] +Description=Prometheus dnsmasq_exporter +After=network-online.target +Wants=network-online.target + +[Service] +Type=simple +ExecStart=/usr/local/bin/dnsmasq_exporter +Restart=on-failure +RestartSec=5s + +[Install] +WantedBy=multi-user.target