ansible-infra/roles/alloy/tasks/main.yaml
chris 25bf4da29d
All checks were successful
/ build (pull_request) Successful in 28s
/ Ansible Lint (push) Successful in 3m9s
/ Ansible Lint (pull_request) Successful in 3m13s
alloy(role): pull in alloy role that works from fux
2026-07-09 23:12:14 +02:00

79 lines
2.4 KiB
YAML

---
- name: Deploy Grafana Alloy with config
tags: [ alloy ]
block:
- name: Install Alloy on Debian
when: ansible_facts['distribution'] == "Debian"
ansible.builtin.include_tasks: install_debian.yml
- name: Create systemd override for alloy
become: true
when: alloy_cap_net_bind_service
notify: Systemd.daemon_reload
block:
- name: Create systemd override directory
ansible.builtin.file:
path: /etc/systemd/system/alloy.service.d
state: directory
mode: "0755"
owner: root
group: root
- name: Add CAP_NET_BIND_SERVICE capability
ansible.builtin.copy:
dest: /etc/systemd/system/alloy.service.d/override.conf
mode: "0755"
owner: root
group: root
content: |
[Service]
AmbientCapabilities=CAP_NET_BIND_SERVICE
- name: Deploy the Alloy config file
become: true
ansible.builtin.template:
src: "config.alloy.j2"
dest: "/etc/alloy/config.alloy"
owner: "alloy"
group: "alloy"
mode: "0640"
notify:
- Alloy.restarted
- Alloy.enabled
- name: Validate Alloy configuration and print error if failed
block:
- name: Validate Alloy configuration
become: true
register: alloy_validation
changed_when: false
ansible.builtin.command: alloy validate /etc/alloy/config.alloy
rescue:
- name: Show error if validation failed
when: alloy_validation.rc != 0
ansible.builtin.fail:
msg: |
Alloy configuration validation failed!
Return code: {{ alloy_validation.rc }}
Stdout:
{{ alloy_validation.stdout }}
Stderr:
{{ alloy_validation.stderr }}
- name: Deploy blackbox-exporter config
when: alloy_enable_blackbox_exporter
ansible.builtin.include_tasks: blackbox-exporter.yaml
- name: Deploy unpoller exporter
when: alloy_unpoller_enabled
ansible.builtin.include_tasks: unpoller.yaml
- name: Flush handlers
ansible.builtin.meta: flush_handlers
- name: Ensure that Alloy is working
ansible.builtin.uri:
url: "http://localhost:12345/-/ready"
method: GET
register: alloy_status_code
retries: 8
delay: 6
until: not alloy_status_code.failed