remove the ansible meta-package from the isolated ansible-core uv tool
install declared Galaxy collections into the shared path visible to ansible-lint
preserve intentional shell and tab behavior with narrow line-level noqa markers
convert two read-only lsblk calls from shell to command with no behavioral change
Root cause
All required collections were already declared, including vyos.vyos. The ansible meta-package bundled them inside the ansible-core uv venv, so ansible-galaxy reported already installed and skipped the shared directory. The separate ansible-lint venv then could not resolve community.crypto, ansible.windows, ansible.posix, or vyos.vyos.
An exact one-shot runner-image reproduction verified that removing the meta-package installs community.crypto under the shared path and makes it visible to ansible-lint's own ansible-doc.
The PR workflow is the authoritative full three-project acceptance test because it installs every declared collection in the same isolated runner environment.
## Summary
- remove the ansible meta-package from the isolated ansible-core uv tool
- install declared Galaxy collections into the shared path visible to ansible-lint
- preserve intentional shell and tab behavior with narrow line-level noqa markers
- convert two read-only lsblk calls from shell to command with no behavioral change
## Root cause
All required collections were already declared, including vyos.vyos. The ansible meta-package bundled them inside the ansible-core uv venv, so ansible-galaxy reported already installed and skipped the shared directory. The separate ansible-lint venv then could not resolve community.crypto, ansible.windows, ansible.posix, or vyos.vyos.
An exact one-shot runner-image reproduction verified that removing the meta-package installs community.crypto under the shared path and makes it visible to ansible-lint's own ansible-doc.
## Validation
- workflow and edited playbooks pass yamllint (existing advisory line-length warnings remain)
- Samba provision playbook syntax-check passes
- git diff --check
- no Terraform state or plan files in the diff
The PR workflow is the authoritative full three-project acceptance test because it installs every declared collection in the same isolated runner environment.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
Root cause
All required collections were already declared, including vyos.vyos. The ansible meta-package bundled them inside the ansible-core uv venv, so ansible-galaxy reported already installed and skipped the shared directory. The separate ansible-lint venv then could not resolve community.crypto, ansible.windows, ansible.posix, or vyos.vyos.
An exact one-shot runner-image reproduction verified that removing the meta-package installs community.crypto under the shared path and makes it visible to ansible-lint's own ansible-doc.
Validation
The PR workflow is the authoritative full three-project acceptance test because it installs every declared collection in the same isolated runner environment.