pez-infra/ansible/roles/alloy/tasks/main.yml
Rasmus "Pez" Wejlgaard e5306a5409
Fixing loki alloy (#87)
* add alloy to docker group

* fix: use docker driver instead of hacky alloy setup

* fixing linting issue
2026-04-29 20:07:40 +01:00

101 lines
3.5 KiB
YAML

---
# Install and configure Grafana Alloy log shipping agent.
# Debian/Ubuntu: alloy package (included in default repos).
# Alpine: alloy package (included in default repos).
# FreeBSD: pkgng (grafana-alloy).
# ── Debian/Ubuntu ────────────────────────────────────────────────────────────
- name: Install alloy (Debian)
ansible.builtin.apt:
name: alloy
state: present
when: ansible_facts["os_family"] == "Debian"
# ── Alpine ───────────────────────────────────────────────────────────────────
- name: Install alloy (Alpine)
community.general.apk:
name: alloy
state: present
when: ansible_facts["os_family"] == "Alpine"
- name: Fix alloy storage dir ownership (Alpine)
ansible.builtin.file:
path: /var/lib/alloy
state: directory
owner: alloy
group: alloy
recurse: true
when: ansible_facts["os_family"] == "Alpine"
# ── FreeBSD: pkgng ────────────────────────────────────────────────────────────
- name: Install alloy (FreeBSD)
community.general.pkgng:
name: alloy
state: present
when: ansible_facts["os_family"] == "FreeBSD"
- name: Fix alloy storage dir ownership (FreeBSD)
ansible.builtin.file:
path: /var/alloy
state: directory
owner: nobody
group: nobody
mode: '0755'
when: ansible_facts["os_family"] == "FreeBSD"
# ── Docker socket access ─────────────────────────────────────────────────────
- name: Add alloy to docker group
ansible.builtin.user:
name: alloy
groups: docker
append: true
when: "'docker_hosts' in group_names"
notify: "Restart alloy ({{ ansible_facts['os_family'] }})"
# ── Config — all OS ───────────────────────────────────────────────────────────
- name: Set alloy config path fact
ansible.builtin.set_fact:
alloy_config_path: >-
{{ '/usr/local/etc/alloy.flow'
if ansible_facts['os_family'] == 'FreeBSD'
else '/etc/alloy/config.alloy' }}
- name: Deploy alloy config
ansible.builtin.template:
src: alloy.config.alloy.j2
dest: "{{ alloy_config_path }}"
mode: '0644'
notify: "Restart alloy ({{ ansible_facts['os_family'] }})"
# ── Service enable + start ────────────────────────────────────────────────────
- name: Enable and start alloy (Debian)
ansible.builtin.service:
name: alloy
state: started
enabled: true
when: ansible_facts["os_family"] == "Debian"
- name: Enable and start alloy (Alpine)
ansible.builtin.service:
name: alloy
state: started
enabled: true
when: ansible_facts["os_family"] == "Alpine"
- name: Enable alloy (FreeBSD)
community.general.sysrc:
name: alloy_enable
value: "YES"
when: ansible_facts["os_family"] == "FreeBSD"
- name: Start alloy (FreeBSD)
ansible.builtin.service:
name: alloy
state: started
when: ansible_facts["os_family"] == "FreeBSD"