From 21e6b4f9e8ba71604d6ef052f7363a86c49030bb Mon Sep 17 00:00:00 2001 From: Erich Blume Date: Fri, 16 Jan 2026 22:06:31 -0800 Subject: [PATCH] Remove ansible role meta dependencies to fix duplicate execution Ansible's tag accumulation behavior prevents proper role deduplication when using meta/main.yml dependencies. When a role is pulled in as a dependency, the parent role's tags are added to the dependency's tags, making them appear as different invocations to Ansible. Role ordering is now controlled entirely by indri.yml playbook. Also fixes incorrect roles path in CLAUDE.md (was playbooks/roles, should be just roles). Co-Authored-By: Claude Opus 4.5 --- CLAUDE.md | 2 +- ansible/roles/alloy/meta/main.yml | 6 +++--- ansible/roles/devpi_metrics/meta/main.yml | 6 +++--- ansible/roles/grafana/meta/main.yml | 6 +++--- ansible/roles/kiwix/meta/main.yml | 5 +++-- ansible/roles/miniflux/meta/main.yml | 5 +++-- ansible/roles/plex_metrics/meta/main.yml | 5 +++-- ansible/roles/tailscale_serve/meta/main.yml | 9 +++------ ansible/roles/transmission_metrics/meta/main.yml | 6 +++--- 9 files changed, 25 insertions(+), 25 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 298240b..292061b 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -44,7 +44,7 @@ Some important places you can look: ``` ./mise-tasks/ # management and utility scripts run via `mise run` ./ansible/playbooks/indri.yml # primary blumeops provisioning script -./ansible/playbooks/roles/ # role dirs here give good overview of services; dependencies tracked via meta/main.yml +./ansible/roles/ # role dirs here give good overview of services ./pulumi/ # python (via uv) pulumi script for provisioning the tailnet and other cloud resources ~/code/personal/ # projects managed by the user ~/code/3rd/ # external projects, mirrored or downloaded diff --git a/ansible/roles/alloy/meta/main.yml b/ansible/roles/alloy/meta/main.yml index 9e57ded..b05a43b 100644 --- a/ansible/roles/alloy/meta/main.yml +++ b/ansible/roles/alloy/meta/main.yml @@ -1,4 +1,4 @@ --- -dependencies: - - role: prometheus - - role: loki +# Role ordering is controlled by indri.yml playbook - do not add dependencies here +# (Ansible's tag accumulation prevents proper deduplication when using meta dependencies) +dependencies: [] diff --git a/ansible/roles/devpi_metrics/meta/main.yml b/ansible/roles/devpi_metrics/meta/main.yml index f5c4308..b05a43b 100644 --- a/ansible/roles/devpi_metrics/meta/main.yml +++ b/ansible/roles/devpi_metrics/meta/main.yml @@ -1,4 +1,4 @@ --- -dependencies: - - role: alloy - - role: devpi +# Role ordering is controlled by indri.yml playbook - do not add dependencies here +# (Ansible's tag accumulation prevents proper deduplication when using meta dependencies) +dependencies: [] diff --git a/ansible/roles/grafana/meta/main.yml b/ansible/roles/grafana/meta/main.yml index 9e57ded..b05a43b 100644 --- a/ansible/roles/grafana/meta/main.yml +++ b/ansible/roles/grafana/meta/main.yml @@ -1,4 +1,4 @@ --- -dependencies: - - role: prometheus - - role: loki +# Role ordering is controlled by indri.yml playbook - do not add dependencies here +# (Ansible's tag accumulation prevents proper deduplication when using meta dependencies) +dependencies: [] diff --git a/ansible/roles/kiwix/meta/main.yml b/ansible/roles/kiwix/meta/main.yml index 32004b6..b05a43b 100644 --- a/ansible/roles/kiwix/meta/main.yml +++ b/ansible/roles/kiwix/meta/main.yml @@ -1,3 +1,4 @@ --- -dependencies: - - role: transmission +# Role ordering is controlled by indri.yml playbook - do not add dependencies here +# (Ansible's tag accumulation prevents proper deduplication when using meta dependencies) +dependencies: [] diff --git a/ansible/roles/miniflux/meta/main.yml b/ansible/roles/miniflux/meta/main.yml index 92e0133..b05a43b 100644 --- a/ansible/roles/miniflux/meta/main.yml +++ b/ansible/roles/miniflux/meta/main.yml @@ -1,3 +1,4 @@ --- -dependencies: - - role: postgresql +# Role ordering is controlled by indri.yml playbook - do not add dependencies here +# (Ansible's tag accumulation prevents proper deduplication when using meta dependencies) +dependencies: [] diff --git a/ansible/roles/plex_metrics/meta/main.yml b/ansible/roles/plex_metrics/meta/main.yml index 2925213..b05a43b 100644 --- a/ansible/roles/plex_metrics/meta/main.yml +++ b/ansible/roles/plex_metrics/meta/main.yml @@ -1,3 +1,4 @@ --- -dependencies: - - role: alloy +# Role ordering is controlled by indri.yml playbook - do not add dependencies here +# (Ansible's tag accumulation prevents proper deduplication when using meta dependencies) +dependencies: [] diff --git a/ansible/roles/tailscale_serve/meta/main.yml b/ansible/roles/tailscale_serve/meta/main.yml index bfc3021..b05a43b 100644 --- a/ansible/roles/tailscale_serve/meta/main.yml +++ b/ansible/roles/tailscale_serve/meta/main.yml @@ -1,7 +1,4 @@ --- -dependencies: - - role: grafana - - role: forgejo - - role: kiwix - - role: devpi - - role: miniflux +# Role ordering is controlled by indri.yml playbook - do not add dependencies here +# (Ansible's tag accumulation prevents proper deduplication when using meta dependencies) +dependencies: [] diff --git a/ansible/roles/transmission_metrics/meta/main.yml b/ansible/roles/transmission_metrics/meta/main.yml index 14f47d4..b05a43b 100644 --- a/ansible/roles/transmission_metrics/meta/main.yml +++ b/ansible/roles/transmission_metrics/meta/main.yml @@ -1,4 +1,4 @@ --- -dependencies: - - role: alloy - - role: transmission +# Role ordering is controlled by indri.yml playbook - do not add dependencies here +# (Ansible's tag accumulation prevents proper deduplication when using meta dependencies) +dependencies: []