alloy(role): add documentation

- add README
- add argument_specs
- removed tags
This commit is contained in:
chris 2026-07-13 00:33:23 +02:00
commit 099852f588
Signed by: c6ristian
SSH key fingerprint: SHA256:B3m+yzpaxGXSEcDBpPHfvza/DNC0wuX+CKMeGq8wgak
8 changed files with 65 additions and 7 deletions

28
roles/alloy/README.md Normal file
View file

@ -0,0 +1,28 @@
# `Grafana Alloy` role
Installs and configures [Grafana Alloy](https://grafana.com/docs/alloy/latest/) on Debian-based systems.
Optionally deploys a [Blackbox exporter](https://github.com/prometheus/blackbox_exporter) config and a [UniFi Poller](https://unpoller.com/).
## Supported Distributions
Should work on Debian-based distributions.
## Required Arguments
- `alloy_config_default`: The default Alloy configuration. Recomanded for configuration that hosts of a groupe share.
## Optional Arguments
- `alloy_config_additional`: Additional Alloy configuration appended to the default config. Recomanded for per host configuration
- `alloy_cap_net_bind_service`: Grant Alloy the `CAP_NET_BIND_SERVICE` capability, allowing it to bind to privileged ports (<1024).
### Blackbox Exporter
- `alloy_blackbox_exporter_config_default`: Default blackbox exporter configuration.
- `alloy_blackbox_exporter_config_additional`: Additional blackbox exporter configuration appended to the default blackbox exporter config.
### UniFi Poller
- `alloy_unpoller_enabled`: Enable the UniFi Poller container to scrape UniFi metrics.
- `alloy_unpoller_unifi_user`: Username for the UniFi controller used by unpoller, defaults to `unpoller`.
- `alloy_unpoller_unifi_password`: Password for the UniFi controller. Required when `alloy_unpoller_enabled` is `true`.
- `alloy_unpoller_unifi_url`: URL of the UniFi controller. Required when `alloy_unpoller_enabled` is `true`.

View file

@ -1,6 +1,5 @@
--- ---
alloy_cap_net_bind_service: false alloy_cap_net_bind_service: false
alloy_do_we_have_v6: "{{ (ansible_facts['all_ipv6_addresses'] | select('match', '^[23]') | list | length > 0) | ternary('true', 'false') }}"
alloy_config_default: | alloy_config_default: |
prometheus.remote_write "default" { prometheus.remote_write "default" {

View file

@ -0,0 +1,33 @@
argument_specs:
main:
options:
alloy_config_default:
type: str
required: true
alloy_config_additional:
type: str
required: false
alloy_blackbox_exporter_config_default:
type: str
required: false
alloy_blackbox_exporter_config_additional:
type: str
required: false
alloy_cap_net_bind_service:
type: bool
required: false
default: false
alloy_unpoller_enabled:
type: bool
required: false
default: false
alloy_unpoller_unifi_user:
type: str
required: false
default: unpoller
alloy_unpoller_unifi_password:
type: str
required: false
alloy_unpoller_unifi_url:
type: str
required: false

View file

@ -1,6 +1,5 @@
--- ---
- name: Render blackbox exporter config - name: Render blackbox exporter config
tags: [ blackbox-exporter, alloy ]
become: true become: true
ansible.builtin.template: ansible.builtin.template:
src: config.blackbox-exporter.j2 src: config.blackbox-exporter.j2

View file

@ -5,7 +5,7 @@
name: grafana name: grafana
types: deb types: deb
uris: https://apt.grafana.com uris: https://apt.grafana.com
suites: stable suites: "{{ ansible_facts['distribution_release'] }}"
components: components:
- main - main
signed_by: https://apt.grafana.com/gpg.key signed_by: https://apt.grafana.com/gpg.key

View file

@ -2,9 +2,8 @@
- name: Deploy Grafana Alloy with config - name: Deploy Grafana Alloy with config
tags: [ alloy ] tags: [ alloy ]
block: block:
- name: Install Alloy on Debian - name: Install Alloy
when: ansible_facts['distribution'] == "Debian" ansible.builtin.include_tasks: install.yaml
ansible.builtin.include_tasks: install_debian.yml
- name: Create systemd override for alloy - name: Create systemd override for alloy
become: true become: true

View file

@ -1,6 +1,5 @@
--- ---
- name: Install and Setup unpoller - name: Install and Setup unpoller
tags: [ unpoller, alloy, podman, container ]
block: block:
- name: Install Podman - name: Install Podman
become: true become: true

View file

@ -1,2 +1,3 @@
--- ---
alloy_enable_blackbox_exporter: "{{ 'prometheus.exporter.blackbox' in (alloy_config_default + alloy_config_additional) }}" alloy_enable_blackbox_exporter: "{{ 'prometheus.exporter.blackbox' in (alloy_config_default + alloy_config_additional) }}"
alloy_do_we_have_v6: "{{ (ansible_facts['all_ipv6_addresses'] | select('match', '^[23]') | list | length > 0) | ternary('true', 'false') }}"