- Dockerfile 100%
GoW's persistent state (local_state) holds app data and game libraries — tens to hundreds of GB. On a host where that path is on the OS root filesystem, a game download silently fills root and destabilizes the whole node. Add an optional, disabled-by-default `gow_data_volume`: when enabled, the role formats (only a blank device — never wipes data) and mounts an operator-provided block device at the state path, persisted in /etc/fstab, before any state is written. Builtin modules only; idempotent (probe-before-format, mountpoint guard, fstab keyed by mountpoint). Also fixes a pre-existing one-line indentation error in tasks/main.yml (the First time setup `when:` was indented 3 spaces, which made the whole file fail to parse as YAML) — without it the role, including this new block, can't load. Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| defaults | ||
| handlers | ||
| meta | ||
| molecule/default | ||
| tasks | ||
| tests | ||
| vars | ||
| .gitignore | ||
| .travis.yml | ||
| .yamllint | ||
| LICENSE | ||
| README.md | ||
Role Name
A brief description of the role goes here.
Requirements
Any pre-requisites that may not be covered by Ansible itself or the role should be mentioned here. For instance, if the role uses the EC2 module, it may be a good idea to mention in this section that the boto package is required.
Role Variables
A description of the settable variables for this role should go here, including any variables that are in defaults/main.yml, vars/main.yml, and any variables that can/should be set via parameters to the role. Any variables that are read from other roles and/or the global scope (ie. hostvars, group vars, etc.) should be mentioned here as well.
gow_data_volume — keep persistent state off the OS root
GoW's persistent state (gow_paths.state, i.e. local_state) holds app data and
game libraries — tens to hundreds of GB. Left on the OS root filesystem, a
game download silently fills root and destabilizes the whole host. Set
gow_data_volume to mount a dedicated block device at the state path (persisted
in /etc/fstab) before any state is written:
gow_data_volume:
enabled: true
device: /dev/storage/gow-data # operator-provided block device (LV/partition/disk)
mountpoint: "" # empty = gow_paths.state
fstype: ext4
format: true # mkfs — only acts on a BLANK device, never wipes data
mount_opts: "defaults,nofail"
The block device is operator-provided. For an LVM thin pool, e.g.:
lvcreate -V 1024G --thinpool <thinpool> -n gow-data <vg>
Disabled by default (enabled: false), so existing deployments are unchanged.
Dependencies
A list of other roles hosted on Galaxy should go here, plus any details in regards to parameters that may need to be set for other roles, or variables that are used from other roles.
Example Playbook
Including an example of how to use your role (for instance, with variables passed in as parameters) is always nice for users too:
- hosts: servers
roles:
- { role: username.rolename, x: 42 }
License
MIT
Author Information
An optional section for the role authors to include contact information, or a website (HTML is not allowed).