Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

TELEICU/Rollback strategy

From OHC Network Wiki
referenceteleicuCARE 3.0+

How changes are rolled back in both migration paths.

Path A: Ansible

Procedure:

  1. Identify the offending commit(s) in the ansible repo
  2. git revert <commit-hash>
  3. Push to the relevant branch
  4. Nodes apply on next ansible-pull run (default: 15-30 min timer)
  5. For urgent rollback: SSH into nodes and run ansible-pull -U <repo> immediately

Limitation: If the change modified system state that is not idempotent, a simple revert may not fully restore. Ansible roles should be written idempotently.

Path B: NixOS

Procedure:

  • CLI rollback: nixos-rebuild switch --rollback — switches to the previous generation immediately. No rebuild needed — the generation is already in the Nix store.
  • Boot rollback: Reboot and hold space during systemd-boot. Select the previous generation from the menu. Useful if the system is unbootable on the current generation.
  • comin rollback: Point the flake back to the previous revision in git. comin will pull and activate the older generation on next poll.

Key advantage: Every NixOS generation is atomic and bootable. Rollback is always available, even if the current generation is partially broken.

Comparison

Dimension Ansible NixOS
Speed Depends on pull interval Instant (CLI) or at boot
Completeness Idempotency-dependent Full — complete generation restore
Offline rollback Not possible (needs git access) Yes — generation is in local store
Granularity Per-playbook or per-role Full OS generation
Safety Can leave partial state Atomic — all-or-nothing