fix(runner): ansible-core comes from a venv matching requirements.txt, not Debian's 2.14 #290
Open
jfraeys
wants to merge 1 commit from
jfraeys/fix/runner-ansible-core into main
pull from: jfraeys/fix/runner-ansible-core
merge into: jfraeys:main
jfraeys:main
jfraeys:jfraeys/fix/report-status-token
jfraeys:jfraeys/fix/app-check-installs-app-roles
jfraeys:prod
jfraeys:ci/report-staging-status
jfraeys:jfraeys/feat/ci-cache-weekly-reset
jfraeys:jfraeys/fix/forgejo-actions-rate-limit
jfraeys:jfraeys/fix/runner-forgejo-over-tailnet
jfraeys:jfraeys/feat/vpn-status-tags
jfraeys:jfraeys/fix/setup-mints-ci-authkey
jfraeys:jfraeys/feat/web-ssh-dns
jfraeys:jfraeys/feat/tag-ci-acl
jfraeys:jfraeys/fix/backup-status-full-snapshot
jfraeys:jfraeys/fix/staging-ntfy-topic
jfraeys:jfraeys/refactor/linode-object-storage-names
jfraeys:jfraeys/feat/backups-repo-credentials
jfraeys:jfraeys/ci/cancel-superseded-pr-runs
jfraeys:jfraeys/feat/scripts-util-lib
jfraeys:jfraeys/fix/health-remote-service
jfraeys:jfraeys/refactor/container-memory-vars
jfraeys:jfraeys/fix/linode-prod-keep-nanodes
jfraeys:jfraeys/fix/vpn-revoke-ambiguity
jfraeys:jfraeys/docs/ovh-runbook-ci-window
jfraeys:jfraeys/fix/stable-baseline-sizing
jfraeys:jfraeys/fix/fail2ban-ignore-tailnet
jfraeys:jfraeys/fix/user-access-reach-wording
jfraeys:jfraeys/feat/manage-user-access
jfraeys:jfraeys/fix/headscale-acl-admin-group
jfraeys:jfraeys/fix/alertmanager-behind-authelia
jfraeys:jfraeys/fix/health-compose-names
jfraeys:jfraeys/fix/headscale-oidc-groups
jfraeys:jfraeys/feat/webapps-upstream-over-tailnet
jfraeys:jfraeys/fix/fail2ban-native-needs-authlog
jfraeys:jfraeys/docs/incident-233-fixed
jfraeys:jfraeys/docs/node-naming-primary
jfraeys:jfraeys/fix/firewall-return-last-and-web-open
jfraeys:jfraeys/docs/incident-docker-user-return-order
jfraeys:jfraeys/docs/ovh-key-scope
jfraeys:jfraeys/chore/ovh-inventory-template
jfraeys:jfraeys/fix/firewall-legacy-rule-cleanup
jfraeys:jfraeys/fix/restore-validate-snapshot-first
jfraeys:jfraeys/docs/tailscale-authkey-flow
jfraeys:jfraeys/feat/with-vault-env-flag
jfraeys:jfraeys/fix/manage-no-timeout-binary
jfraeys:jfraeys/fix/state-snapshot-curl-7-88
jfraeys:jfraeys/feat/state-snapshot-backup
jfraeys:jfraeys/docs/roadmap-state-and-backups
jfraeys:jfraeys/docs/ovh-monthly-billing
jfraeys:jfraeys/docs/ovh-migration-runbook
jfraeys:jfraeys/fix/cloud-init-history-cmd
jfraeys:jfraeys/fix/cloud-init-dpkg-lock
jfraeys:jfraeys/fix/plan-prod-desec-retry
jfraeys:jfraeys/style/format-scripts-lib
jfraeys:jfraeys/feat/forgejo-auto-theme
jfraeys:jfraeys/docs/fold-rollback-prune-future
jfraeys:jfraeys/chore/remove-ansible-profile-cfg
jfraeys:jfraeys/refactor/shared-test-log-libs
jfraeys:jfraeys/docs/stale-references
jfraeys:jfraeys/refactor/infra-lib
jfraeys:chore/rotate-remove-tf-defaults-20261015-183007
jfraeys:jfraeys/docs/workspace-tfvars-and-sizes
jfraeys:jfraeys/feat/linode-node-types
jfraeys:jfraeys/fix/workspace-default-var-file
jfraeys:jfraeys/chore/ovh-prod-tfvars-phase1
jfraeys:jfraeys/docs/dr-ovh-to-linode
jfraeys:jfraeys/fix/runner-stop-before-reuse
jfraeys:jfraeys/feat/linode-dr-workspace
jfraeys:jfraeys/fix/scripts-use-repo-venv
jfraeys:jfraeys/feat/ovh-per-node-flavor
jfraeys:jfraeys/docs/secrets-sync-apply
jfraeys:chore/rotate-linode-token-20261015-125422
jfraeys:chore/rotate-wave3-20261015-124048
jfraeys:jfraeys/fix/vault-pr-key-names
jfraeys:jfraeys/chore/wave3-policy
jfraeys:chore/rotate-lldap-20261015-104606
jfraeys:jfraeys/feat/secrets-get
jfraeys:jfraeys/feat/approve-retry
jfraeys:chore/rotate-ci-ephemeral-wakeup-20261015-095624
jfraeys:chore/rotate-headscale-20261015-093925
jfraeys:chore/rotate-forgejo-20261014-185806
jfraeys:jfraeys/fix/vault-pr-hook-venv
jfraeys:jfraeys/docs/approve-everywhere
jfraeys:jfraeys/feat/approve-carry-over
jfraeys:jfraeys/fix/rotate-forgejo-headscale
jfraeys:chore/rotate-forgejo-20261014-173427
jfraeys:chore/rotate-forgejo-20261014-173353
jfraeys:jfraeys/chore/secrets-rotation-policy
jfraeys:jfraeys/chore/scripts-layout
jfraeys:jfraeys/feat/infra-approve
jfraeys:jfraeys/fix/vaultwarden-admin-token-dollar
jfraeys:jfraeys/feat/infra-one-front-door
jfraeys:jfraeys/feat/vault-change-pr
jfraeys:chore/rotate-vaultwarden-2026-10-14
jfraeys:jfraeys/fix/rotate-playbook-replay-vars
jfraeys:jfraeys/fix/ephemeral-runner-registration-leak
jfraeys:jfraeys/chore/retire-p7-wizard-and-stale-backup
jfraeys:jfraeys/fix/wizard-offline-dir-prompt
jfraeys:jfraeys/feat/project-keys-wizard
jfraeys:jfraeys/chore/manifest-rotated-2026-10-13
jfraeys:jfraeys/chore/remove-hugo-docs
jfraeys:jfraeys/fix/watchtower-maintained-fork
jfraeys:jfraeys/fix/bump-critical-cve-images
jfraeys:jfraeys/fix/connectivity-probe-retries
jfraeys:jfraeys/fix/trivy-report-keeps-failures
jfraeys:jfraeys/fix/journald-check-post-deploy
jfraeys:jfraeys/feat/infra-lifecycle-metrics
jfraeys:jfraeys/docs/wakeup-webhook-events
jfraeys:jfraeys/fix/staging-diag-traefik-acme
No reviewers
Labels
Clear labels
No items
No labels
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".
No due date set.
Dependencies
No dependencies set
Reference
jfraeys/infra!290
Loading…
Reference in a new issue
No description provided.
Delete branch "jfraeys/fix/runner-ansible-core"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
The apt package is kept (other packages depend on it); the venv's binaries shadow it. The version spec is a role default, noted as "keep in step with requirements.txt" (
<2.20: 2.20 needs Python 3.12, the runner has 3.11).Evidence
ansible [core 2.14.18], thenERROR! couldn't resolve module/action 'ansible.builtin.deb822_repository'from the coaching-site role'spackages.ymlline 49 (module needs 2.15+).After: not run on a runner. Checked: YAML parses, yamllint and ansible-lint pass on the role, and the new molecule assertion
ansible_version.stdout is regex('core 2\.(1[6-9])\.')matchesansible-playbook [core 2.19.4]. Molecule itself needs Docker (run via Colima).Merge Danger
Door: two-way
Blast Radius: CI runners
Every ephemeral CI runner VM (and the persistent native runner) gets a different
ansible-playbookthan before, so a 2.16-to-2.19 behaviour change could affect any workflow that shells out to ansible, including infra's own staging-validate. There is no baked image yet, so it takes effect when a VM runs thebasetasks from the provisioner's checkout ofmain. Revert by reverting the commit; new VMs pick up the old tasks.🤖 Generated with Claude Code
https://claude.ai/code/session_01Ge5tovcwdEUBtPwUktsZZZ
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.Merge
Merge the changes and update on Forgejo.Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.