voraus IPC related Ansible roles and tools. This collection helps to set up a real-time system with all prerequisites to deploy the voraus.core.
Note
This collection and its roles are tested against Debian 13 (trixie), and might need modifications for other systems.
- An IPC running debian
- SSH root access to this IPC
- Install ansible and the collection. This pulls in the
ansible.posixandcommunity.generalcollections that this collection depends on.
uv tool install ansible-core
ansible-galaxy collection install voraus.ipc_tools-
Copy the example inventory to a
inventory.ymlfile and change it according to your needs. In this example, we assume that the IPC is reachable via the IP address192.168.1.1. -
Run the example playbook shipped with the collection.
ansible-playbook voraus.ipc_tools.example -i inventory.ymlPlease refer to the official documentation.
This project is managed with uv. The following creates .venv, installs the Python version pinned in
.python-version and installs the exact dependency versions recorded in uv.lock:
uv sync --locked --all-extras
source .venv/bin/activateAll checks run through tox. Each tox environment is installed from uv.lock as well, so local runs and CI use
identical package versions.
| Command | Purpose |
|---|---|
tox -e lint |
ansible-lint, prettier, isort, black, mypy, ruff, pylint and doc8 |
tox -e docs |
Run the doctests and build the Sphinx docs into docs/build/html |
tox -e build |
Build the collection tarball |
tox -e test |
Run the molecule test suite, see below |
Without activating the environment, prefix the commands with uv run --all-extras, for example
uv run --all-extras tox -e lint.
After changing a dependency in pyproject.toml, refresh the lockfile and commit the result. CI installs with
--locked and fails on a stale uv.lock:
uv locktox -e test is intended for local use only. CI runs molecule per role in test.yml, because every
scenario boots a virtual machine and needs root privileges on the runner. Locally, vagrant and libvirt have to be
available on the host.
# Run every scenario
tox -e test
# Run a single scenario
tox -e test -- test -s grub_configReleases are cut by release-please. It keeps a release pull request open that collects every
Conventional Commit merged into main, and derives the next version from those commit types. Merging that pull
request is the release:
CHANGELOG.md,voraus/ipc_tools/galaxy.yml,pyproject.tomlanduv.lockare bumped to the same version.- The
X.Y.Ztag and the GitHub release are created. - The tag triggers
pipeline.yml, which publishes the collection to Ansible Galaxy and the docs to GitHub Pages.
Nothing is tagged or published by hand, so the only thing that decides the next version is the commit history. The
sections of the changelog are configured in release-please-config.json.