58 lines
2.1 KiB
Markdown
58 lines
2.1 KiB
Markdown
# 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
|
|
```
|