iac/ansible/site.yaml
Sergei Poljanski d0f6bcf6cf
All checks were successful
deploy / ansible (push) Successful in 4m43s
ansible: run the another-im/interop runner on asxpio-services
The interop project kept a cx23 (claude-test-interop-runner, about
EUR 6/month with its IPv4) only to run its Forgejo runner. Run it here
instead, with the same registration (UUID + token, token in the vault)
and the same three labels, pinned.

Its PR checks are untrusted, so unlike our own runner its jobs get
neither the Docker socket nor host volumes. nix-host, which on the old
host used the host's Nix store as a cache, is a throwaway container for
now; a second, trusted-only registration can bring the cache back.

Rollback: remove the role from site.yaml (or stop the container) and
start the old runner VM again.

Assisted-by: Claude:opus-5-5
2026-11-13 03:47:17 +04:00

65 lines
1.7 KiB
YAML

---
# Everything the deploy pipeline manages. Idempotent: a run with nothing
# to change touches nothing and restarts nothing.
#
# ansible-playbook site.yaml --check --diff # dry run
# ansible-playbook site.yaml --tags traefik # one service
#
# Host bootstrap (WireGuard, SSH hardening, s3fs, swap) is in playbooks/
# and is run by hand.
- name: Host baseline
hosts: asxpio
become: true
roles:
- { role: base, tags: [base] }
- name: asxpio-ops services
hosts: ops_servers
become: true
roles:
- { role: traefik, tags: [traefik] }
- { role: crawler_alert, tags: [crawler_alert] }
- name: asxpio-services services
hosts: services_servers
become: true
roles:
- { role: sillytavern, tags: [sillytavern] }
- { role: minecraft, tags: [minecraft] }
- { role: xmpp, tags: [xmpp] }
- { role: xray, tags: [xray] }
# Late: restarting Forgejo briefly cuts the runner off from its job log
- name: Forgejo
hosts: ops_servers
become: true
roles:
- { role: forgejo, tags: [forgejo] }
- name: Backups
hosts: asxpio
become: true
roles:
- { role: restic_backup, tags: [restic] }
- name: another-im/interop runner
hosts: services_servers
become: true
roles:
- { role: forgejo_runner_interop, tags: [forgejo_runner_interop] }
- name: Bucket replica
hosts: services_servers
become: true
roles:
- { role: s3_replicate, tags: [s3_replicate] }
# Last: when the pipeline changes the runner it recreates the container
# that is running the pipeline. Everything else is done by then; that job
# ends as failed and the next run confirms the result.
- name: Forgejo runner
hosts: services_servers
become: true
roles:
- { role: forgejo_runner, tags: [forgejo_runner] }