How jack-avery/ansible-tf2network works
This repository is an Ansible system for provisioning and operating a network of Team Fortress 2 servers, with SourceBans++ and an optional Discord relay. The documented operator workflow prepares the metrics host and SSH access, builds the base server image, distributes SourceMod, builds instance images, and deploys containers; admins can be updated separately. Configuration comes from shared and per-host variables, while library/narrow.py selects instances and derives their ports. manifest.py gathers inventory and variables into relay/server-hop metadata. The README documents these capabilities; sampled source was limited to the two Ansible modules and manifest generator, so uncertain playbook-to-role wiring is omitted.
Main entry points: manifest.py Server manifest · relay.yml Discord relay · srcds.yml Instance images · deploy.yml Server deploy
Components 21
Operations
- Host setup
playbooks/setup.yml - SSH key generation
playbooks/ssh-gen.yml - SSH authorization
playbooks/ssh-auth.yml
Server Provisioning
- Base TF2 image
playbooks/base-tf2server.yml - SourceMod setup
playbooks/sourcemod.yml - Instance images
playbooks/srcds.yml - Server deploy
playbooks/deploy.yml
Network Services
- Admin management
playbooks/admins.yml - SourceBans install
playbooks/sbpp-install.yml - SourceBans service
playbooks/sbpp.yml - Discord relay
playbooks/relay.yml - RCON module
library/rcon.py - Server manifest
manifest.py
Configuration
- Shared settings
group_vars/tf2.yml - Host settings
host_vars/nae-1.yml - Instance selection
library/narrow.py
Other components
- Operator
- Docker hosts
- TF2 servers
- Discord
- SourceBans database
Connections 28
- Operator → Host setup: runs setup
- Operator → SSH key generation: generates keys
- Operator → SSH authorization: sets access
- Operator → Base TF2 image: builds base
- Operator → SourceMod setup: distributes plugins
- Operator → Instance images: builds instances
- Operator → Server deploy: deploys servers
- Operator → Admin management: updates admins
- Operator → SourceBans install: installs service
- Operator → Discord relay: deploys relay
- Host setup → Docker hosts: prepares hosts
- SSH key generation → SSH authorization: provides keys
- Base TF2 image → Docker hosts: builds image on
- SourceMod setup → Instance images: provides plugins
- Instance images → Docker hosts: builds images on
- Server deploy → TF2 servers: starts containers
- Shared settings → Instance selection: supplies defaults
- Host settings → Instance selection: supplies instances
- Instance selection → Server deploy: selects instances
- Admin management → TF2 servers: updates admins
- SourceBans install → SourceBans database: installs database
- SourceBans service → SourceBans database: uses database
- Discord relay → Discord: relays messages
- Discord relay → TF2 servers: relays server chat
- Server manifest → Shared settings: reads settings
- Server manifest → Host settings: reads host data
- Server manifest → TF2 servers: describes instances
- RCON module → TF2 servers: sends commands