# Ansible Role: Seriatim Installs [Seriatim](https://gitea.maximumdirect.net/eric/seriatim) from source on Ubuntu 26.04 (`x86_64` or `aarch64`). The role requires gathered facts and uses privilege escalation on tasks that install dependencies or manage root-owned application state. ## Variables ```yaml seriatim_version: v1.5.0 seriatim_repository_url: https://gitea.maximumdirect.net/eric/seriatim.git seriatim_source_dir: /usr/local/src/seriatim seriatim_binary_path: /usr/local/bin/seriatim seriatim_manage_build_dependencies: true seriatim_go_snap_channel: 1.26/stable seriatim_go_binary: /snap/bin/go ``` When `seriatim_manage_build_dependencies` is `false`, Git and the executable selected by `seriatim_go_binary` must already be available. Otherwise, the role installs Git with APT and the classic Go Snap from `seriatim_go_snap_channel`. The checkout is authoritative: local source changes are discarded while selecting `seriatim_version`. The role builds `./cmd/seriatim` directly to `seriatim_binary_path` using `seriatim_go_binary`, `CGO_ENABLED=0`, `GOWORK=off`, `GOTOOLCHAIN=local`, `-trimpath`, and release linker metadata. It rebuilds when the checkout changes or the binary is absent. Exact version output is verified by the repository-local integration suite rather than during production convergence. The source tree is recursively owned by `root:root`. The installed binary is a regular file owned by `root:root` with mode `0755`. ## Example ```yaml - hosts: seriatim_hosts roles: - role: ansible-role-seriatim ``` ## Validation The integration driver installs pinned collection dependencies, runs syntax checking and ansible-lint, and covers default smoke use with clean repeated convergence. It also verifies an explicitly selected Seriatim release and combines missing-binary recovery with a caller-supplied Go executable while dependency management is disabled. The suite mutates only `/usr/local/src/seriatim`, `/usr/local/bin/seriatim`, and paths inside its private temporary directory, and restores the default deployment during cleanup: ```sh tests/integration ```