hybridops.network provides network automation roles validated in lab and emulated environments. The scope is practical, testable network automation with vendor-aware behaviour and clear separation of vendor-specific logic.
Design and release context is maintained in the HybridOps.Tech documentation site.
Appropriate changes include:
- New roles and tasks for supported platforms (for example Cisco, Arista, VyOS, pfSense).
- Enhancements to existing roles (features, idempotency, expanded platform support).
- Test improvements (role-local smoke tests, example topologies, Molecule where applicable).
- Documentation updates for variables, supported targets, and lab assumptions.
Prefer neutral role design with vendor-specific details isolated and documented.
Use versions compatible with requirements.txt:
python3 -m venv .venv
. .venv/bin/activate
pip install -r requirements.txt- Keep changes focused on a single behaviour per pull request.
- Keep variables explicit; avoid hidden assumptions in defaults.
- Avoid disruptive defaults; use explicit flags for changes that can affect traffic.
Role-local smoke tests:
cd roles/<role_name>
ansible-playbook -i tests/inventory.example.ini tests/smoke.ymlMolecule (where defined):
cd roles/<role_name>
molecule testPlatform integration (via the harness):
# In galaxy-collections-harness
make workspace.clone
make collections.sync
make venv.refresh
make test ROLE=<role_name>Include:
- Target platform(s) and versions where applicable.
- Summary of changes and expected impact.
- Test evidence (smoke and/or Molecule and/or platform integration), including lab type (physical or emulated).
Each role should provide:
roles/<role_name>/tests/smoke.ymlroles/<role_name>/tests/inventory.example.ini
Roles should document supported platforms, required connection variables, and any out-of-band dependencies (for example backup servers).
- Do not commit credentials, keys, or management IPs.
- Consume sensitive values via variables, Vault, or environment lookups.
- Avoid logging sensitive values in task output.