backup-strategy.md now leads with the three target legs (local incus push to sdb, nuc pull over WireGuard, restic to S3 for DBs and selected trees) and carries the plakar/ks2 story in a closing History section. restic-backup.md, install.md, local-backup-cron.md and the ks2 docs describe the predecessor only as 'the first S3 implementation', with one operational note that plakar is still installed for issue #2338 reproduction. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
63 lines
2.4 KiB
Markdown
63 lines
2.4 KiB
Markdown
# ks2 decommission — final checklist
|
|
|
|
Status: **prepared — execute only when every gate in
|
|
[plan.md](plan.md) is ticked.** Rental ends **Sep 30, 2026**; leave a
|
|
few days of margin.
|
|
|
|
## Preconditions (the plan's release gates)
|
|
|
|
- [ ] restic S3 leg running nightly for ≥ a week, `done (rc=0)`,
|
|
restore test passed ([restic-backup.md](../ks4/restic-backup.md) §7)
|
|
- [ ] nuc pull leg seeded and one instance test-restored
|
|
([nuc-seed.md](nuc-seed.md))
|
|
- [ ] local leg (sdb5) cron green in `/var/log/incus-copy.log`
|
|
|
|
## 1. Cut the last flows to ks2 (root on ks4)
|
|
|
|
```sh
|
|
crontab -e # remove any remaining ks2 line (the 02:00 push, if it was
|
|
# re-enabled; the 04:00 incus-backup.sh line is long gone)
|
|
incus remote list # if a "ks2" remote is still defined:
|
|
incus remote remove ks2
|
|
# drop the rsyncbackup SSH key if it exists only for ks2:
|
|
ls /root/.ssh/id_rsyncbackup* && rm -i /root/.ssh/id_rsyncbackup*
|
|
```
|
|
|
|
## 2. Last look at ks2 before wiping (root on ks2)
|
|
|
|
```sh
|
|
# anything in the rsync tree newer than the S3 cutover?
|
|
find /backup/ns3061243 -newermt '2026-08-23' | head
|
|
# pre-2023 dirs (catc, mythoughts, qcm, scripts): instances still
|
|
# exist stopped on ks4 — spot-check nothing unique remains:
|
|
ls /backup/ns3061243/{catc,mythoughts,qcm,scripts}
|
|
```
|
|
|
|
Archive anything unique into the restic dump dir on ks4
|
|
(`/backup/dumps`) — it then rides the nightly S3 snapshot for free.
|
|
|
|
## 3. Wipe and terminate
|
|
|
|
```sh
|
|
# on ks2 — destroy the data (both pools hold copies of personal data):
|
|
zpool destroy backup && zpool destroy data
|
|
# optional: shred the OS disks via OVH rescue mode / reinstall
|
|
```
|
|
|
|
Then in the OVH manager: cancel the ks2 (Kimsufi) server before the
|
|
renewal date.
|
|
|
|
## 4. Post-mortem cleanup
|
|
|
|
- [ ] Update [doc/README.md](../README.md): remove ks2 from the ks4
|
|
durability bullet and the index line for `ks2/`s "being
|
|
decommissioned" wording (keep the folder as history)
|
|
- [ ] Retire `scripts/incus-backup.sh` + `incus-backup.db` in the repo
|
|
(superseded by [`restic-backup.sh`](https://git.lutran.fr/julien/scripts/src/branch/main/restic-backup.sh)) —
|
|
keep for reference, note the retirement in their headers
|
|
- [ ] `login` container cleanup: its **native** postgres still holds
|
|
the pre-migration `outline` database (live Outline uses the
|
|
dockerised `outline-postgres-1`) — `dropdb outline` and remove
|
|
the native postgres package
|
|
- [ ] Mark the ks2 line in `plan.md` done, date it
|