TELEICU/Rollback strategy: Difference between revisions
From OHC Network Wiki
More languages
More actions
Content deleted Content added
Create TELEICU rollback strategy reference (via create-page on MediaWiki MCP Server) |
Fix Comparison table: convert Markdown pipe syntax to proper MediaWiki wikitable (via update-page on MediaWiki MCP Server) |
||
| (2 intermediate revisions by the same user not shown) | |||
| Line 10: | Line 10: | ||
== Path A: Ansible == |
== Path A: Ansible == |
||
<pre> |
|||
{{#mermaid:flowchart LR |
{{#mermaid:flowchart LR |
||
COMMIT["git revert<br/>offending commit"] |
COMMIT["git revert<br/>offending commit"] |
||
| Line 19: | Line 18: | ||
COMMIT --> PUSH --> PULL --> CONVERGE |
COMMIT --> PUSH --> PULL --> CONVERGE |
||
}} |
}} |
||
</pre> |
|||
Procedure: |
Procedure: |
||
| Line 33: | Line 31: | ||
== Path B: NixOS == |
== Path B: NixOS == |
||
<pre> |
|||
{{#mermaid:flowchart LR |
{{#mermaid:flowchart LR |
||
subgraph Methods["Rollback Methods"] |
subgraph Methods["Rollback Methods"] |
||
| Line 45: | Line 42: | ||
COMIN --> DONE |
COMIN --> DONE |
||
}} |
}} |
||
</pre> |
|||
Procedure: |
Procedure: |
||
| Line 57: | Line 53: | ||
== Comparison == |
== Comparison == |
||
{| class="wikitable" |
|||
| Dimension | Ansible | NixOS | |
|||
|- |
|||
|---|---|---| |
|||
! Dimension |
|||
| ⚫ | |||
! Ansible |
|||
| ⚫ | |||
! NixOS |
|||
| ⚫ | |||
|- |
|||
| ⚫ | |||
| Speed |
|||
| ⚫ | |||
| ⚫ | |||
| Instant (CLI) or at boot |
|||
|- |
|||
| Completeness |
|||
| Idempotency-dependent |
|||
| ⚫ | |||
|- |
|||
| Offline rollback |
|||
| Not possible (needs git access) |
|||
| ⚫ | |||
|- |
|||
| Granularity |
|||
| ⚫ | |||
| Full OS generation |
|||
|- |
|||
| Safety |
|||
| Can leave partial state |
|||
| ⚫ | |||
|} |
|||
{{Navbox TELEICU}} |
|||
{{Related}} |
{{Related}} |
||
Latest revision as of 08:52, 6 July 2026
How changes are rolled back in both migration paths.
Path A: Ansible
Procedure:
- Identify the offending commit(s) in the ansible repo
git revert <commit-hash>- Push to the relevant branch
- Nodes apply on next ansible-pull run (default: 15-30 min timer)
- 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 |