You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
tech-debt(install.sh+ansible): audit ALL apt_repository sites for noble-conflict pattern (#7144 follow-up) #7218
#7144 fixed the Ansible PPA conflict in `install.sh` (deadsnakes + ansible/ansible only). Same root cause vector exists in 8 other apt_repository sites in Ansible roles:
Any host that ships these PPAs pre-configured (in deb822 `.sources` format) will hit the same Signed-By conflict that broke DGX Spark install.
Composability opportunity
Extract `add_ppa_if_missing` from `install.sh` (lines 116-141) into a shared Ansible task at `roles/_shared/tasks/add_ppa_if_missing.yml`. All 8 sites become include_tasks calls with vars. Single point of change for PPA-add semantics.
Acceptance criteria
Shared task `roles/_shared/tasks/add_ppa_if_missing.yml` created with same idempotent semantics as install.sh helper (detect existing → preserve, sweep stale duplicates)
All 8 `apt_repository` sites refactored to include the shared task
No regression on jammy/Hyper-V install
Behavioural test in CI (similar to install.sh's bash test scaffold)
Reproduced on
DGX Spark — install.sh got past Phase 2 but Ansible-driven PPA additions in slm_manager role might have the same risk for users on noble images that pre-ship Grafana/PG.
✅ Shared task created at roles/_shared/tasks/add_apt_repository_idempotent.yml with same idempotent semantics as install.sh's add_ppa_if_missing helper
Activity
refactor(ansible): shared idempotent apt-repository helper across 7 r…
refactor(ansible): shared idempotent apt-repository helper across 7 r…
github-actions commentedon May 8, 2026
PR #7239 (merged to
Dev_new_gui) references this issue with a close keyword.If this issue is fully resolved, close it manually. If work remains, no action is needed.
ci: extend ansible-role-facts-test trigger paths (closes #7223 partial)
ci: extend ansible-role-facts-test trigger paths (closes #7223 partia…
mrveiss commentedon May 8, 2026
✅ Closed with proof — commit 716e84460 (PR #7239).
ACs Met:
roles/_shared/tasks/add_apt_repository_idempotent.ymlwith same idempotent semantics as install.sh's add_ppa_if_missing helperapt_repositorysites refactored: python312, redis, slm_manager/grafana, monitoring/grafana, docker, postgresql, agent_config/openvinofix(redis): stop two bootstraps installing a second, module-less Redis (
fix(redis): name the Stack unit everywhere it is operated (#16071) (#…